Получите информацию о видео во время загрузки с помощью youtube-dl, встроенного в python - PullRequest
0 голосов
/ 12 июля 2020

Я встраиваю youtube-dl в свой код python, чтобы загрузить видео, как показано ниже.

ydl_opts = {
    'outtmpl': f'%(id)s.%(ext)s',
    'format': 'bestaudio/best',
    'forcejson': 'forcejson',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '128',
    }],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    status = ydl.download([youtube_link])
print(status) # Returns 0 if successful

Он загружается нормально и возвращает status, что в случае успеха равно 0.

Но тогда мне также нужно получить некоторую информацию о видео, такую ​​как продолжительность, название, автор и т. Д. c. Youtube-dl получает это во время загрузки, и я могу заставить его распечатать, используя forcejson opt. Но как мне его получить, чтобы я мог сохранить его и в переменной, без необходимости снова запускать его с помощью ydl.extract_info(youtube_link) (который снова загружает веб-страницу и иногда занимает 10-20 секунд).

1 Ответ

0 голосов
/ 12 июля 2020

Вы можете передать download=False, чтобы не загружать видео.

def extract_info(self, url, download=True, ie_key=None, extra_info={},
                 process=True, force_generic_extractor=False):
    '''
    Returns a list with a dictionary for each video we find.
    If 'download', also downloads the videos.
    extra_info is a dict containing the extra values to add to each result
    '''
...