https://github.com/marm00/cinema
🎥 Command line multiviewer
https://github.com/marm00/cinema
c chatterino cinema media mpv multiviewer repl twitch
Last synced: 25 days ago
JSON representation
🎥 Command line multiviewer
- Host: GitHub
- URL: https://github.com/marm00/cinema
- Owner: marm00
- License: mit
- Created: 2025-02-22T18:40:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-05-16T13:15:42.000Z (about 1 month ago)
- Last Synced: 2026-05-16T15:28:24.665Z (about 1 month ago)
- Topics: c, chatterino, cinema, media, mpv, multiviewer, repl, twitch
- Language: C
- Homepage:
- Size: 2.11 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-cli-apps - cinema - Multiviewer for videos and streams. (Entertainment / Video)
- fucking-awesome-cli-apps - cinema - Multiviewer for videos and streams. (Entertainment / Video)
README
# Cinema
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](#features) •
[Quick start](#quick-start) •
[Using Cinema](#using-cinema) •
[Compilation](#compilation) •
[Contributing](#contributing)
[![C][c-badge]][c]
[![Release][release-badge]][releases]
[![License][license-badge]][license]
[c-badge]: https://img.shields.io/badge/builtwith-C11-00599C?logo=C&logoColor=white&style=flat-square
[c]: https://www.c-language.org/
[release-badge]: https://img.shields.io/github/v/release/marm00/cinema?logo=github&logoColor=white&style=flat-square&color=44BB00
[releases]: https://github.com/marm00/cinema/releases
[license-badge]: https://img.shields.io/github/license/marm00/cinema?logo=MIT&logoColor=white&style=flat-square&color=DD4343
[license]: ./LICENSE

## Features
* Multiviewer for [mpv](https://github.com/mpv-player/mpv/)-supported media, including Twitch streams.
* Save and load custom layouts (including [Chatterino](https://chatterino.com/)).
* Instantly search across your files or use tags to group media.
* Macros to do everything at once, optionally on startup.
## Quick start
Follow these steps to get started:
1. Make sure you have installed [mpv](https://mpv.io/installation/), [yt-dlp](https://github.com/yt-dlp/yt-dlp/releases/latest) for streams, [Chatterino](https://chatterino.com/#downloads) for chat.
2. [Download the latest release](https://github.com/marm00/cinema/releases) for Windows or Linux on the GitHub releases page.
3. Run Cinema by double-clicking or from the command line.
4. Type `help` for a list of commands or simply `enter` to shuffle.
## Using Cinema
```sh
> layout 4 # play media on a 2x2 grid with Chatterino
> 2 twitch # stream twitch on screen 2
> 1 3 search # play media matching on screens 1 and 3
> tag # play media grouped by tag 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 # process commands defined in macro one by one
> # empty commands default to shuffle
```
See the full [list of commands](./commands.md) for more information.
Your settings are stored in [cinema.conf](./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.
```ini
[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%+0
```
You 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 `. 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 `. Fully supported by autocomplete.
```ini
[macro]
name = popular twitch streams
startup = yes
command = layout 4, tag most popular
command = 2 3 4 mute
```
If 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'](https://mpv.io/manual/stable/#options-ontop) setting in mpv.conf.
## Compilation
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](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2026) (select 'Desktop development with C++' when prompted) and [LLVM](https://github.com/llvm/llvm-project/releases/latest) (recommend 'add to PATH' option). The [RAD Debugger](https://github.com/EpicGamesExt/raddebugger) 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.
## Contributing
Pull requests and issues are always welcome. Please read [CONTRIBUTING.md](./CONTRIBUTING.md) to contribute and visit the [issue tracker](https://github.com/marm00/cinema/issues) here on GitHub to submit a bug report or request a feature.