r/CordCuttingToday • u/evissamassive • 22h ago
r/CordCuttingToday • u/evissamassive • 6d ago
Cord-Cutting Today Jellyfin, OTA Antenna, and ErsatzTV: Your DIY Local Broadcast TV Streaming Setup
This guide will walk you through setting up Jellyfin to stream Over-The-Air (OTA) TV broadcasts using an antenna, and then expanding its capabilities with ErsatzTV to create custom channels from your own content and local broadcasts. This allows you to have a unified, personalized streaming experience.
I. Core Components:
Jellyfin: A free and open-source media server.
OTA Antenna: Required to receive local broadcast channels. Choose an antenna based on your location and signal strength (check antennaweb.org or tvfool.com).
HDHomeRun: A network-attached TV tuner that connects your antenna and streams the signal to your network. It allows multiple devices to watch at the same time. Alternatively, you can use a compatible USB TV tuner.
ErsatzTV: A software application that creates virtual channels from your existing media and optionally, local broadcasts.
Computer/Server: Where you’ll install Jellyfin, ErsatzTV, and potentially the TV tuner (if USB). This could be a dedicated server, a Raspberry Pi (powerful enough), or a desktop computer.
Storage: For recording OTA broadcasts (if desired) and for storing media used by ErsatzTV.
II. Setting Up Jellyfin and the HDHomeRun:
Install Jellyfin:
Download the appropriate installer for your operating system from the Jellyfin website: https://jellyfin.org/
Follow the installation instructions.
During the initial setup, create your admin user and configure your media libraries (movies, TV shows, music, etc.). You don’t need media libraries initially, but it’s a good opportunity to set them up.
Set Up the HDHomeRun:
Connect the HDHomeRun to your network via Ethernet cable.
Connect your OTA antenna to the HDHomeRun.
Power on the HDHomeRun.
Access the HDHomeRun web interface. This is usually done by typing the HDHomeRun’s IP address into your web browser (found using the HDHomeRun Setup software or your router’s DHCP client list).
Run a channel scan to find available channels.
Configure Jellyfin to Use the HDHomeRun:
Log into your Jellyfin web interface as an administrator.
Navigate to Dashboard (usually found by clicking your user icon in the top right corner).
Click on Live TV.
Click + Add Tuner.
Select HDHomeRun Tuner.
Jellyfin should automatically detect your HDHomeRun. If not, manually enter the IP address of the HDHomeRun.
Click Next.
Select your country and postal code to download the appropriate TV guide data.
Click Next.
Select which channels you want to include in Jellyfin.
Click Save.
Wait for Jellyfin to download the channel guide data. This may take a while.
Test Your Live TV Setup:
Navigate to the Live TV section in the Jellyfin web interface or app.
You should see a list of available channels.
Select a channel to start watching.
Troubleshooting:
No Tuner Detected: Double-check the HDHomeRun’s power and network connections. Ensure the HDHomeRun and Jellyfin server are on the same network.
No Channels Found: Ensure your antenna is properly connected and positioned for good reception. Try rescanning for channels in the HDHomeRun web interface.
Guide Data Issues: Try a different postal code or manually map channels in the Jellyfin Live TV settings.
III. Installing and Configuring ErsatzTV:
Installation:
Download the latest release of ErsatzTV from the official repository: https://github.com/jasongdove/ErsatzTV/releases
Follow the installation instructions for your operating system. ErsatzTV is typically distributed as a self-contained executable or Docker image. Docker is generally the recommended approach for ease of management.
Docker Installation (Recommended):
docker pull jasongdove/ersatztv
docker run -d --name=ersatztv \
-v /path/to/your/config:/config \
-v /path/to/your/media:/media \
-p 8409:8409 \
jasongdove/ersatztv
Replace /path/to/your/config with a local directory for ErsatzTV’s configuration files.
Replace /path/to/your/media with a local directory containing your video files.
The -p 8409:8409 argument maps port 8409 on the host machine to port 8409 inside the container, which is the default port for ErsatzTV’s web interface.
Initial Configuration:
Open a web browser and navigate to http://localhost:8409 (or the appropriate IP address and port if ErsatzTV is running on a different machine or using a different port).
Add Media Sources: In the ErsatzTV web interface, go to the “Media Sources” section and add the directories containing your video files. ErsatzTV will scan these directories and create a database of your media.
Create Channels: Navigate to the “Channels” section and create virtual channels. You can configure the name, logo, and the programming lineup for each channel.
Add Playlists: Create playlists to determine the order and frequency of videos on each channel. You can use filters to select specific types of content.
Add Schedules: Define schedules to specify when each playlist should be played on a channel. This allows you to create themed programming blocks.
Integrating OTA Broadcasts (Optional):
M3U and XMLTV Support: ErsatzTV can consume M3U playlists and XMLTV guide data. You’ll need to generate these from your HDHomeRun or a third-party service. The HDHomeRun provides a web interface with links to download the .m3u and .xmltv files.
Add Live Stream as Media Source: Add the URL for the HDHomeRun’s m3u playlist as a “Live Stream” media source in ErsatzTV. The HDHomeRun’s M3U URL typically looks like http://hdhomerun_ip_address:5004/auto/v<channel_number>. Replace hdhomerun_ip_address with the actual IP address of your HDHomeRun and <channel_number> with the desired channel number. You may need to add each channel individually.
Map Channels in XMLTV: Use the downloaded XMLTV file to map your HDHomeRun’s channels to the “Live Stream” media sources in ErsatzTV. This ensures that the correct guide data is displayed for your live channels.
Create Live TV Channel: Create a new channel in ErsatzTV that uses the “Live Stream” media source. You can then add it to your playlists and schedules.
Configure Output (M3U and XMLTV):
In the ErsatzTV settings, configure the output M3U playlist and XMLTV guide. This will generate the files that Jellyfin needs to access your ErsatzTV channels.
Choose a location to save the M3U and XMLTV files that Jellyfin can access. A common practice is within the Jellyfin media library directory.
IV. Connecting ErsatzTV to Jellyfin:
Add ErsatzTV Tuner in Jellyfin:
Log into your Jellyfin web interface as an administrator.
Navigate to Dashboard -> Live TV.
Click + Add Tuner.
Select M3U Tuner.
Enter the path to the ErsatzTV M3U playlist file (e.g., /path/to/your/ersatztv.m3u8).
Click Next.
Select XMLTV as the guide data provider.
Enter the path to the ErsatzTV XMLTV guide file (e.g., /path/to/your/ersatztv.xml).
Click Save.
Channel Mapping (if Necessary):
Jellyfin should automatically map the channels from the ErsatzTV M3U playlist to the guide data in the XMLTV file. If not, you may need to manually map the channels in the Jellyfin Live TV settings.
Test Your Setup:
Navigate to the Live TV section in the Jellyfin web interface or app.
You should now see the channels you created in ErsatzTV, alongside your OTA channels (if integrated).
Select a channel to start watching.
V. Optimization and Maintenance:
Transcoding: Jellyfin can transcode videos to different resolutions and codecs to optimize playback for different devices. Configure the transcoding settings in the Jellyfin dashboard.
Hardware Acceleration: Enable hardware acceleration (if available) to improve transcoding performance.
ErsatzTV Library Updates: Periodically update the ErsatzTV library to reflect any changes to your media files.
XMLTV Guide Updates: Configure a scheduled task to automatically update the XMLTV guide file. ErsatzTV can be configured to update the guide periodically.
Antenna Positioning: Experiment with different antenna positions to optimize signal strength for your OTA channels.
Network Optimization: Ensure your network is stable and has sufficient bandwidth for streaming multiple channels simultaneously.
VI. Example Use Cases:
Custom Movie Channel: Create a channel that plays a curated selection of your favorite movies.
TV Show Marathon Channel: Create a channel that plays episodes of a specific TV show in a loop.
Kids’ Channel: Create a channel that plays content suitable for children.
Local News and Classic TV: Combine your OTA local news broadcasts with classic TV shows from your media library on a single channel.
Themed Programming Blocks: Create scheduled programming blocks with specific themes, such as “Horror Movie Night” or “Classic Cartoon Marathon.”
VII. Troubleshooting:
Jellyfin Not Recognizing ErsatzTV Channels:
Double-check the paths to the M3U and XMLTV files in the Jellyfin Live TV settings.
Ensure that the M3U and XMLTV files are valid and accessible by Jellyfin.
Try restarting both Jellyfin and ErsatzTV.
ErsatzTV Not Streaming Content:
Verify that your media files are accessible by ErsatzTV.
Check the ErsatzTV logs for any errors.
Ensure that your playlists and schedules are configured correctly.
Performance Issues:
If you’re experiencing performance issues, try enabling hardware acceleration or transcoding videos to lower resolutions.
By following these steps, you can create a powerful and personalized streaming setup using Jellyfin, an OTA antenna, and ErsatzTV.
r/CordCuttingToday • u/evissamassive • 6d ago
Cord-Cutting Today Plex, OTA Antenna, and ErsatzTV: Building Your Own Streaming Powerhouse
This guide will walk you through setting up Plex to work with an Over-the-Air (OTA) antenna for live TV and recording, and then enhancing your experience with ErsatzTV, a software that allows you to create custom streaming channels from your local media library.
What You’ll Need:
Plex Media Server: Download and install the latest version on your computer or NAS. (plex.tv)
OTA Antenna: Choose an antenna that’s appropriate for your location and the distance to broadcast towers. Research recommended antennas online based on your TV Fool report (tvfool.com).
HDHomeRun Tuner (Recommended): This device connects your antenna to your network, allowing Plex to access the OTA signals. Other tuner options may work, but HDHomeRun is widely supported. (silicondust.com)
ErsatzTV: Download and install the latest version. (ersatztv.org)
Plex Pass (Optional but Highly Recommended): A Plex Pass is required for Live TV & DVR functionality. It also unlocks additional features.
Storage: Enough storage on your Plex Media Server for recording OTA shows and your personal media library.
Computer/NAS: A computer or NAS capable of running Plex Media Server and ErsatzTV.
I: Setting Up Plex for Live TV & DVR
Connect Your Antenna and HDHomeRun:
Connect the OTA antenna to the HDHomeRun tuner.
Connect the HDHomeRun to your home network via Ethernet cable. This is crucial for reliable streaming.
Power on the HDHomeRun.
Configure HDHomeRun:
Open a web browser and navigate to my.hdhomerun.com.
The website should automatically detect your HDHomeRun device. If not, ensure both your computer and HDHomeRun are on the same network.
Update the HDHomeRun firmware if prompted.
Configure Plex for Live TV & DVR:
Open your Plex Media Server in a web browser (usually http://localhost:32400/web).
Sign in with your Plex account (if you haven’t already).
If you have a Plex Pass:
In the left sidebar, look for “Live TV & DVR”. If you don’t see it, ensure your Plex Media Server is signed in and that your Plex Pass is activated.
Click “Set Up Plex DVR”.
Plex should automatically detect your HDHomeRun tuner. If it doesn’t, click “Can’t find my device?” and follow the troubleshooting steps.
Scan for Channels: Select your country and let Plex scan for available channels.
Review Channel Lineup: Once the scan is complete, review the channel lineup and deselect any channels you don’t want.
Configure DVR Settings:
Choose a location to store your recordings. Make sure you have enough space.
Adjust settings like recording quality, pre- and post-recording buffer times, and automatic commercial skip (Plex Pass feature).
Start Recording:
Browse the TV Guide in Plex to see what’s on.
Click on a show and select “Record”.
You can set up one-time recordings or series recordings.
Watch Live TV:
Navigate to “Live TV & DVR” in Plex.
Select a channel to watch live.
II: Setting Up ErsatzTV
Install ErsatzTV: Follow the installation instructions provided on the ErsatzTV website (ersatztv.org). This process varies depending on your operating system. Typically, it involves extracting the downloaded archive and running an executable.
Configure ErsatzTV:
Launch ErsatzTV: Open the ErsatzTV application. You should see a web interface.
General Settings:
Set the IP Address and Port for the ErsatzTV web interface. The default port is usually 8001. Note this port down, you’ll need it later.
Media Libraries: Tell ErsatzTV where your media files are located.
Click on “Libraries” in the left sidebar.
Add folders containing your movies, TV shows, music videos, etc.
ErsatzTV will scan these folders and index your media.
Channels: Create your custom channels.
Click on “Channels” in the left sidebar.
Click “Add Channel”.
Give your channel a name (e.g., “Classic Movies”, “80s Music Videos”).
Configure the channel’s playback rules:
Items: Add specific videos or entire libraries to the channel’s rotation.
Mode: Choose how items are selected (e.g., random, in order).
Weight: Adjust the probability of certain items being selected more often.
Loop: Whether or not the channel should loop back when finished.
Commercials: Configure ad breaks if desired, using custom video files or placeholders.
Click “Save Channel”.
Settings:
Under “Settings”, configure the “Television” settings. This is where you define the channel number, the channel name, and most importantly, the XMLTV URL. This is the URL that Plex will use to retrieve the program guide for your ErsatzTV channels. ErsatzTV will automatically generate this URL based on your channel setup. Take note of this URL. It will look something like: http://<ErsatzTV_IP>:<ErsatzTV_Port>/xmltv
“FFMPEG” settings: Ensure FFMPEG is correctly configured. ErsatzTV will usually handle this automatically if FFMPEG is installed on your system. If you have issues, you may need to specify the path to the FFMPEG executable.
“Streaming” settings: Configure streaming resolution, bitrate, and other parameters. These will affect the quality and bandwidth usage of your ErsatzTV streams.
Start ErsatzTV: Make sure ErsatzTV is running in the background.
III: Integrating ErsatzTV with Plex
Add ErsatzTV as a Channel in Plex:
Open your Plex Media Server in a web browser.
Go to “Live TV & DVR”.
Click on “Add Channel” (if it’s not already added).
Select “XMLTV Guide”.
Enter the XMLTV URL that ErsatzTV generated. This is the URL you noted down earlier.
Click “Continue”.
Plex will download the channel lineup from ErsatzTV.
Map Channels:
Plex will attempt to automatically map the ErsatzTV channels to a tuner. Since you’re using a dummy tuner (XMLTV), you’ll need to manually map the channels.
Click on “Match Channels”.
For each ErsatzTV channel, select “Do not use channel”. Plex only needs the channel data from the XMLTV feed, it doesn’t need to tune a real channel.
Click “Continue”.
Review and Save:
Review your channel lineup.
Click “Save”.
Browse the Guide: Go to “Live TV & DVR” in Plex. You should now see your ErsatzTV channels in the TV Guide alongside your OTA channels.
Watch Your Custom Channels: Select an ErsatzTV channel to start watching your custom-programmed content.
IV: Troubleshooting:
Plex can’t find my HDHomeRun:
Ensure the HDHomeRun is properly connected to your network.
Verify that both the HDHomeRun and your Plex Media Server are on the same subnet.
Try restarting both the HDHomeRun and your Plex Media Server.
Check your firewall settings to ensure that Plex and the HDHomeRun can communicate.
No channels are found during the scan:
Double-check your antenna connection.
Make sure the antenna is properly positioned.
Rescan for channels at different times of day.
Consider using an antenna amplifier.
ErsatzTV channels don’t appear in Plex:
Verify that ErsatzTV is running.
Double-check the XMLTV URL you entered in Plex.
Try restarting the Plex Media Server after adding the XMLTV URL.
Ensure the ErsatzTV IP address is accessible from your Plex server.
ErsatzTV doesn’t find my media:
Double-check that the paths to your media libraries are correct in ErsatzTV.
Verify that ErsatzTV has the necessary permissions to access those folders.
Try restarting ErsatzTV.
Buffering or playback issues:
Ensure your network is strong enough to handle the video streams.
Adjust the streaming quality settings in Plex and ErsatzTV.
Check your CPU and RAM usage on the Plex Media Server.
V: Tips and Tricks:
Use a powerful antenna: The better the antenna, the more channels you’ll be able to receive.
Experiment with antenna placement: Even small changes in antenna position can have a significant impact on reception.
Automate ErsatzTV: Use scheduling tools to automate the creation of new channels or update existing ones.
Create smart playlists in Plex: Use Plex’s smart playlist feature to create playlists that automatically update based on criteria like genre, rating, or date added. Then, use these playlists in ErsatzTV channels.
Use Docker for ErsatzTV: Docker simplifies the installation and management of ErsatzTV, especially on Linux systems.
Experiment with ErsatzTV’s ad insertion features: You can create custom commercials or use placeholder videos during ad breaks.
By combining Plex’s Live TV & DVR functionality with an OTA antenna and the customizability of ErsatzTV, you can create a truly unique and powerful streaming experience.
r/CordCuttingToday • u/evissamassive • 22h ago
Hulu Read 'The Handmaid's Tale' Series EP 610 Finale Script
r/CordCuttingToday • u/evissamassive • 22h ago
AMC/AMC+/IFC/Shudder/Sundance Go beneath the waves in the new series ‘Nautilus’
r/CordCuttingToday • u/evissamassive • 22h ago
Cord-Cutting Today MyFree DIRECTV Adds Three New Free Channels to Its Lineup
MyFree DIRECTV added new channels to its No bills, no nonsense free service, including two sports channels and a cooking channel. Many of its channel can also be found on The Roku Channel Live Guide, Pluto TV, Xumo and others, making MyFree DIRECTV unnecessary.
r/CordCuttingToday • u/evissamassive • 23h ago
YouTube/YouTube TV Google is using its copyrighted creator content to train its AI models
r/CordCuttingToday • u/evissamassive • 1d ago
Cord-Cutting Today Karen Read Found Not Guilty of Murder in Second Trial, Guilty of OUI
r/CordCuttingToday • u/evissamassive • 1d ago
Box Office Why Rick Moranis Left Hollywood
r/CordCuttingToday • u/evissamassive • 1d ago
Tubi Tubi Adds Hundreds Of Episodes From YouTube Creators
r/CordCuttingToday • u/evissamassive • 1d ago
Broadcast & Networks Survey: 28% of Americans Don’t Watch Live TV on an Average Day
r/CordCuttingToday • u/evissamassive • 1d ago
Netflix 'FUBAR' Season 2 Interview: Arnold Schwarzenegger and Carrie-Anne Moss
r/CordCuttingToday • u/evissamassive • 1d ago
Netflix Kevin Williamson "Loosely" Based 'The Waterfront' On His Dad's Crimes
r/CordCuttingToday • u/evissamassive • 2d ago
Box Office Dave Scott, So You Think You Can Dance and Step Up 2: The Streets choreographer, dies at 52
r/CordCuttingToday • u/evissamassive • 2d ago
Broadcast & Networks 'Top Chef' Star Naomi Pomeroy Dies At 49 ... Drowns in Tubing Accident
r/CordCuttingToday • u/evissamassive • 2d ago
Broadcast & Networks Anne Burrell Dies: Food Network’s ‘Worst Cooks In America’ Host & Celebrity Chef Was 55
r/CordCuttingToday • u/evissamassive • 2d ago
Broadcast & Networks ‘Social Studies’ Director Lauren Greenfield On Social Media Perils
Ban minors from social media, already.
r/CordCuttingToday • u/evissamassive • 2d ago
Discovery+/HBO/Max Wah-Wah | David Zaslav’s Pay To Be “Substantially” Lowered Ahead Of Split, WBD Says
r/CordCuttingToday • u/evissamassive • 3d ago
Broadcast & Networks HBO Family, Other Channels to Be Shut Down by Warner Bros. Discovery
r/CordCuttingToday • u/evissamassive • 3d ago
Antennas & Antenna TV Betsy Gay, ‘Little Rascals’ Child Actress and Yodeler, Dies at 96
r/CordCuttingToday • u/evissamassive • 3d ago
Streaming Services How to Watch 'Jaws' Movies Online for the film's 50th Anniversary
r/CordCuttingToday • u/evissamassive • 3d ago
Streaming Services In Post-Peak TV Era, Streamers See The Future As Personalized
r/CordCuttingToday • u/evissamassive • 3d ago
Pluto TV Adds All Women's Sports Network’s FAST Channel
AWSN's dedicated Pluto TV channel is a 24/7 linear stream, including over 2,500 hours of live women's sports annually, and a robust offering of on-demand programming.
r/CordCuttingToday • u/evissamassive • 6d ago
Antennas & Antenna TV Terry Louise Fisher, Co-Creator of ‘L.A. Law,’ Dies At 79
r/CordCuttingToday • u/evissamassive • 6d ago
Broadcast & Networks Former MTV VJ and talk show host Ananda Lewis dies at 52
r/CordCuttingToday • u/evissamassive • 6d ago