A practical M3U finder/validator for public GitHub playlists.
channelsmode: finds playlists, extracts matching channels, validates streams, and builds a clean M3U.playlistsmode: validates full playlists by sample and saves approved playlists unchanged.
- Dual search pipeline: repository search + code search
http,ffprobe, ordualvalidation- 2-phase validation in
playlistsmode (fast + reliable) - Optional static-stream detection (to reduce false positives)
- GUI with real-time logs, progress, tables, and
ffplaypreview - Default output folder:
playlists/
- Python 3.9+
- GitHub token (
GITHUB_TOKEN) - Optional:
ffmpeg/ffprobe/ffplay(Required for video stream validation and preview)- Windows: Run
winget install Gyan.FFmpeg - Linux (Ubuntu/Debian): Run
sudo apt install ffmpeg - macOS: Run
brew install ffmpeg
- Windows: Run
Create .env in the project root:
GITHUB_TOKEN=your_github_tokenRun CLI (channels mode by default):
python m3u_finder.py --keywords "dazn,bein"Run playlist mode:
python m3u_finder.py --mode playlists --keywords "boing,clan"Run GUI:
python m3u_finder_gui.py- Channels mode:
playlists/<keywords>.m3u - Playlists mode:
playlists/<keywords>_playlists/
m3u_finder.py- CLI enginem3u_finder_gui.py- Desktop GUItelegram_bot.py- Optional Telegram bot
- Public repositories only
- GitHub Search API has rate limits and a 1000-result cap per query
- Validation is technical/experimental (streams may later go offline)
