Как использовать youtube-dl из программы на Python

38

Я хотел бы получить доступ к результатам команды оболочки:

youtube-dl -g "www.youtube.com..."

чтобы напечатать свой вывод direct url в файл; из программы python:

import youtube-dl
fromurl="www.youtube.com ...."
geturl=youtube-dl.magiclyextracturlfromurl(fromurl)

Это возможно? Я попытался понять механизм в источнике, но потерялся: youtube_dl/__init__.py, youtube_dl/youtube_DL.py, info_extractors...

Показать ещё 1 комментарий
Теги:
youtube-dl

5 ответов

55
Лучший ответ

Это не сложно и фактически документировано:

import youtube_dl

ydl = youtube_dl.YoutubeDL({'outtmpl': '%(id)s%(ext)s'})

with ydl:
    result = ydl.extract_info(
        'http://www.youtube.com/watch?v=BaW_jenozKc',
        download=False # We just want to extract the info
    )

if 'entries' in result:
    # Can be a playlist or a list of videos
    video = result['entries'][0]
else:
    # Just a video
    video = result

print(video)
video_url = video['url']
print(video_url)
  • 3
    Я получаю эту ошибку: import youtube_dl ImportError: Нет модуля с именем youtube_dl
  • 8
    Вы должны установить youtube_dl: если у вас есть утилита pip (для ее установки sudo apt-get install python-pip) вы можете использовать sudo pip install youtube-dl
Показать ещё 7 комментариев
4

Вот путь.

Строка параметров настройки в списке, как и параметры командной строки. В этом случае opts=['-g', 'videoID']. Затем вызовите youtube_dl.main(opts). Таким образом, мы пишем наш пользовательский .py модуль, import youtube_dl, а затем вызываем функцию main().

2

Мне хотелось бы этого

from subprocess import call

command = "youtube-dl https://www.youtube.com/watch?v=NG3WygJmiVs -c"
call(command.split(), shell=False)
2

Если youtube-dl - это терминальная программа, вы можете использовать модуль subprocess для доступа к требуемым данным.

Посмотрите эту ссылку для получения более подробной информации: Вызов внешней команды в Python

  • 33
    Немного грустно называть программу на python из программы на python, не так ли?
  • 7
    Я считаю youtube-dl для командной строки, написанной на Python, и не вижу ничего плохого в ее вызове из командной строки. Если вы хотите возиться с исходным кодом, пожалуйста, не стесняйтесь.
Показать ещё 2 комментария
0

Используя подпроцесс в системе unix, в которой уже установлен youtube-dl, я мог бы написать этот script. Надеюсь, что это даст практическое понимание

https://www.quora.com/What-are-the-best-Python-scripts-youve-ever-written/answer/Prasanna- Кумар-92 СНДИ= 850206706 &? IDX= 0

Ещё вопросы

Сообщество Overcoder
Наверх
Меню