1i7 (1i7) wrote,
1i7
1i7

Category:

YaShlang [Йа-Шланг]: побег из курятника

Онлайн плеер YouTube с локальными плейлистами, каналами и рекомендациями.




- Добавляйте любимые каналы и плейлисты
- Внутри добавленных плейлистов выключайте лишние ролики, если они вам не нужны
- Смотрите только то, что вам интересно


На Гитхабе: https://github.com/sadr0b0t/yashlang/
На хабре: https://habr.com/ru/post/482874/

Исходный мотив
Хочу иметь возможность время от времени давать ребенку планшет или смартфон с мультиками, но меня совершенно не устраивает, куда через 2-3 клика заводит ребенка список рекомендаций в стандартных приложениях — клиентах Ютюб.

Летом или в конце весны созрел начачать разработку, в декабре повесил тег 0.1.0-beta1 на первый релиз.

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

Возможно, когда-то появятся:
- Загрузка роликов для просмотра оффлайн
- Режим аудио-плеера: играть в фоне звуковую дорожку при выключенном экране
- Локальные списки проигрывания с ручным добавлением элементов
- Поддержка PeerTube

Под катом обзор


На главном экране и на экране плеера: случайные рекомендации из неслучайных каналов













Мгновенный поиск по локальной базе

=>

Добавить новый канал или плейлист






Искать по имени онлайн или вставить известный адрес.


Динамический плейлист — играть результаты поиска

=>







В рекомендациях под видео будут только ролики, удовлетворяющие поисковому запросу.

Аналогичным образом, если открыть видео из настроек плейлиста, в списке рекомендаций будут только ролики из этого же плейлиста.

Плейлисты и каналы можно временно выключать и снова включать




Обратите внимание: ролики из выключенного плейлиста исчезнут также из результатов поиска, истории просмотров и из списка любимых. Но не стоит переживать, они опять появятся там сразу после того, как плейлист будет снова включен.


Внести ролик в черный список



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

Просмотреть черный список и снова включить элементы, заблокированные по ошибке:
Настройки > меню в заголовке > Черный список



Любимые ролики и история просмотров




Любимые ролики на экране плеера отмечаются звёздочкой в правом верхнем углу.

Контекстные меню в заголовке экрана и по долгому клику в галереях и списках



Можно копировать имя или адрес видео или плейлиста в экране просмотра или в любом списке в буфер обмена: удобно, если нужно открыть в браузере, сохранить в закладки или отправить ссылку товарищу в мессенджер.

Быстрый старт — добавить рекомендованные каналы и плейлисты

=>


Установка

Страница проекта: https://github.com/sadr0b0t/yashlang/
на английском языке: https://github.com/sadr0b0t/yashlang/blob/master/README.en.md
релизы: https://github.com/sadr0b0t/yashlang/releases

- На Гуглплее нет и ближайшее время не будет (Гугл банит приложения, которые в обход API парсят их сайт, в т.ч. упомянутый Channel Whitelist или плеер NewPipe)
- Собирайте из исходников: https://github.com/sadr0b0t/yashlang/
- Качайте apk из раздела с релизами: https://github.com/sadr0b0t/yashlang/releases
- Надеюсь, что через некоторое время появится в каталоге Ф-Дроид (заявка на добавление, вроде, одобрена, но дальше не движется уже почти месяц)


Имейте ввиду, что переключаться между разными версиями из разных источников на одном устройстве не получится из-за разных подписей файла apk, перед установкой версии из нового источника придется установленную версию сначала удалить вместе с данными — кэшем плейлистов и историей просмотров (или придумать, как эти данные перенести).

Технические детали

Не требует аккаунт Гугл/Ютюб, нужен только интернет, использует библиотеки:

- NewPipeExtractor для получения данных с сервиса YouTube и
- ExoPlayer для проигрывания видео.


Открытый исходный код, свободная лицензия GPLv3.

вопрос: Парсить сайты без разрешения (или с явным запретом) авторов вообще законно? Гугл удаляет из Гугл-плея приложения, которые не используют их API, а парсят их сайты, т.к. они нарушают их пользовательское соглашение.
ответ: конечно, законно, это ваше дело, какой инструмент использовать для чтения общедоступной информации. Больше того: Суд США полностью легализовал скрапинг сайтов и запретил ему технически препятствовать, но у Гула может быть другое мнение, лично у меня пока нет желания отправляться в американский суд их переубеждать.


больше продробностей в статье на Хабре: https://habr.com/ru/post/482874/

Известные проблемы

- Не будет играть ролики с возрастными ограничениями, требующие логин в аккаунт Гугл/Ютюб
например: Илья Муромец, Киноконцерн "Мосфильм", Руслан и Людмила 1-ая серия / Ruslan and Lyudmila film 1, Киноконцерн "Мосфильм"

совет: добавлять такие ролики в черный список или попросить автора ролика снять ограничение, выставленное по ошибке.

- Не будет играть некоторые ролики-трансляции, для которых сервис возвращает нулевую длину (для таких роликов продолжительность в списках и галерее отмечена как "[dur undef]")


например: Ну Погоди! Все Выпуски Союзмультфильм HD (Мультики для детей), Мультики студии Союзмультфильм, Топ мультиков Союзмультфильм, Мультики студии Союзмультфильм

совет: добавлять такие ролики в черный список.

- Ролики, доступные только по прямым ссылкам, могут не попасть в локальный плейлист, даже если вы загружаете все ролики пользователя

например: Укрощение огня 1 серия, Киноконцерн "Мосфильм"


Tags: yashlang, бигдог, мультики, программирование, хабра
Subscribe

Posts from This Journal “программирование” Tag

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments

Posts from This Journal “программирование” Tag