it-swarm.com.de

laden Sie nur Audio von Youtube-Video mit Youtube-DL in Python-Skript herunter

Es gibt ein wenigePosts auf Audio herunterladen von YouTube mit youtube-dl, aber keines davon ist konkret oder zu hilfreich. Ich frage mich, was der beste Weg aus einem Python-Skript ist. 

Zum Beispiel das README Beispiel zum Herunterladen von Videos:

import youtube_dl

ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])

Wenn Sie sich nur für das Audio interessieren, möchten Sie das gesamte Video nicht herunterladen ...

Die Quelle youtube-dl ist nur so hilfreich (dh nicht sehr).

Irgendwelche Vorschläge, wie man das schreibt?

29
lollercoaster

Lesen Sie weiter in der Anleitung für Entwickler für ein geändertes Beispiel:

from __future__ import unicode_literals
import youtube_dl


ydl_opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    }],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])

Dadurch wird, falls möglich, eine Audiodatei heruntergeladen/unterstützt. Wenn die Datei nicht bereits mp3 ist, kann die heruntergeladene Datei mit ffmpeg oder avconv in mp3 konvertiert werden. Weitere Informationen finden Sie in den Dokumentationseinstellungen format und postprocessors in einer aktuellen Version von youtube-dl.

39
phihag

Verwenden Sie das Argument postprocessors. Die Liste aller verfügbaren Postprozessoren finden Sie hier .

Wenn Sie zusätzliche ffmpeg- oder avconv-Optionen übergeben möchten, die nicht in der youtube-dl-Bibliothek enthalten sind (wie Audio-Bitrate - -ar <BR> in ffmpeg), fügen Sie postprocessor_args als Liste hinzu. 

Sie können auch ffmpeg der avconv-Einstellung prefer_ffmpeg vor True vorziehen. 

Um sowohl die ursprüngliche als auch die konvertierte Audiodatei zu erhalten, setzen Sie 'keepvideo' auf True.

Zum Beispiel:

from __future__ import unicode_literals
import youtube_dl

ydl_opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'wav',
        'preferredquality': '192'
    }],
    'postprocessor_args': [
        '-ar', '16000'
    ],
    'prefer_ffmpeg': True,
    'keepvideo': True
}

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])

Die Liste aller verfügbaren Optionen finden Sie in der Dokumentation . Sie können den Code des ffmpeg-Positionsprozessors hier lesen.

Ein weniger komplexes Beispiel ist in ihrem GitHub README .

1
Pheon