2016-07-28 3 views
1

Ich versuche youtube-dl zu verwenden, um einen Youtube-Video-Sound als mp3 herunterzuladen und das Thumbnail einzubetten. aber ich bekomme die folgende Fehlermeldung jedes Mal, wenn ich versuchen:Thumbnail in mp3 einbetten mit Youtube-dl raise exception

thumbnail_filename = info['thumbnails'][-1]['filename'] KeyError: 'filename' 

Hier ist meine youtube-dl Optionen

ydl_opts = { 
     'key':'IgnoreErrors', 
     'format': 'bestaudio/best', 
     'download_archive': self.songs_data, 
     'outtmpl': '/'+download_path+'/'+'%(title)s.%(ext)s', 
     'progress_hooks': [self.my_hook], 
     'postprocessors': [{ 
      'key': 'FFmpegExtractAudio', 
      'preferredcodec': 'mp3', 
      'preferredquality': '192'}, 
      {'key': 'EmbedThumbnail'},]} 

Irgendwelche Ideen, warum? Embed Thumbnail hat keine Argumente.

Danke

+0

können Sie 'info [ 'Thumbnails'] drucken [- 1] .keys()'? –

+0

Es ist ein Python-Modul, ich habe nicht den Quellcode zum Hinzufügen von Zeilen. – Gigalala

Antwort

1

Also auf ich es heraus auf meinem eigenen, obwohl seine auf youtube-dl api nicht dokumentiert. Sie müssen 'writethumbnail':True zu Optionen hinzufügen und die Reihenfolge Prozessoren auf den Beitrag ändern, so ist 'key': 'FFmpegExtractAudio' vor 'key': 'EmbedThumbnail'

ydl_opts = { 
     'writethumbnail': True, 
     'format': 'bestaudio/best', 
     'download_archive': self.songs_data, 
     'outtmpl': '/'+download_path+'/'+'%(title)s.%(ext)s', 
     'progress_hooks': [self.my_hook], 
     'postprocessors': [ 
      {'key': 'FFmpegExtractAudio', 
      'preferredcodec': 'mp3', 
      'preferredquality': '192'}, 
      {'key': 'EmbedThumbnail',},]} 
+0

zu '** Gigalala **' Antwort hinzufügen. Bitte beachten Sie, dass Sie die Datei als ** ".webm" ** herunterladen müssen, deshalb **. ".% (Ext) s" ** wird verwendet. Wenn du es im "outtmpl" als statisch ".mp3" änderst, wirst du einige Stunden Debugging haben, so wie ich es getan habe. – ofekp