TV Guide Grabber for North America
Project description
gracenote2epg - TV Guide Grabber for North America
📦 PyPI Status: Now available on PyPI! Install with
pip install gracenote2epg[full]
A modern Python implementation for downloading TV guide data from tvlistings.gracenote.com with intelligent caching and TVheadend integration.
🌟 Key Features
- XMLTV Standard Compliant - Full DTD compliance for maximum compatibility
- Intelligent Caching - 95%+ cache efficiency with smart refresh strategies
- Multi-language Support - Automatic French/English/Spanish detection and translations
- TVheadend Integration - Seamless channel filtering and matching
- Unified Cache Management - Streamlined configuration for all retention policies
- Platform Agnostic - Auto-detection for Raspberry Pi, Synology NAS, and Linux
🚀 Installation
# Recommended: Install with all features
pip install gracenote2epg[full]
# Basic installation (core features only)
pip install gracenote2epg
# Alternative: Install from GitHub
pip install "gracenote2epg[full] @ git+https://github.com/th0ma7/gracenote2epg.git@v1.5.5"
📦 Development Installation
# Install from GitHub (latest)
pip install "gracenote2epg[dev] @ git+https://github.com/th0ma7/gracenote2epg.git"
# Clone and install for development
git clone https://github.com/th0ma7/gracenote2epg.git
cd gracenote2epg
pip install -e .[dev]
📋 System Requirements
- Python: 3.7 or higher
- Required:
requests>=2.25.0 - Optional:
langdetect>=1.0.9(language detection),polib>=1.1.0(translations)
🛠️ Quick Examples
Command Line Examples
# Show capabilities (XMLTV standard)
tv_grab_gracenote2epg --capabilities
# Download 7 days of guide data
tv_grab_gracenote2epg --days 7 --zip 92101
# Test lineup detection
tv_grab_gracenote2epg --show-lineup --zip 92101
# Canadian postal code with console output
tv_grab_gracenote2epg --days 3 --postal J3B1M4 --console
# Save to custom file with debug info
tv_grab_gracenote2epg --days 7 --zip 92101 --output guide.xml --debug
# Use specific lineup (auto-extracts location)
tv_grab_gracenote2epg --days 7 --lineupid CAN-OTAJ3B1M4
# Disable language detection
tv_grab_gracenote2epg --days 7 --zip 92101 --langdetect false
Configuration
💡 TVheadend Users - Easy Setup: Most users don't need to edit configuration files! Simply use TVheadend's Extra arguments box to add your parameters like
--days 7 --zip 92101 --langdetect false(Configuration → Channel/EPG → EPG Grabber Modules). See TVheadend Integration Guide for details.
TVheadend Integration Examples
# In TVheadend Extra arguments box:
--days 7 --zip 92101
--days 14 --postal J3B1M4 --langdetect false
--days 7 --zip 90210 --lineupid auto
Important: Extra arguments override the default configuration file, so you typically don't need to edit
conf/gracenote2epg.xmlmanually.
Option 2: Edit Configuration File (Advanced Users)
Also note that the gracenote2epg auto-creates a configuration file on first run. You can then modify as needed:
<?xml version="1.0" encoding="utf-8"?>
<settings version="5">
<setting id="zipcode">92101</setting> <!-- Your ZIP/postal code -->
<setting id="lineupid">auto</setting> <!-- Auto-detect lineup -->
<setting id="days">7</setting> <!-- Guide duration -->
</settings>
📚 Documentation
- Installation Guide - Installation instructions and software migration
- Configuration - Complete configuration reference
- Lineup Configuration - Finding and configuring your TV lineup
- TVheadend Integration - TVheadend setup, EPG migration, and troubleshooting
- Troubleshooting - General issues and solutions
🛣️ Development & Roadmap
- Development Roadmap - Feature roadmap, upcoming versions, and planned enhancements
- Contributing Guide - Contributing, testing, XMLTV validation, and development setup
Advanced Topics
- Cache & Retention Policies - Managing cache and log retention
- Log Rotation - Built-in log rotation system
- Development Scripts - Utility scripts for testing and distribution
🆘 Need Help?
- Check the troubleshooting guide
- Test your lineup:
tv_grab_gracenote2epg --show-lineup --zip YOUR_CODE - Enable debug logging:
tv_grab_gracenote2epg --debug --console - Create an issue with logs
📄 License
GPL v3 - Same as original script.module.zap2epg project
🙏 Credits
Based on edit4ever's script.module.zap2epg with enhancements and modern Python architecture.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gracenote2epg-1.6.0.tar.gz.
File metadata
- Download URL: gracenote2epg-1.6.0.tar.gz
- Upload date:
- Size: 130.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7dac9f6c4256114f988e304012728a047ac5d8d5433598c06b0cad7e57e85f8
|
|
| MD5 |
c14e63e3bdec8996e33eb3f7afe0d4a5
|
|
| BLAKE2b-256 |
35d78d9029aace3e28a043667a87bb7c4f3717e56f563e5357a1d33d43343cef
|
Provenance
The following attestation bundles were made for gracenote2epg-1.6.0.tar.gz:
Publisher:
publish.yml on th0ma7/gracenote2epg
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gracenote2epg-1.6.0.tar.gz -
Subject digest:
d7dac9f6c4256114f988e304012728a047ac5d8d5433598c06b0cad7e57e85f8 - Sigstore transparency entry: 491698099
- Sigstore integration time:
-
Permalink:
th0ma7/gracenote2epg@ceba869b6a9f22a422b72823c87ef354d78a3df8 -
Branch / Tag:
refs/tags/v1.6.0 - Owner: https://github.com/th0ma7
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ceba869b6a9f22a422b72823c87ef354d78a3df8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file gracenote2epg-1.6.0-py3-none-any.whl.
File metadata
- Download URL: gracenote2epg-1.6.0-py3-none-any.whl
- Upload date:
- Size: 149.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44e620ef96722420dea622ec20fe6f4c8e85b575df18c6b5a0b9f9cb1aec14b8
|
|
| MD5 |
cbccb2d71b6bc4233e2e9862b3a3291b
|
|
| BLAKE2b-256 |
3f1275da7cabb255d5ff5d6f12640b50f2011681a275b3d4c1b2ed3007e00a12
|
Provenance
The following attestation bundles were made for gracenote2epg-1.6.0-py3-none-any.whl:
Publisher:
publish.yml on th0ma7/gracenote2epg
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gracenote2epg-1.6.0-py3-none-any.whl -
Subject digest:
44e620ef96722420dea622ec20fe6f4c8e85b575df18c6b5a0b9f9cb1aec14b8 - Sigstore transparency entry: 491698140
- Sigstore integration time:
-
Permalink:
th0ma7/gracenote2epg@ceba869b6a9f22a422b72823c87ef354d78a3df8 -
Branch / Tag:
refs/tags/v1.6.0 - Owner: https://github.com/th0ma7
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ceba869b6a9f22a422b72823c87ef354d78a3df8 -
Trigger Event:
push
-
Statement type: