2017-05-25 14 views
1

youtube-dlでyoutubeのプレイリストのリストから情報を取得しようとしています。私はこのコードを書いたが、ビデオの情報ではなくプレイリスト情報(プレイリストのビデオタイトルの代わりにプレイリストタイトル)が必要である。なぜ私は理解できません。youtube-dlでプレイリストのリストからビデオ情報を取得

input_file = open("url") 
for video in input_file: 
    print(video) 
ydl_opts = { 
    'ignoreerrors': True 
} 
    with youtube_dl.YoutubeDL(ydl_opts) as ydl: 
       info_dict = ydl.extract_info(video, download=False) 
       for i in info_dict: 
        video_thumbnail = info_dict.get("thumbnail"), 
        video_id = info_dict.get("id"), 
        video_title = info_dict.get("title"), 
        video_description = info_dict.get("description"), 
        video_duration = info_dict.get("duration") 

助けてください。

+0

まず第一に、 'あなたのコード内video'はプレイリスト全体ではなく、任意の個々の動画を参照します。 – xjcl

答えて

2

videoという変数には、実際にはビデオ情報ではなくのプレイリスト情報が格納されています。プレイリストのentries属性には、個々の動画情報のリストがあります。

可能な修正については下記を参照してください。私はplaylistにごvideo変数の名前を変更し、それを少し書き換えて出力を追加するために自由を取った:

ydl_opts = { 
    'ignoreerrors': True, 
    'quiet': True 
} 

input_file = open("url") 

for playlist in input_file: 

    with youtube_dl.YoutubeDL(ydl_opts) as ydl: 

     playlist_dict = ydl.extract_info(playlist, download=False) 

     for video in playlist_dict['entries']: 

      print() 

      if not video: 
       print('ERROR: Unable to get info. Continuing...') 
       continue 

      for property in ['thumbnail', 'id', 'title', 'description', 'duration']: 
       print(property, '--', video.get(property)) 
+0

ありがとう!私はplaylist_dict ['entries']のビデオのために何が分からないのですか?:print() 'がします。何が印刷されますか? –

+0

個々の動画を分かりやすくするために、空の行が印刷されます。説明が長いとそれはかなり見えません。 – xjcl

関連する問題