/yashlang

PeerTube and YouTube player for Android with local playlists and whitelisted recommendations

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

YaShlang [Йа-Шланг]

Online PeerTube and YouTube player for Android with local playlists and whitelisted recommendations
for English go to README.en.md

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

Get it on F-Droid

новости и анонсы: https://t.me/yashlang

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

Ваш собственный безопасный онлайн-кинотеатр под вашим полным контролем.

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

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

=>

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

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

Можно вставлять адреса каналов, страниц пользователей и плейлистов PeerTube и YouTube. Поиск по имени работает только для каналов и плейлистов YouTube.

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

=>

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

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

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

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

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

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

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

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

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

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

Кроме того

  • Навигация по включенным плейлистам из главного экрана
  • Профили плейлистов: можно объединить плейлисты в группы и переключить группы в зависимости от контекта (например: Мультики, Фильмы, Познавательное, История, Аналитика и т.п.)
  • Загрузка отдельных потоков видео и аудио для роликов для просмотра оффлайн
  • Режим оффлайн: отображение в рекомендациях только скачанных роликов
  • Проигрывание в фоне - панель управления плеером в области уведомлений и на экране блокировки устройства
  • Всякие мелочи, про которые не успеваю сюда писать

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

=>

Приложение сразу станет выглядеть так, как на скриншотах выше.

Ненужные каналы и плейлисты можно выключить или удалить в настройках.

Установка

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

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

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

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

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

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

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

  • Гугл регулярно ломает совместимость для сторонних приложений, не использующих их API. Ролики Ютюб могут перестать загружаться в любой момент (еще вчера они играли, а сегодня каждый ролик выдает ошибку при загрузке). Обычно эти проблемы довольно быстро исправляются в проекте NewPipeExtractor (и в проекте youtube-dl), информация о проблемах загрузки попадает к ним в багтрекер NewPipeExtractor/issues, там же можно следить за статусом исправления. Так или иначе, до выпуска исправленной версии приходится ждать несколько дней (особенно, пользователям F-Droid).

совет: хватит это терпеть! Гугл в очередной раз поломал совместимость сторонних плееров с Ютюбом? Найдите подходящий сервер PeerTube с поддержкой загрузки (или заведите свой инстанс), перенесите туда любимые ролики (интерфейс загрузки PeerTube позволяет импортировать ролики YouTube по ссылке, а так же указывать ссылки на торренты!) и добавьте канал в плейлист YaShlang!

  • Не будет играть ролики с возрастными ограничениями, требующие логин в аккаунт Гугл/Ютюб

например: Илья Муромец, Киноконцерн "Мосфильм", Руслан и Людмила 1-ая серия / Ruslan and Lyudmila film 1, Киноконцерн "Мосфильм"

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

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

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

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

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

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

  • Если встретите публичный ролик, который не требует логин, играет в браузере, но не играет в плеере, присылайте баг-репорт (вполне возможно, проблема уже исправлена в новой версии NewPipeExtractor и нужно будет только обновить сборку с этой версией, например).

  • Интерфейс может подтормаживать при медленном (но не выключенном) интернете

updt: должно стать намного лучше после вот этих историй #17 #129

  • Пару раз ловил невоспроизводимый NullPointerException на операциях, связанных с загрузкой информации с сервиса. Если приложение вдруг вылетело при какой-то операции (например, при добавлении нового плейлиста), скопируйте стек-трейс и пришлите сюда, а операцию повторите — скорее всего второй раз она завершится успешно.

  • Ошибка "reCaptcha Challendge requested" при добавлении новых плейлистов

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

  • НЕ ДЕЛАЙТЕ ДАУНГРЕЙД на версию 0.1.0 (или ниже) после того, как обновились на старшую версию (начиная с 0.2.0). Потеряете все данные - добавленные плейлисты, историю просмотров, закладки и т.п.!

Начиная с версии 0.2.0 эта проблема исправлена (на 0.2.0 можно будет делать безопасный даунгрейд, но не на 0.1.0!). Кроме того, версия 0.1.0 все равно больше не работает и никогда не заработает, т.к. Гугл в очередной раз поломал задействованный в ней API.

В неопределенном будущем

  • ГОТОВО: Загрузка роликов для просмотра оффлайн (#8, #142)
  • Экспорт и импорт базы для резервной копии и переноса между устройствами (частично реализовано https://github.com/sadr0b0t/yashlang/releases/tag/v0.7.0)
  • ГОТОВО: Режим аудио-плеера: играть в фоне звуковую дорожку при выключенном экране (#7 , здесь дополнительно: #179)
  • Локальные списки проигрывания с ручным добавлением элементов
  • Другие онлайн-сервисы