저는 백엔드에 Express가 있는 Node.js에서 실행되는 웹사이트가 있는데, 이 웹사이트는 yt-dlp를 사용하여 사용자가 요청한 오디오를 다운로드하기 위한 .py
스크립트를 호출합니다. localhost에서 사이트를 실행하면 모든 것이 잘 실행되고 JavaScript 오디오에 직접 공급할 수 있는 .mp4 다운로드 가능한 URL을 얻게 됩니다.
그러나 Heroku에 웹사이트를 배포할 때 동일한 .py
脚本给了我一个 .m3u8 url,它是一个音频播放列表,并且需要额外的步骤,例如 hls
스크립트는 오디오 재생 목록인 .m3u8 URL을 제공하며 JavaScript를 사용하여 재생하려면 hls
와 같은 추가 단계가 필요합니다.
내 질문은 왜 이런 일이 발생하는가입니다.
내 Heroku 빌드팩에는 nodejs
和 python
。我是否缺少 FFmpegExtractAudio
여기 또는 아래에 일부 yt-dlp 형식 옵션이 포함되어 있습니까?
내 .py
스크립트는
ydl_opts = { 'format': 'bestaudio/best', 'quiet': True, 'postprocessors': [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': 'mp3', 'preferredquality': '192', }],} with yt_dlp.YoutubeDL(ydl_opts) as ydl: try: info = ydl.extract_info("ytsearch:%s" % requestedAudio, download=False)['entries'][0] # code follows... except yt_dlp.utils.DownloadError or yt_dlp.utils.ExtractorError: # code follows...
편집: 비슷한 문제가 있는 분들을 위해 yt-dlp 옵션을 변경하여 문제를 해결할 수 있었습니다. 특히
으아악format
和extractor_args
플래그를 추가했습니다. 참고: 위의 코드는 localhost에서 실행되고, 아래 코드는 localhost뿐만 아니라 Heroku 배포 웹앱에서도 실행됩니다. 즐거운 코딩하세요!