English / русский
A working YouTube client for Android 1.5+ utilizing YtAPILegacy, Invidious and yt2009 APIs. Made with ❤ and longevity in mind.
- Telegram channel with updates: @AppDataApps
- Retro Android Group on Telegram
- GitHub Releases
- Telegram (link at the top of the README)
Note
Due to various limitations, the app does not connect to YouTube directly. Instead it connects to various instances of YtAPILegacy, Invidious and yt2009. See "Why and how" for more information.
- Trending, search
- Videos, related videos, comments
- Video playback
- Video conversion for devices that do not support H.264
- Automatic updates of the list of instances from a URL
- Landscape, tablet layout (it works on tablets but doesn't look usable)
- Channels
- Playlists
- Authorization via YtAPILegacy
Existing methods for watching YouTube on legacy Android suffer from two fatal flaws—poor usability and an inability to survive YouTube’s current anti-bot measures. Current workarounds generally have the following issues:
- Single point of failure. Current (and previous) ways of watching YouTube rely on a single specific API instance. The moment an instance gets a noticeable amount of traffic, YouTube automatically bans its IP address. A single instance may also be heavily overloaded, rendering it unusable.
- Poor usability. Web wrappers like S60Tube lack a native feel and require constantly switching between a browser and a video player. yt2009 patched APKs require tedious, per-instance patching—furthermore, they often suffer from heavy server-side video transcoding overhead, crippling in endless buffering. The old mobile YouTube design also isn't always practical. Everything feels clunky.
This project was built from the ground up to solve these exact issues. Instead of relying on a single point of failure, this client utilizes multiple APIs and instances simultaneously, randomly selecting a new instance for each activity. This decentralized approach provides critical advantages:
- Ban evasion. Requests are distributed across a big enough pool of servers. Because no single server generates massive traffic, the chances of YouTube triggering an IP ban are drastically reduced.
- Performance. Server bandwidth is load-balanced naturally, preventing the crippling slowdowns seen in single-instance patched APKs.
- It just works. You get a native Android interface without needing to patch your own APKs or configure private servers.
- No single point of failure. Because this is exactly how previous YouTube clients died, everything is decentralized and open for anyone to contribute.
- Automatic updates of the instances. The list of the instances is automatically updated and by default loads from http://144.31.189.129/notPipe.json, requiring as less actions from the user as possible.
If you cannot play videos, please try the following first:
- Switch an instance. Click the "Playback via … >" button. Some instances might be temporarily unavailable.
- Make sure your network is stable. notPipe may not work properly on a slow Internet connection.
If it still doesn't work, your device might not support the H.264 codec. There are two ways to mitigate this in notPipe:
- Use MX Player (Android 2.1+) and switch to the external player in settings. However, on unpowerful devices, it's likely that the player will lag on most videos. You can only try.
- Enable conversion in settings. This converts the video to the MPEG-4 Visual codec server-side while using the system player and it is recommended to do first on armeabi Android 1.5–2.3 devices. Requires an SD card. This will unfortunately make a delay when playing a video, but it should last no more than 3–5 minutes.
Report bugs in the Issues tab! Don't forget to specify which version of Android you encountered the bug on.
The project is developed under the following build environment.
- Android Studio 2.3.2
Download- Android Studio 1.0–3.1.2 may support Android <2.2, but 2.3.2 is recommended for development as it's simultaneously old and supported.
- Latest AS versions still support Android 2.2 and later (though they are made with 4.1+ in mind)—you can use them if you don't prioritize old Android versions.
- Android SDK of any version (25 recommended)
- It is not required to use an old SDK for developing legacy apps.
- Android 1.5/1.6 emulator from the SDK
Download
It is recommended to use AS while contributing; however, you may use another IDE as long as you make the project still usable in AS.
- How-to-develop-and-backport-for-Android-2.1-in-2020 project template by Michele
- NNJSON library by nnproject
- Special thanks to all YtAPILegacy, Invidious and yt2009 contributors for making these awesome APIs possible
Although not used as inspiration or a codebase, these previously working apps deserve acknowledgment, as they led to the idea of this project.
- Mini YouTube by monobogdan — client for Android 2.0+ utilizing a hardcoded Invidious instance with requests proxied to monobogdan's Russian server. The proxy server is dead and considering it has a single point of failure, it's not worth it to compile the project with a new instance even with the proxy removed.
- ReOldTube by YMP Yuri — client for Android 3.0+ utilizing Invidious. While it can be configured in settings to be used today, it has numerous bugs (and is vibecoded).
The notPipe project is licensed under the Do What The Fuck You Want To Public License, Version 2. See LICENSE for details. If you want, you may credit me in the README of your project.
HOWEVER, the NNJSON library is licensed under the MIT license. See LICENSE-NNJSON for details.






