YouTube client for OpenHarmony / HarmonyOS
Unofficial client. Not affiliated with YouTube or Google.
YourPipe is a YouTube client for OpenHarmony / HarmonyOS. It extracts streams in-app and plays them through a native MPV pipeline (vendored libmpv + FFmpeg), not a WebView player.
| Package | com.talon.yourpipe |
| Version | 0.7.0 |
| Target SDK | 26.0.0 (min 6.1.0(23)) · HarmonyOS · stage model |
| Devices | phone · tablet · 2in1 · tv · car |
Guest VOD uses direct-link DASH through the visionos endpoint into MPV by default; signed-in playback defaults to the SABR dual-track local proxy (mweb). Playback is MPV only: the libmpv_napi module is a NAPI bridge over a vendored libmpv.so, originally derived from libmdk-napi (historical mdk names exist only in old commits).
- Home feed, search, channels, and playlists
- Subscriptions and favorites
- Native MPV playback (quality / codec options, PiP where supported)
- Background audio via continuous task + AV session
- Offline downloads into the local library
- Cookie (WebView) login and device QR (OAuth) login
- HTTP proxy settings
- Multi-provider translation (gtx / Google Cloud / MyMemory / Lingva / LibreTranslate / DeepL / LLM / custom)
- Live chat (read-only) on live videos
- Light / dark / system appearance and multiple UI locales
- Local library: downloads, imported files, watch history, playlists
Main tabs: Home · Subscriptions · Favorites · Local. Search and Options open as separate pages/sheets.
entry → mediaservice → youtube_core
│ └────→ @yourpipe/libmpv-napi (MPV bridge)
└──────────→ youtube_core
| Module | Role |
|---|---|
entry |
UI, pages, preferences, auth, PoToken WebView |
mediaservice |
Playback engine, AV session, local media proxy, offline download |
youtube_core |
YouTube extraction, cipher, HLS/SABR session, auth storage |
libmpv_napi |
NAPI bridge to MPV (+ vendored FFmpeg / libmpv on arm64) |
arm64-v8a is the product playback ABI. x86_64 builds use a player stub (UI only).
- DevEco Studio with HarmonyOS SDK 6.1.0(23)
- Device or emulator (phone / tablet / 2in1 / tv / car)
- Real video playback needs an arm64-v8a device
-
Clone the repository:
git clone https://github.com/Ember5843/YourPipe.git cd YourPipe -
Open the project root in DevEco Studio and sync ohpm dependencies.
build-profile.json5is git-ignored (machine-local) — copy it from the committed template first:cp build-profile.template.json5 build-profile.json5. -
Configure signing under File → Project Structure → Signing Configs (writes into your local, git-ignored
build-profile.json5). Never commit keystores, passwords, profiles, or certificates. -
Optional: if you use AppGallery Connect, put the AGC services config under
entry/src/main/resources/rawfile/(that file is git-ignored). -
Select a device and Run from DevEco.
- Cookie login (WebView) and device QR (OAuth) are supported for personalization and restricted content.
- Device OAuth constants may mirror publicly documented community client values; treat them as community POC material, not YourPipe-owned credentials.
Behavior and naming draw on these open projects (not alternate runtimes inside this app):
| Project | Role |
|---|---|
| NewPipe | Client UX reference |
| NewPipe Extractor | Extraction / stream models |
| PipePipe | Player-client / extractor compatibility |
| libmdk-napi | Historical origin of the NAPI bridge structure and naming |
| MPV | Playback core (libmpv) |
GPL-3.0. See LICENSE.
Portions and ideas reference NewPipe, NewPipe Extractor, PipePipe, MPV, and related work. Respect their licenses when redistributing.