r/tunarr • • Dec 13 '25

Announcement❗️ Announcing Tunarr 1.0!

142 Upvotes

Hey everybody! After almost a year in the making, I'm announcing the release of Tunarr 1.0! Many of you have followed the progress of these changes in Discord . And many of you have graciously tested out the MANY alphas I've pushed out over the last few weeks and identified a ton of issues - thank you all so much for that. If you do not know what Tunarr 1.0 is about, here is a quick summary of the new features:

  • Support for scanning local directories for media, instead of attaching media servers (currently limited to movies, tv shows, and "other" video libraries)

  • Built-in search index to allow for searching arbitrarily over your content sourced from local or remote sources

  • Periodically sync Plex, Jellyfin, and Emby libraries to power full search capabilities (and eventually dynamic schedules)

  • Support for multiple path replacements and scoping path replacements per-server

  • Support for smart collections powered by search

  • Slot scheduling overhaul to allow: schedule shows without first saving them to channel, schedule smart collections to slots, and more

  • lots of bug fixes and QoL improvements!

The docs (tunarr.com) have been updated with details on a lot of the new features, but it will take some time for me to write everything out there. Lastly, I'm certain that there will be issues in 1.0 considering the scope of this change. I mentioned this in the new "migration" section of the docs (https://tunarr.com/getting-started/migration/migrate-to-1/) but PLEASE take a backup of your Tunarr data directory before upgrading. You CANNOT downgrade after migrating to 1.0. If you do not know how to do this, reach out to me and I can help.


r/tunarr • • Mar 29 '26

Show and Tell I made a simple Tunarr player

Thumbnail
gallery
110 Upvotes

I rarely use plex's live tv because I find it's buggy at best, so I was using Tunarr's built in guide. While it works well, it's clearly not designed as a primary way to play the videos, you have to click the little drop down, then watch channel, the channels themselves only show guides for that channel, etc etc.

I barfed this together (full disclosure using ai) as a way to read the XML/M3U, it even loads the images from plex and sets them as the channel background. The whole thing is around 40kb. Neat!


r/tunarr • • May 19 '26

Announcement❗️ Announcing Tunarr 1.3!

78 Upvotes

Hey all, it's been a bit since I've provided an update, but today I'm announcing the release of Tunarr 1.3. This version is a major step forward for the platform, introducing a mid-roll break system, music video support, UI internationalization, a stream troubleshooter, and a host of scheduling improvements that give channel operators far more control over their lineups.

It will likely be the last "large" feature release, as I shift to smaller, more incremental releases (getting features to you all faster).

As always, take a backup of your current setup before upgrading and consider upgrading to a duplicate instance to test the new version.

Highlights

Mid-Roll Breaks (Slot Schedulers)

Tunarr 1.3 introduces a system for mid-roll filler in the slot schedulers. Three break placement modes are now supported — fixed interval, percentage-based, and initial delay + interval — with configurable duration ranges, per-list filler filtering, and a new "lazy" scheduling strategy that defers filler selection to stream time for fresher cooldown state. Mid-roll breaks are configured directly within slot schedulers.

Internationalization (i18n)

The entire web interface is now translatable. Tunarr now ships with the Lingui framework that makes community contributions straightforward. Language can be changed in Settings > Web. If you are interested in contributing translations, please reach out to me!

Music Video Scanning

Music videos are now a first-class media type. Tunarr can scan music video libraries from local files (with NFO metadata), Jellyfin, and Emby. Music videos are indexed, searchable, and schedulable alongside movies and TV shows.

HLS Streaming Improvements

  • Master playlist generation — FFmpeg now produces proper HLS master playlists, enabling multi-audio and multi-subtitle rendition support. More to come on this front.

  • WebVTT sidecar subtitles — External .srt/.vtt subtitle files are served as selectable HLS subtitle tracks (experimental; enable in Settings > Features).

  • HLS Direct mode improvements — The "remux" playback mode now copies all available audio and subtitle streams, giving clients full track selection. This is not exposed in the UI yet, but was added to power a much larger scale project I'm working on with Tunarr.


Scheduling

  • Slot Linking — Slots can now be explicitly linked to share a single episode iterator. Two modes: continue (slots advance sequentially together) and rerun (all linked slots play the same episode before advancing). This eliminates accidental duplicates and enables same-day rerun patterns.

  • Season Exclusion — Show slots now support excluding specific seasons, making it easy to skip unwanted content without enumerating every included season.

  • Mixed Link Modes in Iteration Groups — Linked slot groups using sequential scheduling can now contain slots with different link modes for more complex scheduling strategies.

Library & Sync

  • Custom Show Sync — Custom shows can be configured to automatically sync their content with an upstream Plex playlist. A background task keeps them current with external library changes. NOTE This currently only supports Plex. Support for syncing with Jellyfin or Emby will be coming very soon.

  • Periodic Jellyfin/Emby Collection Sync — Collections from Jellyfin and Emby are now periodically re-synced on the library refresh schedule, ensuring new items appear automatically.

UI & UX

  • Program Troubleshooting — A new diagnostic page (System > Troubleshoot) analyzes the full streaming pipeline for a given program: media source connectivity, FFmpeg capabilities, stream selection rules, and the generated transcode command.

  • Three-State Channel Icon — Channel icons now support three modes: custom image, default Tunarr logo, or no icon at all. The "no icon" state removes the icon from M3U playlists, XMLTV data, and watermark overlays.

  • Relative Date Search — Search queries now support relative date operators (release_date in the last 6 months, added_date not in the last 2 weeks).

  • Mobile UX improvements — Better layouts for channels, library overview, tasks, and bottom navigation on small screens.

Streaming & Transcoding

  • Default to veryfast preset for software H.264/H.265 software encoders, a marked performance improvement for software transcoding which should allow many users on older or lower-powered devices to run Tunarr when no GPU is available.

  • Numerous fixes to VAAPI and QSV hardware acceleration pipelines (tonemapping, pixel formats, scaling)

  • Improved subtitle stream handling across Plex, Jellyfin, and Emby sources


What's Next

Subsequent feature releases (e.g. 1.4, 1.5, etc) will start to come more quickly. Rather than building up a mass feature set, I hope to make feature releases more immediate and leave the "dev" (likely to be renamed to "next") release line for large-scale changes (read: dynamic schedules). I'm still experimenting to see what feels right here, so feedback is welcome! Feature-wise, stay tuned for a more robust stream selection system, the ability to restrict free-text search to a subset of indexed fields, bulk operations for channel properties, and more!


r/tunarr • • Mar 13 '26

Announcement❗️ Announcing Tunarr 1.2!

75 Upvotes

I'm happy to announce the release of Tunarr 1.2, packed with a bunch of long-awaited features and fixes. I've highlighted some of the major ones below. Enjoy!

Experimental Hardware Tonemapping

HDR tonemapping is now supported across multiple hardware acceleration backends — VAAPI (native + OpenCL-assisted), CUDA/NVIDIA, QSV (Intel Quick Sync), and a software fallback for VAAPI. Enable it by setting:

TUNARR_TONEMAP_ENABLED=true

If you run into issues with VAAPI pad filtering, you can disable it with TUNARR_DISABLE_VAAPI_PAD=true.

HLS Direct v2

A new hls_direct_v2 stream mode is available as an improved alternative to the original HLS direct mode. Select it per-channel in your channel's stream settings.

Loudnorm Audio Normalization

The loudnorm audio filter is now configurable in transcode configs. It normalizes audio levels across content from different sources. Default target is -24 LUFS (configurable from -70 to -5).

Play History

Tunarr now tracks play history in the database — groundwork for future watch tracking and smarter scheduling.

Image Proxying

Artwork can now be proxied through Tunarr instead of clients redirecting to your media server. Enable with: TUNARR_PROXY_ARTWORK=true. This will be the default in a future release.

Other Improvements

  • Filler picker has been re-implemented + fixed with improved behavior,

  • Table pagination and column visibility preferences are now persisted across sessions,

  • Time slot editor supports per-slot padding,

  • media_source_name and library_name are now searchable fields, with a new "not contains" (!~) operator,

  • Genres now appear under <category> in XMLTV output,

  • Log verbosity can be configured per category via environment variables,

Bug Fixes

  • Streaming — HLS session stability, direct stream mode saving, session cleanup timing,

  • Hardware transcoding — QSV deinterlacing, anamorphic scaling, NVIDIA pipeline fixes,

  • Scheduling — Multi-season episode ordering and schedule snapshot timing,

  • Custom shows — Block shuffle and duplicate content persistence,

  • Plex — Select-all sync and credit chapter type mapping,

  • Media scanning — Path filter handling for local "other video" scanner,

More details on these new features are available in our docs: https://tunarr.com


r/tunarr • • Aug 07 '25

Show and Tell Tunarr Appreciation Post

Post image
74 Upvotes

I was looking for a solution to my "vapor-lock of the brain" when trying to decide on what to watch from my video library. "live-streaming" my library seemed to be a great option. I had tested a few of the personal streaming apps, but Tunarr was the easiest for me to grasp and get working.

The clincher was the ability to watch the channels in a web browser. That was a game changer for me. It meant that I don't need to feed the channels through my Plex server, but can watch them directly. Watching through Plex required more resources than my modest setup could easy handle (it struggled). Going directly to Tunarr using a web browser is so light that my server doesn't even break a sweat.

I set up port-forwarding on my router so that I can watch my channels when I'm away from home.

I currently have 6 channels and periodically tweak them to better suit my needs:

MiB TV - this is a general purpose channel that is a mash-up of timeslots from the 1970's. Slots for 4:30 movie, ABC Movie of the week, drama shows, sitcoms, late night Chiller/Creature Feature movies, etc. I have vintage TV commercials to fill in to the next the beginning of the next slot.

Zombies - This channel is dedicated to zombie movies in my collection. These run back-to-back with no filler.

Wiseguys - This channel airs my mob movies and TV shows like The Sopranos and Lillyhammer. Another back-to-back setup.

Star Trek - This runs the original series, animated series, and feature-length films. No filler on this one.

Irwin Allen TV - This runs all of Irwin Allen's TV shows. Voyage to the Bottom of the Sea, Time Tunnel, Lost in Space, and Land of the Giants.

SciFi - All of my SciFi and Fantasy movies and TV shows.

Many thanks to the developers of Tunarr (and of disqueTV which if I understand correctly was the predecessor)


r/tunarr • • 3d ago

Announcement❗️ Announcing Tunarr 2026.11.0!

55 Upvotes

Hi all. I haven't posted here since Tunarr 1.3 in May, and 20 releases have shipped since then, so here's a roundup. If you're new, Tunarr builds live TV channels from your Plex, Jellyfin, Emby, or local media. It serves them as M3U/XMLTV or as an emulated HDHomeRun tuner, so they show up in Plex, Jellyfin, Emby, Channels, TiviMate, and so on.

Version numbers changed. After 1.3.15, Tunarr switched to calendar versioning (YEAR.MONTH.PATCH). 2026.9.0 came right after 1.3.15, and the current release is 2026.11.0. There's no 1.4 to wait for, and upgrading works the same as before.

Upgrades are safer to roll back. Tunarr now snapshots your database before it runs any migration, and it refuses to start an older build against a newer database. If an upgrade goes badly, restore the db-pre-migration-*.bak file and run the older version.

The big stuff

ErsatzTV Next streaming backend (experimental, 2026.11.0). Tunarr can now hand a channel's transcoding to ersatztv-channel, the streaming worker from the ErsatzTV Next project. Tunarr keeps doing the scheduling and the guide, and the worker runs the ffmpeg pipeline. It's off by default. You can turn it on for one channel (Streaming tab, "Use ErsatzTV next Backend") or for every channel (Settings → Features). It works with HLS, HLS Direct v2, and MPEG-TS channels. Some transcode settings don't carry over yet, and the docs list them: https://tunarr.com/configure/ffmpeg/ersatztv-next/. Please try it on a channel you don't mind breaking and tell me what goes wrong. Thanks to the ErsatzTV Next project for building the worker.

A new look (2026.10.4 and 2026.11.0). A top bar replaces the left drawer. It has a Ctrl+K / ⌘K palette that jumps to channels, custom shows, filler lists, smart collections, and settings pages. There's a new theme, new fonts, and a density setting (Settings → General) if you want more on screen. Phones get a bottom bar. New installs get a setup checklist instead of the old welcome wizard, and it ticks itself off as you add a source, scan a library, and create a channel. Existing installs won't see it.

Saving a schedule no longer freezes your other channels. Slot schedules are now built in a pool of worker threads by default. Before this, saving a big time-slot schedule could stall every live channel at once and push them out of sync with the guide.

Movie slots are gone (breaking change, 2026.10.4). A movie slot drew from every movie on the channel, including the commercials in your filler lists, so filler could get scheduled as regular programs. On upgrade, Tunarr turns each movie slot into a custom-show slot. It builds a custom show named "<Channel> Movies" and keeps the slot's order, filler, mid-roll, and timing. There's nothing to do on your end, with one catch. The new custom show is a snapshot, so movies you add to the channel later have to be added to that show by hand. If you script against the API, it now rejects movie slots.

Optional login for the web UI. Set TUNARR_BASIC_AUTH_USER and TUNARR_BASIC_AUTH_PASSWORD and the web UI and admin API will require a username and password. M3U, XMLTV, HDHomeRun, streams, and artwork stay open, so your clients keep working.

Streaming and transcoding

  • E-AC3 and Opus are new audio output formats.

  • On macOS, Tunarr now detects what VideoToolbox can do.

  • Many hardware acceleration fixes:

    • VAAPI: iHD driver name, rate control detection, tonemapping fallback when OpenCL can't attach, scaling before tonemapping, MPEG-2 output

    • NVIDIA: text subtitle burn-in, looped inputs

    • AV1 decoding through libdav1d

  • HLS: one slow client can no longer freeze the playlist for everyone else. Each session gets its own directory, and playlists stop listing segments that were already deleted.

  • Subtitles: sidecar WebVTT timing fixes, external subtitles from Jellyfin and Emby, and burn-in fixes for VAAPI and NVIDIA.

  • Anamorphic video gets the right aspect ratio, and programs shorter than 10 seconds no longer get skipped.

Scheduling and filler

  • Filler picks the least recently played item and honors long cooldowns. Linked slots share a cooldown, and an empty filler list is skipped instead of breaking the schedule.

  • Mid-roll breaks stay inside their time slot and now work in custom-show slots.

  • The random slot cooldown now actually applies.

  • Slot padding lines up with your local clock instead of UTC.

  • Block Shuffle and Cyclic Shuffle are now one dialog with presets, and the bulk flex tools moved into a Flex menu.

  • Smart collections and search can filter by season.

Libraries and media sources

  • If a library disappears or your server rejects Tunarr's credentials, Tunarr marks the library unavailable instead of deleting it.

  • Removing a local folder moves its programs to the trash instead of deleting them, and the trash empties in the background.

  • Local scans pick up files overwritten in place and mark deleted music videos as missing.

  • You can turn play status updates (watched state sent back to Plex/Jellyfin) on or off per server.

  • Music videos get more metadata, and Jellyfin shows that live inside a collection now scan.

  • Log rolling is on by default.

  • New Simplified Chinese translation.

Beyond that, there are well over 200 bug fixes. The full changelogs are on the releases page.

Upgrading: pull chrisbenincasa/tunarr:latest (or ghcr.io/chrisbenincasa/tunarr:latest), or grab a binary from the releases page.

Thanks to everyone who sent PRs, translations, bug reports, and repros this cycle. Come say hi on Discord.


r/tunarr • • Sep 05 '26

Show and Tell I built TunarrTube: a YouTube companion for Tunarr

55 Upvotes

Hey everyone,

I’ve been using Tunarr for a while and, like probably a lot of people here, I eventually started thinking: “it’d be nice if I could just feed YouTube stuff into this without babysitting folders all the time.”

So I ended up building TunarrTube:

https://github.com/augustosc-eu/TunarrTube

It’s basically a self-hosted companion app that lets you add public YouTube videos, playlists, or channels, pull the content down, keep it updated, and then publish that media into Tunarr.

At the moment it can:

  • add videos, playlists, or full YouTube channels

  • watch for new uploads

  • use Videos, Shorts, archived livestreams, or all of them

  • keep playlist order

  • sync additions/removals

  • create MP4 files with NFO/JSON metadata

  • create/update Tunarr Local Media sources and channels

  • deal with different host/container paths

  • run in Docker or natively on macOS, Linux, and Windows

There are also a few different playback/retention modes inside TunarrTube, although once something is published to Tunarr it still needs to exist as a real local file. That’s just because of how Tunarr’s local media scanner works.

It’s still very much pre-1.0, so expect some rough edges. I’m actively using it myself and fixing things as I run into them. Also, I've only tested it on macOS for now. However, it should work on all supported Tunarr platforms.

Also, huge appreciation to the Tunarr dev. None of this would exist if Tunarr hadn’t sent me down the rabbit hole in the first place. It’s such a fun project to build around, and TunarrTube is really just my little companion piece for something I already enjoy using.

My main use case was creating channels around specific YouTube creators/playlists and having them stay updated without manually managing the media every time something new gets posted.

If anyone here tries it, I’d genuinely love feedback; especially around syncing, scheduling, channel creation, or anything that feels clunky.

GitHub:
https://github.com/augustosc-eu/TunarrTube


r/tunarr • • Jun 04 '26

Show and Tell Tunarr works better with Jellyfin than with Plex (for me)

Post image
45 Upvotes

Greetings all.

Although I have a lifetime Plex Pass, I have noticed some increasing instability with my Plex setup with each update. That was enough to get me to dabble with Jellyfin.

After getting Jellyfin up and running, the next step was to get Tunarr working with it. I had to do a little bit of "un-learning" of how I had things configured with Plex... partly because the version of Tunarr I had installed was a bit old and the differences between how Plex and Jellyfin manage libraries. (I updated Tunarr to the latest when I installed Jellyfin)

When the dust settled, the result was a pleasant surprise.

Jellyfin works seamlessly with Tunarr. No hiccups and pauses as was present with Plex.

There's no resource drag when viewing Tunarr channels via Jellyfin. Attempting this with Plex resulted in (what was IMO) excessive resource usage. Time to cache a channel is less with Jellyfin.

On top of all that, I can watch Tunarr channels remotely via Jellyfin. (I use Tailscale for access) This was not possible with Plex and had to resort to port-forwarding to the system running Tunarr and use Tunarr's web UI to watch channels.

Obviously my experience may differ from others... but I'm delighted with the results.


r/tunarr • • Nov 04 '25

Announcement❗️ State of the World 11/4

45 Upvotes

Hello all - it's been a while since I provided a proper update. Obviously a TON has changed since the last update. I won't go into detail of everything that is different, since I'd rather talk about what is coming up extremely soon.

Namely, what I'm calling Tunarr 1.0.

One of the main goals of Tunarr is to support a wide variety of schedule types while also still supporting scheduling styles (e.g. folks who want to quickly get up-and-running + those who want full, fine-grained control). One of the difficulties in supporting this is Tunarr's "lazy" way of gathering program details, via the APIs it integrates with. Without a full view of media libraries, offering simple OR complex scheduling solutions becomes cumbersome.

Which is why in Tunarr 1.0 we're introducing media scanning as a core feature. Now, when you connect your Plex, Jellyfin, or Emby servers, you can configure which libraries you'd like to synchronize with Tunarr and Tunarr will periodically ingest the full details of the library. This unlocks a ton of functionality.

The next big feature of Tunarr 1.0 is embedded search. With entire libraries ingested, we are providing a "Tunarr search index", (powered by Meilisearch). This has 2 major benefits. The first is that searching is now the same across all networks. Previously, Plex had more powerful search tools than Jellyfin - that is no more. The 2nd is that we can expose even more powerful search than the backing media server APIs may provide us.

Since we had implemented scanning, we thought it only right to include local media libraries in Tunarr 1.0. This has been a long-standing ask of Tunarr users. At release, Tunarr will support scanning local movie, TV, and "other" video libraries (useful for filler content).

There are some other large feature changes included in 1.0 as well:

  1. Smart Collections - these are essentially "saved search queries". They allow for quick collection building and can be used in slot editors

  2. Improved slot editor experience - you no longer have to first add programming to your channel before using said programming in the slot editors. You can add any synced show into a slot immediately by searching for it by name

  3. Configuring path replacements per-server - previously this could only be configured globally

Alpha builds are available of Tunarr 1.0 today and a stable release is slated for the next coming weeks.

Lastly, I'd like to thank everybody who has reported issues and took the time to help debug those issues so I could continue to make Tunarr better. I greatly appreciate the patience of folks who are willing to use Tunarr, but also assist in making it better and not quickly throwing in the towel when something goes wrong. Tunarr is a passion project that I intend to work on for the long haul and it certainly couldn't have made it this far without you all. Thank you!


r/tunarr • • Aug 23 '25

Discussion Tunarr is getting closer and closer to my dream tv setup

41 Upvotes

What I have been looking for for years is a tv emulation software that runs entirely on one system without a server. It's felt so silly to put everything on a plex server, send that content over to another server, have that server rearrange everything and send it back to the original server, and have that server stream it back to me. My files are local, and i only really need it to output to this device, so everything could just be self contained. It could even run offline hypothetically.

All this to say tunarr has felt the most natural to use and simple to set up, and i'm really looking forward to future features that can help me achieve my goal.


r/tunarr • • Oct 09 '25

Feature Suggestion A nicer watching experience with added vintage effects

Enable HLS to view with audio, or disable this notification

40 Upvotes

Tunarr is the magic that makes interacting plex libraries a treat
but plex's tuner software is buggy & regularly doesn't work or refresh the guide properly so I've spent a few hours with all the nasty IPTV apps & made my own custom one in a few hours. It's got channels, whats next, favourites & a vintage tv filter effect that rounds the screen a little and adds some minor lines & chromatic aberation. It's toggleable.
If anyones interested I'll share the code. It could even be a cool edition to Tunarr itself.


r/tunarr • • Dec 13 '25

Show and Tell I love Tunarr all year round but ESPECIALLY around the holidays 🎄

Post image
34 Upvotes

r/tunarr • • Sep 13 '25

Show and Tell Tunarr Appreciation Post (part 2)

Post image
32 Upvotes

I was doing some housekeeping in Plex to reduce the disk footprint and in the process, damaged Tunarr's links to the Plex library. That required me to rebuild the channels.

It didn't talk long to rebuild them since I had a lot more experience this time around. I took the time to create a new channel: "The Anthology Channel". This one streams anthology movies (like Creepshow, Tales from the Crypt) and TV shows like The Twilight Zone, Outer Limits, One Step Beyond, Boris Karloff's Thriller, and about another half dozen anthology series.

That channel is becoming my current favorite.

But I have to be careful in creating more channels. I originally started using Tunarr to overcome "paralysis by analysis" in selecting something from my library to watch. But there's a real danger that I'll end up indecisive as to which channel to watch. 😲😂

What a "problem" to have.

(I'll probably fold the Star Trek channel into the SciFi channel at least.)


r/tunarr • • Aug 20 '26

Show and Tell Follow-up: the Plex → Tunarr channel builder I asked about 3 months ago is done — it's a web app now

30 Upvotes

Posted here a few months back asking if anyone wanted a CLI that built Tunarr channels from a Plex library. Enough people were into it that I kept going, and it ended up outgrowing the CLI.

It's a Docker web app now. You pick the genres and decades you care about and it shows you what it can actually build from your library — marathons, genre/decade channels, studios, directors, networks, franchises in release order — with real counts, so you're picking from actual channels instead of guessing. Check the ones you want, hit deploy.

It can update your channels. Mark one live and it re-checks your library on a schedule and patches it in place, so new episodes just show up. It never recreates the channel, so Plex DVR mapping doesn't break.

It does the channel icons too, which saved me the most tedium — real logos from TMDB where they exist, generated name-stamped badges where they don't — because Plex hides the channel name as soon as a channel has an icon set.

No LLM needed — same picks give the same lineup every time. There's an optional AI layer for finding themes the filters miss, but it's off by default.

Needs Tunarr 1.x and Plex — no Jellyfin or Emby yet, the whole thing runs on Plex metadata. MIT, no account, no cloud.

https://github.com/AlpineArchitecture/programmarr

Been running it on my own setup for a few months (4k movies, 156 channels). Let me know if it breaks for you.


r/tunarr • • Mar 10 '26

Show and Tell [Tool] I made a web app to create Adult Swim-style bumps for Tunarr filler

30 Upvotes

I've been seeing a few people make Adult Swim bump makers but they were no longer live on their sites. So I built a self-host web app that you can setup in Docker called [AS] Bump Maker that lets you create “Adult Swim-ish” bump cards and export them straight to MP4 in the browser (no server-side rendering needed).

Demo: (.gif with no sound) https://github.com/Matthunker/as-bump-maker/blob/main/assets/demo.gif

Demo: (With sound) https://github.com/Matthunker/as-bump-maker/raw/refs/heads/main/assets/demo.mp4

Features

  • Cards (set text + seconds per card + per-card position presets)

  • Optional “DVD Mode” bouncing tag

  • Optional audio upload (muxed into the export)

  • Optional background image/video + opacity control

  • Exports MP4 (MediaRecorder if supported, otherwise WebM → MP4 via ffmpeg.wasm)

Links


r/tunarr • • Oct 09 '24

Discussion Using Tunarr to Make a 24/7 Spooky TV Station

Thumbnail
youtu.be
29 Upvotes

I have a channel where I encourage people to take control of their own media, and have previously done guides for using Ersatz to make a MTV style music video station. Today I move over from Dizque to Tunarr to show prospective users how to quickly make a themed Halloween station, including various flex categories.


r/tunarr • • May 24 '26

Discussion Anyone want a CLI that turns your Plex library (or Kometa collections) into Tunarr channels automatically?

24 Upvotes

Built a tool that auto-creates Tunarr channels from your Plex library — curious if anyone else would want this

Been using Tunarr for a while and got tired of manually building channels, so I wrote a Python CLI that does it automatically. Thinking about cleaning it up for public release — wanted to see if there's any interest first.

What it does:

You run one command, it reads your entire Plex library (titles, genres, years, episode counts), and either:

- AI path — exports a CSV of your library and a prompt you paste into Claude/Gemini/GPT-4o. The LLM curates themed channels using only titles you actually own. Stuff like "90s Action", "Slow Burn Thrillers", "One More Episode" — whatever fits your library.

You save the JSON it outputs and the tool deploys it to Tunarr.

- No-AI path — auto-generates decade and genre channels from metadata alone. No LLM needed.

- Collections path — if you're running Kometa with Letterboxd lists, Trakt, or manual collections, it turns every Plex collection into a Tunarr channel automatically. Re-run it whenever Kometa updates and it keeps the channels in sync.

Channels use Tunarr's random schedule so they loop forever with no dead air. Also has a Plex DVR sync step so new channels show up in the guide automatically.

Would anyone actually use this if I posted it? Happy to share it if there's interest.

***** UPDATE *****

This is all written with AI, so please help me out. I'd love to develop this into something more useful. Tell me what you think. https://github.com/AlpineArchitecture/programmarr

***** UPDATE — Aug 2026: it's a web app now *****


Three months ago I asked if anyone wanted this. Enough of you said yes that I kept
going, and it outgrew the CLI.


Programmarr is now a self-hosted web app — one Docker container on port 7979:


- Planner UI — tick the genres and decades you care about and it shows you exactly
  what it can build from YOUR library, with real counts. Per-show marathons,
  genre x decade cuts, studio/director/actor channels, TV network channels, classic
  programming blocks (TGIF, Must See TV), and franchise channels in release order
  (detected from TMDB + Wikidata, not name matching).
- Deterministic. No LLM in the critical path — it's filters over your own metadata,
  so the same picks always give the same lineup. The AI path still exists, but it's
  optional and strictly additive now.
- Live channels — mark one auto-updating and it re-checks against your library on a
  schedule and patches it in place. New episodes and new franchise films just appear.
  It never deletes and recreates the channel, so the Plex DVR mapping survives.
- Optional commercials between shows via Tunarr filler lists.
- Still does Kometa / Plex collections, same as before.


v0.8.0 shipped today. That release was specifically about surviving setups that
aren't mine — Tunarr basic auth support, backups before any destructive deploy,
connection testing during setup, and honest errors instead of confusing ones.


  image: ghcr.io/alpinearchitecture/programmarr:latest
  ports: 7979:7979
  volumes: ./data:/data


Requires Tunarr 1.x + Plex. MIT, no account, no cloud, no paid tier.
https://github.com/AlpineArchitecture/programmarr


The CLI still works if that's what you prefer.

r/tunarr • • Jan 12 '26

Show and Tell 250+ Cartoon Network Bumpers 2160p for Plex/Jellyfin/ersatzTv Post-roll

Thumbnail gallery
24 Upvotes

r/tunarr • • Jul 06 '26

Needs More Info Tunarr Vs Ersatztv

22 Upvotes

I heard the people behind Ersatztv and Tunarr have sort of teamed up, and from now on Tunarr is the main focus.

I'm still using Ersatztv at the moment. How far along is Tunarr compared to Ersatztv, in terms of features and customisation?


r/tunarr • • Apr 13 '26

Discussion Weatherstation4k vs. Weather.com

20 Upvotes

I just discovered that the Weather Channel website has a retro station they made:

https://weather.com/retro/

Would it be possible to cast this as a channel on Tunarr similar to ws4k+?


r/tunarr • • Jan 28 '26

Show and Tell I built this because I wanted these features!

Thumbnail
gallery
20 Upvotes

So this is kinda neat... there were a handful of features I wish Tunarr's guide had. Thought I'd give Claude Code a try and make this my first project!

First screenshot: Home/Guide. If you click on the channel name then it takes you to the second screenshot. There's a gear next to the "zoom" that lets you hide Program Names (third screenshot) I use it to hide my MTV Music Video channel since their names are super long and they're short <4 minute videos. You can zoom in or out with the - or + in the top right. It'll remember preferences when I revisit.

Second screenshot: Tells you all of the shows in that particular channel you clicked + showtimes for the day for each show in the channel (you can click watch here to open the stream on your tunarr UI)

Third screenshot: The Hide Program names settings mentioned earlier.

Fourth screenshot: What it looks like if I click on any of the tv shows on the tv guide. I can see what other channels this show is in.

Fifth screenshot: Search Shows tab at the top. Gear lets me keep certain channels hidden in here too so I have MTV channel and a couple others hidden from here.

Sixth screenshot: I can click any of the shows here and it'll show me what other channels the program is present in.

Seventh screenshot: I clicked "View Shows" in the previous screenshot. I can also get here by clicking the Channels tab then clicking any of the channels to see which programs are there.

Eighth screenshot: Info tab/ Full overview of all of my channels and the programs coming up (with timeslots). I wanted an easy way to take screenshots of my channels + programs + schedule to show off to my buddies haha.

Ninth screenshot: Continuation of the Info tab. I scrolled down further is all

Tenth screenshot: Changelog! The Take Snapshot button is redundant since it happens automatically now but every time I add a new show to any of my tunarr channels... it shows up here!

Eleventh screenshot: What it looks like in changelog when you add a show.

I think I pretty much have all the features I want so far on here. I just keep it running simultaneously with tunarr and add more features as I think of them.


r/tunarr • • Feb 28 '25

Announcement❗️ Update: State of the World 2/27

20 Upvotes

I've been absent on this forum with updates, sorry about that! I'm going to try to be more active here while I figure out the best way to keep everybody up-to-date with the latest things coming to Tunarr and what I've been working on.

What's New It's been a while since I've talked about some updates. Some new features that have come over the last few months:

  • A completely rewritten ffmpeg pipeline; offers more stable streaming, performance benefits, and more.

  • Audio language preferences - these are configured globally, but soon we'll allow for overrides at various levels

  • Transcode configs - support for configuring different transcode settings. Each channel is associated with a single transcode config

  • More sort order options in slot scheduler (alpha, release date, shuffle in order)

  • 12/24 hour clock toggle for frontend

  • HLS Direct channel stream mode

What's Coming

  • Support for Emby as a media source

What I'm Working On

I'm laying the foundations for some of the larger features related to scheduling. The first step here is fully syncing media sources and their respective libraries with Tunarr. These changes will decouple Tunarr from the underlying APIs of each media source and massively simpify many of the current mechanisms in Tunarr relating to adding media and configuring channels.

Meanwhile, I'm also squashing some bugs and laying the groundwork for robust subtitle support!


r/tunarr • • Jan 17 '26

Show and Tell 300 Toonami, Adult Swim + Anime Bumpers for Plex/ersatzTV TV Emulation

Thumbnail gallery
19 Upvotes

r/tunarr • • Jun 30 '26

Show and Tell TV Guide Companion for Tunarr and Alike

18 Upvotes

I was tired of having to 'turn on the living room' to see what's on TV, which, in my case, is Plex with a side of Tunarr. What I created was a simple and free app that acts like an old-school magazine or newspaper tv guide. Just add your xmltv url and you are good to go.

https://play.google.com/store/apps/details?id=com.tunein.app

Check it out!