Get video information from a list of playlist with youtube-dl

空扰寡人 提交于 2019-12-23 02:05:09

问题


I'm tryng to get some informations from a list of playlists in youtube with youtube-dl. I've written this code but what it takes is not the video's informations but the playlist informations (e.g. the playlist title instead of the video title in the playlist). I can't understand why.

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")

Any help will be appreciated.


回答1:


The variable you call video actually holds the playlist information, not the video information. You can find a list of the individual video information in the playlist's entries attribute.

See below for a possible fix. I renamed your video variable to playlist and took the freedom to rewrite it a bit and add output:

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))


来源:https://stackoverflow.com/questions/44183473/get-video-information-from-a-list-of-playlist-with-youtube-dl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!