MyGo 云音乐
Go와 MyGo로 만든 서드파티 네이버 클라우드 뮤직 데스크톱 클라이언트
PlayBridge app: 오픈소스 앱, 폰에서 검색하고 TV·데스크톱에서 시청, 로컬 네트워크·계정 불필요
Open-source PlayBridge app: browse on your phone, watch on Android TV, Apple TV, Desktop, or a DLNA TV. Local network, no account.
미디어Kotlin · SwiftGitHub @playbridgeapp온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Open-source casting suite (alpha) — browse on your phone, play on the big screen: Android TV, Apple TV, or desktop (macOS/Windows/Linux). Local-network, GPLv3.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
PlayBridge is an open-source casting suite: browse on your phone, play on the big screen. Find your content on your phone — in the built-in browser or your media library — and bridge it to Android TV / Fire TV, Apple TV, a desktop receiver (macOS, Windows, Linux), or any DLNA-capable TV with nothing installed on it. Local-network only, no account, no cloud.
PlayBridge is in alpha. It's under active early development — expect bugs, incomplete features, and breaking changes between releases. Feedback and issue reports are very welcome.README 전문 보기 ↗PlayBridge is an open-source casting suite: browse on your phone, play on the big screen. Find your content on your phone — in the built-in browser or your media library — and bridge it to Android TV / Fire TV, Apple TV, a desktop receiver (macOS, Windows, Linux), or any DLNA-capable TV with nothing installed on it. Local-network only, no account, no cloud.
[!WARNING] PlayBridge is in alpha. It's under active early development — expect bugs, incomplete features, and breaking changes between releases. Feedback and issue reports are very welcome.
The PlayBridge senders and extensions are available on official store registries:
phone APK from GitHub Releases.9557748 to install the TV Player directly, ortv-player APK from GitHub Releases and sideload it.playbridge-desktop-windows-*.zip, -linux-*.tar.gz, -macos-*.zip). Linux needs libmpv2; the macOS build is unsigned (right-click → Open on first launch).curl -fsSL https://playbridge.app/install.sh | sh; on Windows PowerShell, run irm https://playbridge.app/install.ps1 | iex. Manual archives remain on GitHub Releases.PlayBridge provides multiple ways to discover receivers and cast media — using your phone, browser extension, Desktop app, or command-line CLI.
Ensure your sender device (Phone, Desktop app, Browser Extension, or Rust CLI) and target receiver (Android TV, Apple TV, Desktop app, or DLNA Smart TV) are connected to the same local Wi-Fi network.
wss://). Paired devices auto-reconnect on future sessions.playbridge): Use a full-screen terminal dashboard to discover receivers, cast local files or URLs, host a browser receiver, or receive casts through mpv:
playbridge # Open the dashboard
playbridge discover # Open dashboard discovery
playbridge send video.mp4 # Open Cast with media preselected
playbridge browser video.mp4 # Host and pair a browser receiver
playbridge receiver # Start the mpv receiver in the dashboard
Browse & cast from your phone
| Console hub | Library & discovery | Library detail screen | Built-in browser |
|---|---|---|---|
Your phone is the remote
| Context-aware remote | Touchpad remote | D-Pad remote | Keyboard remote |
|---|---|---|---|
Android TV receiver
| Pairing screen | Player & details | Settings |
|---|---|---|
| Favorites | History |
|---|---|
Apple TV receiver
| Pairing screen | Player & details | Settings |
|---|---|---|
| Favorites | History |
|---|---|
Desktop receiver
| Pairing screen | Player & details | Settings |
|---|---|---|
| Favorites | History |
|---|---|
Browser extension
| Connected | Streams detected | Subtitles detected | Open URL options |
|---|---|---|---|
wss:// with certificate pinning.| Feature | Android phone | iPhone / iPad | Desktop app | Browser extension |
|---|---|---|---|---|
| Supported platforms | Android | iOS, iPadOS | macOS, Windows, Linux | Firefox and Chromium browsers |
| Receiver targets | PlayBridge receivers and DLNA / UPnP renderers | PlayBridge receivers | PlayBridge receivers | Receiver selected in Desktop, or Desktop itself |
| Secure receiver pairing | ✓ | ✓ | ✓ | Handled by Desktop |
| Built-in browser and stream detection | GeckoView; direct files, HLS, DASH, and MSE / blob players | WKWebView; direct files, HLS, and DASH | Via the browser extension | Detects direct files, HLS, DASH, and MSE-backed players in browser tabs |
| Stream quality selection | ✓ | ✓ | Via the browser extension | HLS quality selection |
| Subtitle detection and attachment | ✓ | ✓ | — | Detection only; attachment is not relayed to Desktop yet |
| Local file casting | ✓ | ✓ | ✓, including drag-and-drop and multi-file playlists | — |
| Library, discovery, and add-ons | ✓ | — | — | — |
| Debrid integrations | ✓ in supported builds | — | — | — |
| IPTV and custom collections | ✓ | ✓ | — | — |
| Downloads | ✓ | — | — | — |
| Ad blocking | uBlock Origin | WebKit content blocker with EasyList and custom rules | — | — |
| Queue support | ✓, including episode auto-advance | ✓ | Multi-file playlists | Single detected item |
| Remote controls | Full remote: transport, seek, volume, D-pad, touchpad, keyboard, and track selection | Transport, seek, D-pad, touchpad, and track selection | Transport, seek, and playlist navigation | Use Desktop or a phone remote |
| Play on the sender device | ✓, native phone player |
Browser detection depends on what each browser exposes. Protected streams may require captured request headers, and some MSE / blob players cannot be replayed outside their original page.
| Feature | Android TV / Fire TV | Apple TV | Desktop | DLNA / UPnP TV |
|---|---|---|---|---|
| Supported platforms | Android TV, Fire TV | tvOS | macOS, Windows, Linux | Compatible smart TVs and renderers |
| Receiver installation | PlayBridge TV app | PlayBridge TV app (TestFlight) | PlayBridge Desktop app | None |
| Playback engines | Media3 / ExoPlayer + MPV | AVPlayer + MPV | MPV | TV's built-in player |
| Direct streams, HLS, DASH, and local files | ✓ | ✓ | ✓ | Renderer-dependent; the phone proxies local files and header-protected HLS |
| Verified, encrypted pairing | ✓ | ✓ | ✓ | N/A — standard local-network DLNA |
| Phone playback controls | Full controls, including seek, volume, and track selection | Transport, seek, and track selection | Full controls, including seek, system volume, and track selection | Play, pause, stop, and seek; no volume or track selection |
| Episode queue and auto-advance | ✓ | ✓ | ✓ | Phone-managed; the phone must remain active |
| Resume and watch-progress tracking | ✓ | ✓ | ✓ | ✓, when the renderer reports usable playback status |
| External subtitles and audio/subtitle selection | ✓ | ✓ | ✓ | Not exposed through PlayBridge |
| Receiver history and favorites | ✓ | ✓ | ✓ | No receiver UI; progress remains on the phone |
| Web playback on the receiver | Optional GeckoView plugin or system WebView | — | Browser-extension bridge | — |
| In-app updates | ✓ | — | ✓ | N/A |
Media and codec support ultimately depends on the selected playback engine, operating system, and device hardware. DLNA behavior varies the most between TV manufacturers and models.
PlayBridge is a monorepo; each component has its own documentation:
mobile/) — The sender: browser, library, video detection, remote. Changelogtv/) — Receivers for Android TV (player + browser APKs) and Apple TV. Changelog · tvOS changelogdesktop/) — A Flutter desktop receiver that plays casts via libmpv. Changelogextension/) — A Firefox and Chromium extension that casts media from desktop browser tabs.cast/core/, cast/receiver/, cast/ffi/) — Portable discovery/casting core, secure reusable receiver runtime, and UniFFI/C/JNI/Dart bindings.stream-proxy-rust/) — High-performance Rust streaming proxy and MediaFlow AES-256 encryption.cli/) — Command-line client binary (playbridge) for Rust Core.Comprehensive project documentation is available:
Sites can cast directly via window.playbridge.cast() or open a page-lifetime,
website-managed lazy queue via window.playbridge.linkCast(). Linked sessions can replace,
append, and jump within the TV playlist and answer bounded needitems events; playback controls
remain in the PlayBridge Remote. The user approves each exact website origin and can revoke that
permission under Settings → Browser → Website casting permissions.
Websites that intentionally reference LAN media servers declare up to 16 exact
privateNetworkOrigins (scheme, host, and port; no wildcards or subnets). PlayBridge asks for
separate website-to-media-origin grants, keeps webpage headers on each resource's exact origin,
and revalidates manifest children and redirects on native receivers. Private-origin grants can be
reset without removing the site's basic casting permission. The unified play() API also supports
phone-local playback and selected external destinations, subject to their capabilities; see
Bridged Apps.
A live demo that exercises direct payloads, linked lazy queueing, and browser detection is hosted at
playbridge.app/cast-demo — open it in the PlayBridge
phone browser. Source: web/site/static/cast-demo/.
^3.6) and libmpvpnpmcargo; required by current workspace Cargo.lock)# Phone app
(cd mobile/android && ./gradlew :app:assembleFossDebug)
# TV player & browser
(cd tv/android && ./gradlew :player:app:assembleFossDebug :geckoview-plugin:app:assembleDebug)
# Desktop
(cd desktop && flutter pub get && flutter run) # -d macos | windows | linux
# Browser extension
(cd extension && pnpm install && pnpm build)
# Rust core & stream proxy
cargo build --workspace
cargo test --workspace
Contributions are welcome — see CONTRIBUTING.md for setup and guidelines.
Building a casting suite from scratch across phones, TVs, desktops, and browsers is a large engineering effort. PlayBridge uses AI-assisted tools to help deliver and maintain that cross-platform scope while keeping the project open source and free.
AI is a development aid, not a substitute for engineering judgment. All contributions—AI-assisted or otherwise—must meet the same standards:
PlayBridge was inspired by — and learned from — these excellent open-source projects. Huge thanks to their authors and communities:
All trademarks and copyrights belong to their respective owners.
PlayBridge's own code is licensed under the Mozilla Public License 2.0 (MPL-2.0). See LICENSE. Third-party components keep their own licences; see THIRD_PARTY_LICENSES.md for notices and distribution obligations.
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
The Android TV player APK bundles GPL-3.0 components (mpv-android and nextlib), so that distributed APK as a whole is subject to GPL-3.0 terms. This does not change the MPL-2.0 licence of PlayBridge's own source. The TV browser bundles uBlock Origin (GPL-3.0) as a separate component with its own notices and source obligations. Other native media builds also require release-specific licence verification.
The PlayBridge name and logos identify the official apps; see TRADEMARKS.md for the fork and redistribution policy. Contributors must read and sign CLA.md; see CONTRIBUTING.md. docs/licensing.md explains why PlayBridge uses MPL-2.0 and a CLA.
For questions, feedback, or support, please reach out to us at [email protected].
If you'd like to support development, you can buy us a coffee on Ko-fi (kofi).
For security-related issues, please refer to our Security Policy.
| ✓, native phone player |
| ✓ |
| Plays through Desktop when no receiver is selected |
| Companion app required | No | No | No | PlayBridge Desktop |
shared/) — Shared Kotlin module currently targeting Android only (configured via Kotlin Multiplatform plugin), shared by the phone and TV builds; player engines and protocol bindings.protocol/) — AsyncAPI WSS contract, detailed connection flow, and retained protobuf bindings.