Cinema is a customizable multiviewer for Twitch streams and other media.
Define your own layouts and startup behavior, watch many videos at once, and filter media with autocompleted commands.
Features • Quick start • Using Cinema • Compilation • Contributing
- Multiviewer for mpv-supported media, including Twitch streams.
- Save and load custom layouts (including Chatterino).
- Instantly search across your files or use tags to group media.
- Macros to do everything at once, optionally on startup.
Follow these steps to get started:
- Make sure you have installed mpv, yt-dlp for streams, Chatterino for chat.
- Download the latest release for Windows or Linux on the GitHub releases page.
- Run Cinema by double-clicking or from the command line.
- Type
helpfor a list of commands or simplyenterto shuffle.
> layout 4 # play media on a 2x2 grid with Chatterino
> 2 twitch <channel> # stream twitch <channel> on screen 2
> 1 3 search <term> # play media matching <term> on screens 1 and 3
> tag <name> # play media grouped by tag <name> on all screens
> l 3 # commands have autocomplete: layout 3
> shuffle # play the next file in tag/search/global
> autoplay 30 # play a new file every 30 seconds
> macro <name> # process commands defined in macro one by one
> # empty commands default to shuffleSee the full list of commands for more information.
Your settings are stored in cinema.conf with [media] tables for your library, [layout] for custom layouts, and [macro] for command combinations. The default config ships with various layouts and a startup macro to watch streams with chat, alongside a short tutorial.
[media]
tags = space
urls = https://twitch.tv/NASA
directories = D:\rockets, ~/planets/big
[layout]
name = my grid
screen = 50%x100%+0+0, 50%x100%+100%+0You have 2 options to create or change custom layouts. The first is to run extra to add screens, resize and move them (do the same with chat), and run store <name>. The second is to open cinema.conf, find or add the layout, and manually set the expected fields (name, screen, chat).
Macros can be defined in cinema.conf, all that's needed is a name and the commands you want to run. You can use startup = yes to make it run when launching Cinema, and/or run it via the command macro <name>. Fully supported by autocomplete.
[macro]
name = popular twitch streams
startup = yes
command = layout 4, tag most popular
command = 2 3 4 muteIf you're on a single-monitor setup and/or your console gets pushed below mpv, try setting it to be 'always on top' or modify the 'ontop' setting in mpv.conf.
To build Cinema from source on Windows, run: .\build.bat
On Linux, run: ./build.sh
On MacOS, please consider making a PR. Some functions are maybe not posix-compliant.
Windows: Make sure you have installed Build Tools for Visual Studio (select 'Desktop development with C++' when prompted) and LLVM (recommend 'add to PATH' option). The RAD Debugger is recommended for development.
It builds in debug mode with openmp enabled by default. For the release version, run build release. To disable openmp, run build nomp. To enable address sanitizer, run build asan. Specify the log level with build log_[X] where [X] is one of trace, debug (default for debug builds), info, warning (default for release builds), error, descending in frequency.
Pull requests and issues are always welcome. Please read CONTRIBUTING.md to contribute and visit the issue tracker here on GitHub to submit a bug report or request a feature.
