-FedorDownTube — программа для скачивания видео с ютуба с учётом блокировок. Для доступа к видео, необходимо иметь запущенный fedordpi. На данный момент работает только под Linux.
+FedorDownTube — программа для скачивания видео с ютуба.
Зависимости:
1)pytubefix: pip install pytubefix
3)fedordpi
Использование:
-Запуск: python3 fedordowntube.py [URL] # URL опционален, если его не указать, его всё равно спросит
-После запуска будут предложенны возможные варианты качества, указать нужный пункт можно номером в списке или написать 1080 или 1080p. Будут скачаны отдельно фаил видео и звука, а затем перекодированны в mp4 при помощи ffmpeg.
+Запуск: python3 fedordowntube.py [flags]
-Ð\9dа пеÑ\80вом запÑ\83Ñ\81ке и Ñ\80аз в какоеÑ\82о вÑ\80емÑ\8f бÑ\83деÑ\82 Ñ\81пÑ\80аÑ\88иваÑ\82Ñ\8c PoToken и visitorData. ÐÑ\82о нÑ\83жно длÑ\8f обÑ\85ода анÑ\82ибоÑ\82Ñ\81иÑ\81Ñ\82емÑ\8b Ñ\8eÑ\82Ñ\83ба. Ð\93айд как полÑ\83Ñ\87иÑ\82Ñ\8c Ñ\8dÑ\82и знаÑ\87ениÑ\8f воÑ\82: https://github.com/JuanBindez/pytubefix/pull/209
+Ð\9fоÑ\81ле запÑ\83Ñ\81ка бÑ\83деÑ\82 запÑ\80оÑ\88ен url видео, коÑ\82оÑ\80ое нÑ\83жно Ñ\81каÑ\87аÑ\82Ñ\8c. Ð\9fоле обÑ\80абоÑ\82ки запÑ\80оÑ\81а бÑ\83дÑ\83Ñ\82 пÑ\80едложеннÑ\8b возможнÑ\8bе ваÑ\80ианÑ\82Ñ\8b каÑ\87еÑ\81Ñ\82ва, Ñ\83казаÑ\82Ñ\8c нÑ\83жнÑ\8bй пÑ\83нкÑ\82 можно номеÑ\80ом в Ñ\81пиÑ\81ке или напÑ\80имеÑ\80 напиÑ\81аÑ\82Ñ\8c 1080 или 1080p. Ð\91Ñ\83дÑ\83Ñ\82 Ñ\81каÑ\87анÑ\8b оÑ\82делÑ\8cно Ñ\84аил видео и звÑ\83ка, а заÑ\82ем пеÑ\80екодиÑ\80ованнÑ\8b в mp4 пÑ\80и помоÑ\89и ffmpeg.
-Известные проблемы: Иногда зависает на этапе скачивания видео или видео, помогает перезапуск или выбор другого качества.
+На первом запуске и раз в какоето время будет спрашивать PoToken и visitorData. Это нужно для обхода антибот-системы ютуба. Гайд как получить эти значения вот: https://github.com/JuanBindez/pytubefix/pull/209
+
+Дополнительные флаги:
+--proxy (-p) Использовать прокси (по стандарту 127.0.0.1:8881)
+--no-ffmpeg Не использовать ffmpeg, следовательно видео и звук не будут объеденины
+
+Известные проблемы: Иногда зависает на этапе скачивания видео или звука, помогает перезапуск или выбор другого качества.
def download(yt, choice):
+ global ffmpeg
+
video_stream = yt.streams.\
filter(type='video', mime_type="video/webm", progressive=False).\
order_by('resolution').\
print('\nDownload audio...')
audio_stream.download()
- combine(audio_stream.default_filename, video_stream.default_filename, f'{yt.title}.mp4')
+ if ffmpeg:
+ combine(audio_stream.default_filename, video_stream.default_filename, f'{yt.title}.mp4')
def menu(url: str):
+
+ global proxies
yt = YouTube(
- proxies={"http": "http://127.0.0.1:8881",
- "https": "http://127.0.0.1:8881"},
+ proxies=proxies,
url=url,
on_progress_callback=on_progress,
use_po_token=True,
download(yt, res)
-if len(argv) == 2:
- url = argv[1]
-else:
- url = input("url: ")
+
+proxies = {}
+if ('-p' in argv) or ('--proxy' in argv):
+ proxies = {"http": "http://127.0.0.1:8881",
+ "https": "http://127.0.0.1:8881"}
+ print('proxy:', proxies["http"])
+
+ffmpeg = True
+if '--no-ffmpeg' in argv:
+ ffmpeg = False
+
+
+url = input("url: ")
menu(url)