Mirakurun is a free, lightweight Japanese digital TV tuner API server that lets you stream DVB and chardev tuner signals across your network — with a clean REST API, Docker support, and a built-in admin UI, all in one package.
Whether you're building a Chinachu DVR, a custom media server, or just want to stream live Japanese broadcast TV over your local network, Mirakurun is the middleware that makes it possible.
Mirakurun is an open-source Japanese digital TV tuner API server maintained by Chinachu. It abstracts physical TV tuner hardware — DVB and chardev types — into a clean, network-accessible HTTP API so any app on your LAN can stream or record live TV.
Mirakurun is built for Japanese home server enthusiasts, DVR builders using Chinachu, IPTV hobbyists, and Linux users who want programmatic access to their TV tuner hardware without wrestling with low-level driver code.
Managing TV tuner hardware in Japan is complex due to the variety of chardev-based devices. Mirakurun was built to provide a stable, unified API layer so software like Chinachu and EPGStation can focus on features rather than tuner management.
All features are included at no cost. No license key, no trial period.
A clean, well-documented REST API exposes all tuner operations — channel scanning, streaming, status — so any language or tool on your network can integrate easily.
Supports tuners using standard Linux DVB drivers with automatic detection and configuration when running the Docker setup command — no manual tuner.yml editing needed in most cases.
Also supports traditional chardev-based tuners common in Japan, via customizable startup scripts and manual tuner config for hardware that doesn't use DVB drivers.
The recommended and best-supported installation method. A single docker compose up gets Mirakurun running with shared library dependencies and a clean runtime environment.
A web-based admin interface at :40772/ lets you monitor tuner status, manage channels, and check live connections without touching the command line.
Interactive API documentation available at :40772/api/debug so developers can explore and test every endpoint directly from the browser.
Server, tuner, and channel settings are managed via simple YAML files, making it easy to version-control your setup or migrate to a new machine.
Supports B-CAS smart card readers via pcscd integration for watching encrypted Japanese broadcast channels with compatible hardware.
Runs as a low-overhead system service. PM2 support has been removed in favor of Docker-managed process lifecycle for a cleaner, more reliable setup.
The official Mirakurun image is available on Docker Hub, and the source code is fully open on GitHub under the Chinachu organization.
Pull the official Docker image and start your TV tuner server with a single command. No account required, no license, completely free.
Follow these steps to get Mirakurun up and running with Docker in under five minutes.
Mirakurun's recommended method is Docker. Install Docker Engine on your Linux system using the official installer script.
Download the official Mirakurun image from Docker Hub. This contains everything needed to run the tuner server.
For DVB-supported tuners, run the setup command — Mirakurun will automatically detect tuners and write the configuration files for you.
For chardev tuners or custom channel lists, edit the YAML config files manually to specify your tuner commands and channel lineup.
Bring up the container in detached mode. Mirakurun starts in the background and begins serving the API immediately.
Navigate to the admin panel in your browser to verify tuner connections, check channel status, and confirm the API is live.
Mirakurun sits between your tuner hardware and your DVR or media software, handling all the complexity invisibly.
Plug in a DVB or chardev-compatible Japanese TV tuner to your Linux machine or server.
Run the Docker image. Setup auto-detects supported DVB tuners and writes the config automatically.
Mirakurun takes control of the tuner hardware and exposes it as an HTTP API endpoint on port 40772.
Configure your channel lineup in channels.yml or let the admin UI guide you through available broadcasts.
Point Chinachu, EPGStation, or any compatible app at Mirakurun's API to enable recording and streaming.
Your entire network can now access live Japanese broadcast TV streams through the unified Mirakurun API.
Mirakurun is designed for Linux with DVB and chardev tuner hardware. Here is a full compatibility breakdown.
| Platform / Tuner Type | Support Status | Notes |
|---|---|---|
| Linux (Ubuntu, Debian) | Fully Supported | Recommended platform. Docker Compose works out of the box. |
| Raspberry Pi OS | Partial | DVB kernel modules may need to be manually built on lightweight distros. |
| DVB Driver Tuners | Fully Supported | Auto-detected by setup wizard. Easiest configuration path. |
| Chardev Tuners (recpt1 etc.) | Supported | Requires manual startup script and tuners.yml configuration. |
| B-CAS Smart Card (pcscd) | Partial | Mount pcscd.comm or disable host pcscd to avoid conflicts. See docs. |
| Chinachu DVR | Full Integration | Mirakurun was built alongside Chinachu and is its primary tuner backend. |
| EPGStation | Full Integration | EPGStation supports Mirakurun as its tuner source natively. |
| Windows / macOS | Not Supported | Mirakurun requires a Linux environment with direct hardware access. |
A balanced look at where Mirakurun excels and where it has trade-offs, so you know what to expect.
Mirakurun adapts to a variety of home server and hobbyist broadcasting setups.
The backbone of Chinachu and EPGStation setups — manage tuners once, let your DVR handle the rest.
Expose Japanese broadcast TV to any IPTV player on your LAN via the Mirakurun HTTP streaming API.
Run Mirakurun alongside Jellyfin, Plex, or other media servers to bring live TV into your media ecosystem.
Use the REST API and Swagger UI to build custom tools, integrations, or experiments on top of live TV data.
tuners.yml is correct and the binary is executable.systemctl stop pcscd && systemctl disable pcscd), then set the environment variable DISABLE_PCSCD=1, or mount /var/run/pcscd/pcscd.comm directly into the container.docker ps. Check that port 40772 is mapped in your docker-compose.yml (e.g. - "40772:40772"). If accessing from another machine, ensure your firewall allows inbound TCP on port 40772./opt/mirakurun/config/channels.yml manually with your region's channel list. Restart the container after saving changes for them to take effect.docker compose down. Remove the image with docker rmi chinachu/mirakurun. Delete config files in /opt/mirakurun/. Your tuner hardware will return to normal Linux device access immediately."Got Mirakurun running in about ten minutes with Docker. The auto-detection for my DVB tuner worked perfectly — I didn't have to touch a single YAML file."
"The Swagger UI at /api/debug is genuinely useful. I built a small custom script to pull EPG data, and having the API explorer saved me hours of reading docs."
"Solid middleware between my chardev tuner and EPGStation. The pcscd setup took some trial and error, but once configured it has been rock solid for months."
http://YOUR_IP:40772/ and the Swagger API explorer is at http://YOUR_IP:40772/api/debug. This port is configurable in server.yml if needed.Set up Mirakurun in minutes with Docker and connect your DVR software today — completely free.