Skip to content

Script that goes through a playlist to check IPTV channels, now with bit-rate included- Created originally by NewsGuyTor

License

Notifications You must be signed in to change notification settings

shrapnel576/IPTVChecker-BitRate

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPTV Stream Checker

Overview

IPTV Stream Checker is a command-line tool originally by NewsGuyTor designed to check the status of channels in an IPTV M3U8 playlist. It verifies if the streams are alive, captures screenshots, provides detailed information about video and audio streams, and identifies any potential issues like low framerates or mislabeled channels.

It also has some minor additions by Ron Mexico to include bitrate on channels utilizing ffmpeg to profile a channel over 10 seconds to capture an average variable bit-rate (VBR).

screenshot

Features

  • Check Stream Status: Verify if IPTV streams are alive or dead.
  • Split Playlist: Split into separate playlists for working and dead channels.
  • Capture Screenshots: Capture screenshots from live streams.
  • Group Filter: Option to check specific groups within the M3U8 playlist.
  • Channel Name Filter: Option to check specific channels within the M3U8 playlist based on their name.
  • Detailed Stream Info: Retrieve and display video codec, resolution, framerate, and audio bitrate.
  • Low Framerate Detection: Identifies and lists channels with framerates at 30fps or below.
  • Mislabeled Channel Detection: Detects channels with resolutions that do not match their labels (e.g., "1080p" labeled as "4K").
  • Custom User-Agent: Ron Mexico's version uses VLC as the user agent for HTTP requests.
  • BitRate Average Calculator: Added by Ron Mexico, this will now profile and add an average of the variable bit-rate of the channel (VBR) utilizing ffmpeg to profile it over 10 seconds.

Installation

Prerequisites

  • Python 3.6+
  • ffmpeg and ffprobe: Required for capturing screenshots and retrieving stream information.

Clone the Repository

git clone https://github.com/sudo-ronmexico/IPTVChecker-BitRate.git 
cd IPTVChecker-BitRate 

Install Dependencies

pip install -r requirements.txt

Usage

Basic Command

python IPTV_checker.py /path/to/your/playlist.m3u8

Options

  • -group or -g: Specify a group title to check within the playlist.
  • -channel_search or -c: Specify a search term for channel names. Based on https://docs.python.org/3/library/re.html#re.search syntax. Case Insensitive.
  • -output or -o: Output file path e.g. ~/output/results.csv.
  • -timeout or -t: Set a timeout in seconds for checking the channel status.
  • -extended or -e [seconds]: Enable an extended timeout check for channels detected as dead. If specified without a value, defaults to 10 seconds. This option allows you to retry dead channels with a longer timeout.
  • -split or -s: Create separate playlists for working and dead channels.
  • -rename or -r: Rename alive channels to include video and audio information in the playlist.
  • -skip_screenshots: Skip capturing screenshots.
  • -v: Increase output verbosity to INFO level.
  • -vv: Increase output verbosity to DEBUG level.

Examples

  1. Standard Check with Default Settings:

    python IPTV_checker.py /path/to/your/playlist.m3u8
  2. Check a Specific Group:

    python IPTV_checker.py /path/to/your/playlist.m3u8 -group "SPORT HD"
  3. Check with Extended Timeout:

    python IPTV_checker.py /path/to/your/playlist.m3u8 -extended 30
  4. Split Playlist into Working and Dead Channels:

    python IPTV_checker.py /path/to/your/playlist.m3u8 -split
  5. Rename Working Channels with Video and Audio Info:

    python IPTV_checker.py /path/to/your/playlist.m3u8 -rename
  6. Split Playlist and Rename Working Channels:

    python IPTV_checker.py /path/to/your/playlist.m3u8 -split -rename
  7. Enable Debug Mode for Detailed Output:

    python IPTV_checker.py /path/to/your/playlist.m3u8 -vv
  8. Check with Channel name search:

    python IPTV_checker.py /path/to/your/playlist.m3u8 -c "Sky Sports|TNT Sports"

Output Format

The script will output the status of each channel in the following format:

1/5 ✓ Channel Name | Video: 1080p60 H264 - Audio: 159 kbps AAC

Low Framerate Channels

After processing, the script lists any channels with framerates of 30fps or below:

Low Framerate Channels:
1/5 EGGBALL TV HD - 25fps

Mislabeled Channels

The script also detects channels with incorrect labels:

Mislabeled Channels:
3/5 Sports5 FHD - Expected 1080p, got 4K

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an issue if you have any ideas or feedback.

About

Script that goes through a playlist to check IPTV channels, now with bit-rate included- Created originally by NewsGuyTor

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%