Rumah  >  Soal Jawab  >  teks badan

Format pemulangan YT-DLP (m3u8)

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 nodejspython。我是否缺少 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粉920835423P粉920835423204 hari yang lalu424

membalas semua(1)saya akan balas

  • P粉459440991

    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 formatextractor_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']}},

    balas
    0
  • Batalbalas