LINUX.ORG.RU

Выпуск Yatube 1.0 - клиента Youtube

 


3

2

Состоялся первый выпуск Yatube (Yet Another Youtube client).

Программа ориентирована, прежде всего, на владельцев слабых компьютеров, которые испытывают дискомфорт при просмотре видео с Youtube через браузер, а также владельцев старых телевизоров без поддержки WiFi и Youtube. Все загружаемые видео имеют путь Yatube/user/Youtube/<название_канала>/<название_ролика>, что позволяет перенести весь каталог Youtube на внешний жесткий диск и смотреть ролики с телевизора, подключенного к медиаплееру.

Программа написана на Python 3 и не требует для работы обновления библиотек.

Основная функциональность:

  • Загрузка и воспроизведение видео с Youtube. Видео можно запустить со специальным набором параметров для mplayer/mpv.
  • «Подписка» на каналы (Yatube/user/subscribe.txt) и блокировка каналов (Yatube/user/block.txt)
  • Обзор раздела «Популярное» для всех стран
  • Для ускорения работы новые метаданные хранятся в базе данных
  • Установка/снятие метки для загруженных/просмотренных видео. При этом сами видео можно удалить.
  • Фильтрация по дате видео, а также по автору и заголовку
  • Загрузка видео по URL
  • Поиск на Youtube
  • Контекстное меню по правой кнопке мыши на видео

Скриншот.

В разделе "Releases" на GitHub можно найти исходный код и статическую сборку (32 бита) под Linux (работает под CentOS6, но для вашего дистрибутива гарантий нет).

Для получения программы в виде исходного кода можете сделать:

cd /usr/local/bin
git clone https://github.com/sklprogs/Yatube.git
git clone https://github.com/sklprogs/shared.git

На данный момент метаданные загружаются очень медленно (вероятно, из-за того, что pafy использует Google API). Чтобы не ждать, можете отдельно загрузить базу данных, которую нужно будет поместить в Yatube/user/yatube.db. Каталог Yatube/user должен иметь права на запись. В subscribe.txt и block.txt уже имеется *примерный* перечень каналов, но это не значит, что эти каналы я рекомендую или не рекомендую или согласен с тем, что на них говорится.

>>> Проект на GitHub

Ответ на: комментарий от paran0id

Хосспаде, ну сколько можно мусолить этот миф. Питон не подходит для числодробилок, высоконагруженных систем, где требуется тонкое распараллеливание нагрузки. Для многих остальных задач, в т.ч. сабжа, он вполне себе подходит. Можешь вообще использовать Cython, если так заморачиваешься вопросом скорости. Можно ли спросить: сколько времени ты писал на Питоне, если вообще? Какие конкретно просадки по скорости и ресурсам замечал?

denton ★★★★★ ()
Ответ на: комментарий от dikiy

Честно говоря, не понимаю логики именовать версию как 0.0.1. Это что - релиз, первый коммит, первый патч? Если коммит, то большой ли смысл публиковать? У меня до этого программа шла как alpha и beta, я ее нигде не публиковал (помимо github). Когда программа достигает относительной функциональности и стабильности, я называю ее 1.0 и публикую. При этом 1.0.1 - патч, 1.1 - минорное обновление. А что такое 0.0.1?

denton ★★★★★ ()
Ответ на: комментарий от dikiy

minitube умеет играть потоковое видео (pafy тоже это позволяет, но я пока не реализовал). Он также быстрее загружает метаданные (но, видимо, не все, поэтому и тонкой сортировки не будет). Также есть подписки, но нет возможности блокировки. В новых версиях minitube нет возможности скачивать видео, у меня оно есть. Насколько помню, minitube также не умеет играть или искать видео по URL. Также minitube хочет относительно новых библиотек для своей установки, а ключ для API, который google рассылает разработчикам, регулярно блокируется, поэтому есть хороший шанс, что, сделав apt-get install minitube в старом дистрибутиве, вы получите неработающую программу.

denton ★★★★★ ()
Ответ на: комментарий от anonymous

переписывай на golang

Зачем? Или это такой троллинг, а программирование на Питоне считается хипстерством?

добавляй поддержку других видеохостингов

Если модули под них, как под Youtube, есть - не вопрос.

denton ★★★★★ ()
Ответ на: комментарий от denton

А что такое 0.0.1?

первый релиз. Вон, mplayer, чтобы дотянуть до 1.0 больше 10 лет потребовалось. Так же и wine.

1.0 — это офигеть какая матерая программа уже должна быть. 1.0 — это некислое такое заявление.

dikiy ★★★★☆ ()
Ответ на: комментарий от buratino

Полностью консольное приложение в планах. Правда, я скорее буду ориентироваться не на 100% повторение возможностей GUI-приложения, а на обновление базы в фоне при запуске консольной программы и автоматическое скачивание новых видео из подписок, чтобы видео сразу можно было переместить на внешний жесткий диск для просмотра на TV.

Если интересуют уже готовые решения, то можно взглянуть на mps-youtube. Правда, он у меня ничего не находил по поиску. Возможно, google уже блокировал его ключ для своего API.

denton ★★★★★ ()
Ответ на: комментарий от dikiy

Не-не-не, я с этим столкнулся, когда не смог установить minitube на старую систему. Чтобы собрать программу, нужно до компиляции указать ключ разработчика.

denton ★★★★★ ()
Ответ на: комментарий от denton

Не-не-не, я с этим столкнулся, когда не смог установить minitube на старую систему. Чтобы собрать программу, нужно до компиляции указать ключ разработчика.

че-то такое было, помню. Но вылечилось каким-то шаманством в конфиге.

dikiy ★★★★☆ ()
Ответ на: комментарий от dikiy

Да, знаю, wine тоже сколько лет пилится, а до сих пор у них тройка (экспериментальный 3.5, кстати, вчера вышел). Но при этом есть Chrome 67 и Firefox 59. Не то, чтобы я слишком гнался за версиями, но я просто не понимаю логики. На GitHub рекомендуется следующее:

Semantic versioning is a very simple scheme built around the X.Y.Z-buildNo concept (for example 2.6.0-2 or 2.6.0-SNAPSHOT20120501): * Increment Z when you fix something

* Increment Y when you add a new feature

* Increment X when you break backwards-compatibility or add major features

* Use the buildNo to differentiate different builds off the same branch, and to differentiate between development, test and production builds.

denton ★★★★★ ()

Как я понял через SOCKS 5 подключаться к ютубчику возможности нет? P.S. почитал отзывы, консольный youtube-dl рулез, лучше бы они его допиливали.

sex123 ()
Ответ на: комментарий от denton

А 32-битный бинарник (желательно, совместимый со старыми ОС) у них есть?

Ну да, смотри *-i686.AppImage и *-i386.AppImage
>>> https://github.com/AppImage/AppImageKit/releases

atsym ★★★★★ ()
Последнее исправление: atsym (всего исправлений: 1)
Ответ на: комментарий от sex123

Как я понял через SOCKS 5 подключаться к ютубчику возможности нет?

Через прокси? Не знаю. Сам по себе модуль для прокси на Питоне есть. Некоторые через TOR на youtube заходят, правда, через браузер. По идее, проблем не должно быть, потому что ключ разработчика жестко прописывается и на IP никак не влияет.

почитал отзывы, консольный youtube-dl рулез, лучше бы они его допиливали

Ну, местные комментарии вообще жгут напалмом. Одним Питон не нравится, другие утверждают, что youtube-dl - наше все. А между тем, pafy использует youtube-dl как backend, а я импортирую pafy. Т.е., у меня ни в коем случае не альтернативная реализация youtube-dl, а обертка, которая ускоряет процесс. Раньше у меня была электронная таблица с параметрами для youtube-dl. Вставляешь URL - получаешь ссылку. Но я даже это запарился делать. Гораздо проще поставить галку и нажать «Воспроизвести». Интернет можно и через голый wget/curl читать, но много ли людей это делает? Нет, надо хотя бы тэги удалить, текст отформатировать, ссылки расставить. Вот и здесь так же.

denton ★★★★★ ()
Ответ на: комментарий от dikiy

но называть первый релиз Yatube 1.0 — это какая-то непозволительная борзость, если не сказать хамство!

Бро, писюкнул в трусики, и не подумал про нумерацию версий в американском формате.

Odalist ★★★★★ ()
Ответ на: комментарий от denton

переписывай на golang

Зачем?

Потому что по крайней мере для данного вида софта продуктивность программиста в golang сравнима с python, а производительность результирующего кода в разы выше. Если вы ориентируетесь на «владельцев слабых компьютеров», то golang — гораздо более логичный выбор.

И да, нельзя не отметить отдельно то, насколько проще в golang'е писать параллелизированный код. И даже одноядерные Atom'ы уровня 2010-года будут способны получить выигрыш в производительности (за счёт hyper-threading'а).

anonymous ()
Ответ на: комментарий от denton

А между тем, pafy использует youtube-dl как backend, а я импортирую pafy. Т.е., у меня ни в коем случае не альтернативная реализация youtube-dl, а обертка

А, теперь понятно почему вопрос эффективности не стоит. Тогда сорри. Я представлял проект по-другому.

anonymous ()
Ответ на: комментарий от anonymous

а производительность результирующего кода в разы выше

Почему? Код на Питоне тоже можно скомпилировать. Против Go ничего не имею, я его просто не знаю.

Если вы ориентируетесь на «владельцев слабых компьютеров», то golang — гораздо более логичный выбор.

Ничего не могу сказать по данному поводу. На ЛОРе проскальзывало мнение (сейчас ссылку найти не могу), что Go забирал намного больше, чем Python, ресурсов на очень слабой машине с *BSD.

denton ★★★★★ ()
Ответ на: комментарий от denton

mlib суть графичный тулкит, который пилит одна могущественная погромистка. величайший тулкит, он принесёт настоящий Вейланд, уделает redhat с их гтк3 и перевернет мир Linux. никто не может сравниться с ним по скорости!

anonymous ()

Ад в репозиториях. Как это опакетить нормально? И почему бы не использовать git submodules, если есть сторонние библиотеки? А мануалы будут? Хотя бы README.md? Ух, жесть.

commagray ★★★ ()
Последнее исправление: commagray (всего исправлений: 1)
Ответ на: комментарий от commagray

Ад в репозиториях.

Чем же, помимо симлинков?

Как это опакетить нормально?

Обычно python3 setup.py build, потом уже делать пакет из полученного. Или я что-то не понимаю?

И почему бы не использовать git submodules

Надо бы, но я их еще не изучил.

А мануалы будут?

В docs есть хоткеи. Остальное вроде интуитивно понятно. В консольной версии будет help. Что именно не хватает?

denton ★★★★★ ()
Последнее исправление: denton (всего исправлений: 1)
Ответ на: комментарий от buratino

такое же или не совсем — не знаю, но уже несколько лет смотрю видео с ютуба почти исключительно через mps-youtube. консольное, с поиском, utf-8 тоже, вроде бы, ок. комменты только оно нормально не показывает, но обычно комменты и не нужны.

а ещё можно делать так:

mpv "ytdl://ytsearch:найти что нибудь"
тут, видимо, ytdl обращается прямо к API youtube. но документации, какие есть команды, я сходу не нашёл.

anonymous ()