Skip to content

Latest commit

 

History

History
92 lines (77 loc) · 13.5 KB

File metadata and controls

92 lines (77 loc) · 13.5 KB

notPipe

English / русский

Рабочий клиент YouTube для Android 1.5+, использующий несколько серверных API. Создан с ❤ и расчётом на долговечность. Вместо того чтобы зависеть от одного инстанса, который может внезапно перестать работать, приложение параллельно использует сразу несколько для максимальной надежности.

notPipe

Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot

Список поддерживаемых API:

  • Invidious (метаданные, 360p)
  • yt2009 (все качества, конвертация, каналы)
  • Piped (метаданные, 360p)
  • YtAPILegacy (метаданные, все качества, конвертация)

📥 Скачать

Возможности

Note

Приложение не подключается к YouTube напрямую, поэтому это обходит различные сетевые ограничения. См. «Зачем и как это работает».

  • Популярное, поиск
  • Видео, похожие видео, комментарии
  • Воспроизведение видео в 360p/480p/720p/1080p
  • Каналы
  • Конвертация видео для устройств без поддержки H.264 в кодеки MPEG-4 Visual и H.263
  • Автоматическое обновление списка инстансов с ссылки
  • Планшетный интерфейс

TODO

  • Скачивание видео
  • Скачивание аудио
  • Авторизация в YouTube-аккаунт через YTFixer/yt2009 (рекомендации, подписки, история и т. д.)
  • Плейлисты
  • Локальный аккаунт для подписок (как в NewPipe)

Исправляем проблемы на Android ≤2.3

(видео лагают или вообще не воспроизводятся)

Если видео не воспроизводятся, сначала попробуйте типичную диагностику:

  1. Смените инстанс. Нажмите кнопку «Воспроизведение через … >». Некоторые инстансы могут быть временно недоступны.
  2. Убедитесь, что у вас стабильное подключение к сети. notPipe может работать некорректно при медленном интернете.

Если это не помогло, то ваше устройство не поддерживает кодек H.264. Его поддержка сильно зависит от устройства. В notPipe есть два способа решить эту проблему:

  1. Использовать MX Player (Android 2.1+) и переключиться на внешний плеер в настройках. Правда, на слабых устройствах плеер может лагать на большинстве YouTube-видео. Остаётся только пробовать.
  2. Включить конвертацию в настройках. В этом случае видео конвертируется в кодек MPEG-4 Visual на стороне сервера, а воспроизводится через системный плеер. Требуется SD-карта. К сожалению, из-за этого перед началом воспроизведения будет задержка, но она не должна превышать 3–5 минут.

Зачем и как это работает

Существующие способы смотреть YouTube на старых Android-устройствах страдают от двух фатальных недостатков — неудобства использования и неспособности обходить текущие защиты YT против ботов. Актуальные на сегодня способы имеют следующие проблемы:

  • Единая точка отказа. Предыдущие способы смотреть YouTube полагаются на один конкретный инстанс API (сервер). Как только такой инстанс получает заметный объём трафика, YouTube автоматически банит его IP-адрес. Кроме того, один сервер может быть сильно перегружен, из-за чего им становится невозможно пользоваться.
  • Плохая удобность использования. Веб-обёрткам вроде S60Tube не хватает ощущения нативного приложения, плюс они требуют постоянного переключения между браузером и видеоплеером. Пропатченные APK-файлы под сервер yt2009 требуют нудного ручного изменения под каждый конкретный инстанс. К тому же, они часто страдают от сильной нагрузки при кодировании видео на стороне сервера, что приводит к бесконечной загрузке. Да и старый мобильный дизайн YouTube не всегда удобен. Всё ощущается очень костыльным.

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

  1. Обход банов. Запросы распределяются по достаточно большому набору серверов. Поскольку ни один сервер по отдельности не генерирует огромный трафик, вероятность того, что YouTube забанит IP, радикально снижается.
  2. Производительность. Нагрузка на пропускную способность серверов балансируется естественным путём, предотвращая жёсткие тормоза, характерные для патченных APK, привязанных к одному серверу.
  3. Оно просто работает. Вы получаете нативный интерфейс Android без необходимости самостоятельно патчить APK или настраивать личные серверы.
  4. Никакой единой точки отказа. Поскольку именно так умерли предыдущие клиенты YouTube, здесь всё децентрализовано и открыто для вклада любого желающего.
  5. Автоматическое обновление инстансов. Список инстансов обновляется автоматически и по умолчанию загружается с http://144.31.189.129/notPipe.json, что требует от пользователя минимум действий.

Сообщить о баге

Вам во вкладку «Issues» на GitHub! Не забудьте указать, на какой версии Android и архитектуре (ARMv5/v6/v7/др.) вы столкнулись с проблемой.

Сборка

Проект разрабатывается в следующей среде:

  • Android Studio 2.3.2 Скачать
    • Android Studio 1.0–3.1.2 могут поддерживать Android <2.2, но для разработки рекомендуется именно 2.3.2, так как она достаточно старая, но при этом всё ещё поддерживается.
    • Последние версии AS по-прежнему поддерживают Android 2.2 и выше (хотя и заточены под 4.1+). Вы можете использовать их, если поддержка совсем старых версий Android для вас не в приоритете.
  • Android SDK любой версии (рекомендуется 25)
    • Использовать старый SDK для разработки ретро-приложений не обязательно.
  • Эмулятор Android 1.5/1.6 из SDK Скачать

При внесении вклада в проект рекомендуется использовать AS, однако вы можете использовать любую другую IDE, при условии, что проект останется работоспособным и в AS.

Благодарности

Предыдущие клиенты YouTube

Хотя они не использовались ни как источник вдохновения, ни как кодовая база, эти приложения заслуживают упоминания, поскольку именно они навели на идею создания этого проекта.

  • Mini YouTube от monobogdan — клиент для Android 2.0+, использующий захардкоженный инстанс Invidious с проксированием запросов через российский сервер monobogdan'а. Сейчас прокси-сервер мёртв, а учитывая, что здесь присутствует «единая точка отказа», компилировать проект с новым инстансом, даже убрав прокси, не имеет смысла.
  • ReOldTube от YMP Yuri — клиент для Android 3.0+, использующий Invidious. Хоть и в настройках его можно сконфигурировать для работы и сегодня, в нём полно багов (да и написан он «на вайбах» / vibecoded).
  • YT-Legacy-Eclair от MoreVista — простой клиент для Android 2.1+, использующий Invidious. Единичный инстанс можно сменить в настройках.

Лицензия

Проект notPipe распространяется под лицензией Do What The Fuck You Want To Public License, версия 2. Подробности см. в файле LICENSE. При желании можете указать меня в README своего проекта.

ОДНАКО библиотека NNJSON распространяется под лицензией MIT. Подробности см. в файле LICENSE-NNJSON.