# xfangfang/macast

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/xfangfang-macast).**

6,870 stars · 440 forks · Python · GPL-3.0

## Links

- GitHub: https://github.com/xfangfang/Macast
- Homepage: https://xfangfang.github.io/Macast/
- awesome-repositories: https://awesome-repositories.com/repository/xfangfang-macast.md

## Topics

`dlna` `linux` `macos` `media-renderer` `mpv` `upnp` `upnp-renderer` `windows`

## Description

Macast is a cross-platform desktop application that turns a computer into a DLNA media receiver, allowing users to stream video, music, and photos from mobile devices directly to their desktop. It runs as a background service in the system tray or menubar, listening for incoming DLNA requests without requiring an open application window, and uses the mpv media player for all decoding and rendering.

The application distinguishes itself through its extensible architecture, supporting custom renderer logic and third-party player integration. Users can write small code snippets to add features like downloading media during playback, or load plugins to replace the default mpv player with alternatives such as IINA or PotPlayer. This plugin-loader design allows the core functionality to be adapted without modifying the underlying code.

Macast operates on Windows, macOS, and Linux, using a shared codebase for its graphical interface while implementing the DLNA Media Renderer specification for network discovery and control. The application monitors the local network for UPnP/DLNA discovery messages and maintains a registry of available media sources, enabling seamless playback of content pushed from any DLNA-compatible mobile device or control point.

## Tags

### Content Management & Publishing

- [DLNA Media Renderers](https://awesome-repositories.com/f/content-management-publishing/media-management/dlna-media-servers/dlna-media-renderers.md) — Turns a computer into a DLNA renderer to play video, music, and photos streamed from mobile devices or other DLNA clients.
- [Custom Rendering Integrations](https://awesome-repositories.com/f/content-management-publishing/dynamic-markup-rendering/custom-rendering-integrations.md) — Adds support for alternative media players like IINA or PotPlayer by writing small plug-ins or configuration snippets.

### Business & Productivity Software

- [Media Playback Services](https://awesome-repositories.com/f/business-productivity-software/background-services/media-playback-services.md) — Keeps a media receiver running in the system tray or menubar, ready to play incoming streams without an open application window.
- [System Tray Media Services](https://awesome-repositories.com/f/business-productivity-software/background-services/media-playback-services/system-tray-media-services.md) — Lives in the menubar, taskbar, or desktop panel to stay ready for receiving media without an open window. ([source](https://cdn.jsdelivr.net/gh/xfangfang/macast@main/README.md))

### Graphics & Multimedia

- [DLNA Media Reception](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/media-processing-workflows/stream-content-distribution/torrent-streaming/media-streaming-clients/dlna-media-reception.md) — Accepts video, music, and photo streams pushed from a DLNA client on a phone or tablet and plays them on the computer. ([source](https://cdn.jsdelivr.net/gh/xfangfang/macast@main/README.md))

### Networking & Communication

- [DLNA Media Renderers](https://awesome-repositories.com/f/networking-communication/dlna-integrations/dlna-media-renderers.md) — Implements the DLNA Media Renderer specification to bridge mobile device media streams to desktop playback.
- [Interface Discovery Listeners](https://awesome-repositories.com/f/networking-communication/interface-announcement/interface-discovery-listeners.md) — Monitors the local network for UPnP/DLNA discovery messages and maintains a registry of available media sources.
- [Extensible DLNA Renderers](https://awesome-repositories.com/f/networking-communication/dlna-integrations/extensible-dlna-renderers.md) — Extends the default mpv-based renderer with custom logic for features like downloading media during playback.

### Software Engineering & Architecture

- [System Tray Media Services](https://awesome-repositories.com/f/software-engineering-architecture/service-architectures/background-system-services/system-tray-media-services.md) — Runs persistently in the system tray or menubar, listening for incoming DLNA requests without requiring an open application window.
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Loads third-party player integrations and custom renderer logic at runtime through a plug-in interface without modifying core code.

### Web Development

- [Embedded MPV](https://awesome-repositories.com/f/web-development/client-side-media-processing/playback-engines/embedded-mpv.md) — Delegates all media decoding and rendering to the embedded mpv library for cross-platform video and audio playback.
- [DLNA Renderers](https://awesome-repositories.com/f/web-development/client-side-media-processing/playback-engines/embedded-mpv/dlna-renderers.md) — Implements a DLNA renderer that leverages the mpv media player for video, music, and photo playback.
- [Media Casting Receivers](https://awesome-repositories.com/f/web-development/media-controllers/media-casting-receivers.md) — Runs a media receiver on Windows, macOS, and Linux to accept and play content from any DLNA source.
- [Custom Rendering Logic](https://awesome-repositories.com/f/web-development/server-side-rendering/custom-rendering-logic.md) — Allows writing small code snippets to support additional players or extra features like downloading media during playback. ([source](https://cdn.jsdelivr.net/gh/xfangfang/macast@main/README.md))
- [Third-Party Media Player Integrations](https://awesome-repositories.com/f/web-development/third-party-api-integrations/third-party-media-player-integrations.md) — Loads plug-ins to replace the default mpv player with alternatives such as IINA or PotPlayer for media playback. ([source](https://cdn.jsdelivr.net/gh/xfangfang/macast@main/README.md))

### Development Tools & Productivity

- [Extensible Media Players](https://awesome-repositories.com/f/development-tools-productivity/extensible-media-players.md) — Supports custom renderer logic and third-party player plugins like IINA or PotPlayer for media playback.
