Rumah > Soal Jawab > teks badan
Saya mempunyai tapak web yang berjalan di Node.js, dengan Express di bahagian belakang, yang seterusnya memanggil skrip .py
untuk memuat turun audio yang diminta pengguna menggunakan yt-dlp. Apabila saya menjalankan tapak pada localhost, semuanya berjalan dengan baik dan saya mendapat URL boleh dimuat turun .mp4 yang boleh saya suapkan terus ke audio JavaScript.
Walau bagaimanapun, apabila saya menggunakan tapak web pada Heroku, skrip .py
脚本给了我一个 .m3u8 url,它是一个音频播放列表,并且需要额外的步骤,例如 hls
yang sama memberi saya url .m3u8 yang merupakan senarai main audio dan memerlukan langkah tambahan seperti hls
untuk bermain menggunakan JavaScript .
Persoalan saya ialah mengapa ini berlaku.
Pek binaan Heroku saya mengandungi nodejs
和 python
。我是否缺少 FFmpegExtractAudio
beberapa pilihan format yt-dlp di sini atau di bawah?
Skrip .py
saya ialah
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...
P粉4594409912024-03-30 00:14:27
Sunting: Bagi mereka yang mempunyai isu yang sama, saya dapat menyelesaikan masalah dengan menukar pilihan yt-dlp. Khususnya, saya menambah bendera format
和 extractor_args
. Nota: Kod di atas dijalankan pada localhost, kod di bawah berjalan pada aplikasi web yang digunakan Heroku serta localhost. Selamat mengekod!
ydl_opts = { 'format': '(bestaudio/best)[protocol~="^https?$"]', 'quiet': True, 'noplaylist': True, 'postprocessors': [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': 'mp3', 'preferredquality': '192', }], 'extractor_args': {'youtube':{'player_client': ['android', 'web']}},