четверг, 10 августа 2017 г.

Простейший GUI для youtube-dl скриптом на Python

Вновь порадую очередным "велосипедом" нечастых посетителей моего "дневника обо всём".

В этот раз мне захотелось перестать искать в истории терминала запущенную ранее команду. Заодно хотелось сделать простенькое окно с полем ввода ссылки и кнопкой для скачивания. И привязать это всё к комбинации клавиш для того, чтобы снова продвинуть прогресс немного вперёд с помощью лени.

Получился вот такой результат:

Простой GUI для youtube-dl

Для этого нам потребуется Python (с tkinter, который идёт в комплекте сразу) и, собственно, youtube-dl, виновник торжества. 

Существуют различные альтернативы для закачки видеороликов с YouTube, и, конечно, целая куча GUI именно для youtube-dl. Но здесь вы получаете скрипт, содержимое которого полностью доступно и на мяукающий мешок не должно быть похоже.

Кроме того, скрипт может быть полезен людям, ищущим в сети информацию по созданию окошек с текстовыми надписями, полями ввода и кнопочками, в качестве простенького примера.

Итак, краткое описание:

Скрипт вызывает окно, в котором указано, в какой каталог будет загружаться видео, запрашивает ссылку на ролик и пытается скачать его с наилучшим доступным качеством видео- и аудиопотоков. Путь к директории для загрузки прописывается вручную в самом скрипте; это удобно, когда нужно всё время сохранять в одном и том же месте. Процесс скачивания начинается при нажатии кнопки [Скачать], после этого скрипт завершает работу. Если при этом в поле для ссылки ничего не введено или введено некорректное значение, никаких уведомлений выводиться не будет, а окно закроется. В общем, ссылка должна быть такой, какую бы принял youtube-dl, если бы был запущен в терминале.

Ну и сам скрипт:

from tkinter import *
import os

def posledovatelnost():                     # выполнение команды и закрытие
    os.system(("cd '%s' && youtube-dl -f bestvideo+bestaudio '%s'" % (katalog, adres.get())))
    okno.destroy()

katalog = "/home/<username>/Desktop"        # путь к каталогу для закачанных файлов

# создание окна программы
okno.title("YouTube download")              # заголовок
okno.config(padx=8, pady=4)                 # свободное пространство по краям
okno.minsize(330, 80)                       # минимальный размер
okno.maxsize(640, 80)                       # максимальный размер

Label(okno, text=("  Видео будет сохранено в каталог: '%s'  " % katalog)).pack(expand=NO, fill=X)

Button(okno, text="Скачать", command=posledovatelnost).pack(side=BOTTOM)

Label(okno, text=("Ссылка: ")).pack(side = LEFT, fill=X)

adres = Entry(okno)                         # поле ввода URL
adres.delete(0, END)
adres.insert(0, "")
adres.pack(side=RIGHT, expand=YES, fill=X)
adres.focus()
adres.bind("<Return>", (lambda event: posledovatelnost()))

okno.mainloop()                             # "запускатор", необходим

Укажите необходимый путь в переменной katalog (пути вида "~/Desktop" или "$HOME/Desktop" у меня не принимались, поэтому использовал полный).

Комментариев нет:

Отправить комментарий

Если у вас есть что сказать и/или вы не согласны с изложенным в посте – оставьте комментарий. Регистрации не требуется.

If you think I'm wrong and/or you have to say something – fill free to write comment. No sign up required.