recherche

Maison  >  Questions et réponses  >  le corps du texte

Format de retour YT-DLP (m3u8)

J'ai un site Web fonctionnant sur Node.js, avec Express sur le backend, qui à son tour appelle un script .py pour télécharger l'audio demandé par l'utilisateur à l'aide de yt-dlp. Lorsque j'exécute le site sur localhost, tout fonctionne correctement et j'obtiens une URL téléchargeable .mp4 que je peux insérer directement dans l'audio JavaScript.

Cependant, lorsque je déploie le site Web sur Heroku, le même script .py 脚本给了我一个 .m3u8 url,它是一个音频播放列表,并且需要额外的步骤,例如 hls me donne une URL .m3u8 qui est une liste de lecture audio et nécessite des étapes supplémentaires comme hls pour jouer en utilisant JavaScript.

Ma question est de savoir pourquoi cela se produit.

Mon buildpack Heroku contient nodejspython。我是否缺少 FFmpegExtractAudio quelques options de format yt-dlp ici ou ci-dessous ?

Mon .py script est

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粉920835423270 Il y a quelques jours516

répondre à tous(1)je répondrai

  • P粉459440991

    P粉4594409912024-03-30 00:14:27

    Edit : Pour ceux qui ont des problèmes similaires, j'ai pu résoudre le problème en modifiant les options yt-dlp. Plus précisément, j'ai ajouté le drapeau formatextractor_args. Remarque : Le code ci-dessus s'exécute sur localhost, le code ci-dessous s'exécute sur l'application Web déployée par Heroku ainsi que sur localhost. Bon codage !

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

    répondre
    0
  • Annulerrépondre