Получение заголовка и URL-адреса после использования "ytsearch: string" с youtube-dl в python - PullRequest
0 голосов
/ 20 мая 2018

Я работал над музыкальным ботом Discord, и он почти завершен.У меня есть еще две вещи, которые нужно выяснить (у них та же идея).

Я использую youtube_dl для загрузки видео, и недавно я обнаружил, что есть способ поиска и получения топ поискарезультат YouTube и играть, что позволяет пользователю на моем канале раздора играть песню, введя несколько слов, которые они помнят.Проблема возникает, когда я пытаюсь получить заголовок видео на YouTube, которое будет воспроизводиться при поиске лучшего результата.

Ниже я включил некоторый код, который просто показывает, что я имею в виду, а также чтоВ настоящее время я работаю с (если есть лучший способ выполнить задачу, которую я пытаюсь выяснить, не стесняйтесь указывать мне путь).

import youtube_dl

ydl_opts = {
    'quiet': True,
    'skip_download': True,
    'forcetitle': True,
    'forceurl': True,
}

# Extracts information using the "ytsearch:string" method
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    infoSearched = ydl.extract_info("ytsearch:eraser f64")

# Print the available keys
print('\n keys available: \n')
for i in infoSearched:
    print(i)

# Output the information that has potential to be what I am looking for
for i in infoSearched:
    if i is 'webpage_url' or i is 'webpage_url_basename':
        print('\n {}    {}' .format(infoSearched[str(i)], i))

for i in range(2):
    print("\n")

# Extracts information using the actual URL method
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    infoUrlGiven = ydl.extract_info("https://www.youtube.com/watch?v=pb2fwx4O_Ks")

# Outputs the correct information I am looking for
for i in infoUrlGiven:
    if i is 'webpage_url' or i is 'title':
        print('\n {}    {}' .format(infoUrlGiven[str(i)], i))

Вывод предыдущего кода

Я пытаюсь получить заголовок видео и фактический используемый URL-адрес YouTube.Я могу легко получить эту информацию, когда дело доходит до того, что пользователь сам вводит фактический URL (как показано выше), однако я не уверен, как извлечь информацию, когда видео было просмотрено с использованием метода «ytsearch: string».

опция "'forcetitle': True" выводит заголовок, который я хочу, на консоль, так что я знаю, что он где-то там, мне просто нужно найти способ извлечь его.Что касается вывода webpage_URL, я не уверен, смогу ли я получить его таким образом или нет, так как все, что выводит webpage_url в случае поиска первого результата, возвращает поиск («ytsearch: eraser f64»).

Также я включил опцию "'forceurl': True", чтобы можно было сказать, что forceurl не выводит URL, который я ищу.Я специально ищу URL-адрес страницы YouTube, чтобы я мог автоматически добавить песню в автоплейлист (не уверен, собираюсь ли я сделать это в конце концов из-за возможности дублирования из-за разных результатов поиска).

Пожалуйста, предложите.

...