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