A menu bar application using mpv as DLNA Media Renderer. You can push videos, pictures or musics from your mobile phone to your computer.
This fork (pingod/Macast) additionally acts as a Chromecast and AirPlay receiver,
can run all three protocols at the same time, lets you pick which network interface is
advertised, supports installing / enabling / disabling / uninstalling plugins from the
settings page without restarting, and exposes a token-protected HTTP cast entry
(GET /api?query=cast&url=...&token=...) for Shortcuts, bookmarks and scripts.
See README_ZH.md for the full list.
Working on the code? Start with AGENTS.md — repo map, the list of hardware-only pitfalls this project has already been bitten by, and the release process. Real-device verification notes live in docs/Cast-AirPlay-Testing.md.
-
Download link: Macast release latest
-
pip install macast macast-gui # or macast-cliPlease see our wiki for more information(like aur support): #package-manager
Linux users may have problems installing using pip. Two additional libraries that I have modified need to be installed:pip install git+https://github.com/xfangfang/pystray.git pip install git+https://github.com/xfangfang/pyperclip.git
See this for Linux compatibility
-
Please refer to: Macast Development
-
For ordinary users
After opening this app, a small icon will appear in the menubar / taskbar / desktop panel, then you can push your media files from a local DLNA client to your computer. -
For advanced users
- The renderers that used to need a download — IINA, Web, Live, PotPlayer, PIFMRDS, plus the NVA protocol — now ship inside the app. Enable, disable or uninstall them on the settings page, no restart needed.
The nine plugins this fork wrote itself ship inside the app as well: an yt-dlp downloader, an external-player renderer, a floating-window renderer, automation hooks, a Chromecast bridge, RAOP (AirPlay audio) supervision, a three-platform Screen Mirror (Chromecast / DLNA television / any browser, driven from the 「电脑投屏」 tab of the settings page), a Local File Caster (play a file or playlist from this disk on the TV: byte-exact serving when the set can decode it, ffmpeg transcoding when it cannot) and an AirPlay Screen Mirror receiver (supervises uxplay, so an iPhone can mirror onto this Mac; uxplay is yours to build). The index at plugins/ is reserved for third-party and user-made plugins, and is empty right now. Read that directory as source, not as an install feed: this repository is private (a standing decision, 2026-09-21), while jsDelivr and raw cannot serve a private repo and Macast downloads plugins without any credentials — so the cards render fine and "Install" fails, which looks like a network problem but isn't. Install manually instead: paste a.pyURL you can actually reach into "Install from URL", or drop the file into~/Library/Application Support/Macast/renderer/(protocol plugins go inprotocol/). Both take effect without a restart.python3 scripts/check_index_reachability.pyreportingINDEX_PRIVATEon this repo is the expected answer, not something to fix. - You can modify the shortcut keys or configuration of the default mpv player by yourself, see: #how-to-set-personal-configurations-to-mpv
- The renderers that used to need a download — IINA, Web, Live, PotPlayer, PIFMRDS, plus the NVA protocol — now ship inside the app. Enable, disable or uninstall them on the settings page, no restart needed.
-
For developer
You can use a few lines of code to add support for other players like IINA and PotPlayer or even add additional features, like downloading media files while playing videos.
Tutorials and examples are shown in: Macast/wiki/Custom-Renderer.
Bundled plugins live in macast/plugins/; for anything else, open a pull request or an issue on pingod/Macast.
If you have any questions about this application, please check: Macast/wiki/FAQ.
If this does not solve your problem, please open a new issue to notify us, we are willing to help you solve the problem.
You can copy the video link after the video is casted:

Or select a third-party player plug-in

UPnP™ ContentDirectory:1 service
