π Real-time football results and league tables from BBC Sport with interactive terminal interface.
π FOOTBALL RESULTS SCRAPER π
============================================================
Select a league to view:
[1] Premier League [2] La Liga [3] Bundesliga
[4] Serie A [5] Ligue 1 [6] Primeira Liga
[7] UEFA Champions League [8] MLS [9] Allsvenskan
[0] All Leagues [q] Quit
β
Live Match Results - Real-time scores, goal scorers, and match status
β
League Tables - Current standings with real BBC Sport statistics
β
Stream Search - Find working stream links for live/upcoming matches across 18+ streaming sites
β
9 Major Leagues - Premier League, La Liga, Bundesliga, Serie A, Ligue 1, Primeira Liga, UEFA Champions League, MLS, Allsvenskan
β
Command-Line Flags - Direct league access with --pl, --cl, --mls, --all, etc.
β
Form Indicators - W/D/L boxes showing recent team performance
β
HT/Live Markers - Half-time and live match status indicators
β
Auto-Update - Refreshes every 30 seconds
β
Colorized Display - Win/loss colors and league table formatting
- Python
3.14.3 - pip
26.0.1
# Option 1: Use runner script (recommended)
chmod +x footyres.sh
./footyres.sh # Interactive menu
./footyres.sh --cl # Direct Champions League access
./footyres.sh --help # Show all CLI options
# Option 2: Manual installation
python3.14 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip==26.0.1
python -m pip install -r requirements.txt
python football_scraper.py# Option 1: Use batch script (recommended)
footyres.bat # Interactive menu
footyres.bat --cl # Direct Champions League access
footyres.bat --help # Show all CLI options
# Option 2: Manual installation
python -m venv venv
venv\Scripts\activate
python -m pip install --upgrade pip==26.0.1
python -m pip install -r requirements.txt
python football_scraper.pyYou can now jump directly into any league using command-line flags:
python football_scraper.py --cl # UEFA Champions League
python football_scraper.py --pl # Premier League
python football_scraper.py --la # La Liga
python football_scraper.py --bu # Bundesliga
python football_scraper.py --sa # Serie A
python football_scraper.py --l1 # Ligue 1
python football_scraper.py --pr # Primeira Liga
python football_scraper.py --mls # MLS (Major League Soccer)
python football_scraper.py --as # Allsvenskan (Swedish League)
python football_scraper.py --all # All Leaguespython football_scraper.py --cl -y # Champions League yesterday
python football_scraper.py --pl -t # Premier League tomorrowpython football_scraper.py --champions # Same as --cl
python football_scraper.py --premier # Same as --pl
python football_scraper.py --laliga # Same as --la
python football_scraper.py --bundesliga # Same as --bu
python football_scraper.py --seriea # Same as --sa
python football_scraper.py --ligue1 # Same as --l1
python football_scraper.py --primeira # Same as --pr
python football_scraper.py --majorleague # Same as --mls
python football_scraper.py --allsvenskan # Same as --asAfter viewing league results with flags, you can:
- Press
mto go to the main menu - Press
Enterto exit - Use the normal navigation options (
rrefresh,ttable, etc.)
Linux / macOS:
# Using runner script (recommended)
./footyres.sh --cl # Champions League today
./footyres.sh --pl -y # Premier League yesterday
./footyres.sh --mls # MLS standings and matches
./footyres.sh --as # Allsvenskan today
./footyres.sh --help # Show help
# Using Python directly
python3.14 football_scraper.py --cl
python3.14 football_scraper.py --pl --yesterday
python3.14 football_scraper.py --mls
python3.14 football_scraper.py --helpWindows:
# Using batch script (recommended)
footyres.bat --cl # Champions League today
footyres.bat --pl -y # Premier League yesterday
footyres.bat --mls # MLS standings and matches
footyres.bat --as # Allsvenskan today
footyres.bat --help # Show help
# Using Python directly
python football_scraper.py --cl
python football_scraper.py --pl --yesterday
python football_scraper.py --mls
python football_scraper.py --helpRun without any flags for the traditional interactive menu:
Linux / macOS:
./footyres.sh
# or
python3.14 football_scraper.pyWindows:
footyres.bat
# or
python football_scraper.pyMain Menu:
[1-9]- Individual leagues (including MLS as [8] and Allsvenskan as [9])[0]- View all leagues[y]- Yesterday's results[t]- Tomorrow's fixtures[s]- Search streams for live/upcoming matches[q]- Quit
League View:
[r]- Refresh results[a]- Auto-update mode[m]- Return to menu[Enter]- View league table
The app now includes a powerful stream search feature that finds working stream links for live and upcoming matches (within the next hour).
- Access: Select
[s]from the main menu or press[s]in any league view - Match Selection: Choose a league to see numbered list of streamable matches
- Stream Search: Select a match number (1-N) to search for working streams
- Results: Get up to 10+ working stream links, prioritized by reliability
The searcher checks 18+ streaming platforms including:
- ppv.to (prioritized with league-specific URLs)
- watchsports.to, sportyhunter.com, crackstreams.com
- streameast.io, buffstreams.tv, sportsurge.net
- And many more...
π΄ LIVE/UPCOMING MATCHES - La Liga:
1. π’ LIVE Real Madrid vs Barcelona [45' - HT]
2. π΅ 19:30 Celta Vigo vs Girona [Starting soon]
3. π΅ 21:45 Valencia vs Sevilla [Upcoming]
Enter match number (1-3) to search for streams...
Sample Stream Results:
π― Found 12 working streams for Real Madrid vs Barcelona:
π₯ PRIORITY STREAMS (ppv.to):
1. https://ppv.to/live/laliga/2025-09-14/rmad-bar
π₯ DIRECT MATCH STREAMS:
2. https://watchsports.to/live/madrid-barcelona
3. https://streameast.io/soccer/el-clasico-live
π₯ CATEGORY STREAMS:
4. https://crackstreams.com/soccer/la-liga
...
β Live Match Detection - Automatically finds matches starting within 1 hour or already live β League-Specific URLs - ppv.to links use correct league codes (epl, laliga, bundesliga, etc.) β Link Validation - All URLs are tested before display β Priority Sorting - Direct match links prioritized over category pages β Multi-Site Search - Searches across 18+ streaming platforms simultaneously β Team Name Processing - Handles various team name formats and abbreviations
π’1 Arsenal 2 2 0 0 6 0 +6 6 W W
π’2 Tottenham Hotspur 2 2 0 0 5 0 +5 6 L W
π’3 Chelsea 2 1 1 0 5 1 +4 4 W L
π’4 Nottingham Forest 2 1 1 0 4 2 +2 4 D L
Match 1: 15:00
Manchester City 2-1 Arsenal [HT]
β½ Haaland 23' β½ Saka 45'
requests- BBC Sport API callsbeautifulsoup4- HTML parsingcolorama- Terminal colorsargparse- Command-line argument parsing (built-in)
- Real Data: Extracts live statistics from BBC Sport tables
- Educational Use: Designed for personal/educational purposes
- Cross-Platform: Works on Linux, macOS, Windows
- Offline Fallback: Shows sample data if BBC Sport unavailable