TV Guide Grabber for North America
Project description
gracenote2epg - TV Guide Grabber for North America
📦 PyPI Status: Publication pending - Install from GitHub for now
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
🚀 Quick Start
📦 Note: PyPI publication is pending. Currently install from source (see Installation Guide)
Installation
# ⏳ PyPI publication pending - Install from source for now:
# Method 1: Clone and install
git clone https://github.com/th0ma7/gracenote2epg.git
cd gracenote2epg
pip install .[full]
# Method 2: Install directly from GitHub
pip install git+https://github.com/th0ma7/gracenote2epg.git[full]
# 🔮 Future PyPI installation (once published):
# pip install gracenote2epg[full]
Basic Usage
# 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
Configuration
The script auto-creates a configuration file on first run. Basic setup:
<?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
Advanced Topics
- Cache & Retention Policies - Managing cache and log retention
- Log Rotation - Built-in log rotation system
- Development - Contributing, testing, XMLTV validation, and development setup
- 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
🛠️ Quick Examples
# 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
📋 System Requirements
- Python: 3.7 or higher
- Required:
requests>=2.25.0 - Optional:
langdetect>=1.0.9(language detection),polib>=1.1.0(translations)
📄 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.5.tar.gz.
File metadata
- Download URL: gracenote2epg-1.5.tar.gz
- Upload date:
- Size: 112.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2db1879d1c242326645f9839abb31405efd5ef6ed97a65eaf3da291b327a0dbb
|
|
| MD5 |
30e69bbe42a8f57ab4eed69e0f1d5a9a
|
|
| BLAKE2b-256 |
6a3270af30b416781bf778d16870c6f4c4dcbf0c16bc4de20de473c61d65ba71
|
Provenance
The following attestation bundles were made for gracenote2epg-1.5.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.5.tar.gz -
Subject digest:
2db1879d1c242326645f9839abb31405efd5ef6ed97a65eaf3da291b327a0dbb - Sigstore transparency entry: 420056350
- Sigstore integration time:
-
Permalink:
th0ma7/gracenote2epg@a57acf4ce1566c2c7ede043bdf56463aa3620560 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/th0ma7
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a57acf4ce1566c2c7ede043bdf56463aa3620560 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file gracenote2epg-1.5-py3-none-any.whl.
File metadata
- Download URL: gracenote2epg-1.5-py3-none-any.whl
- Upload date:
- Size: 139.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4369388a5d3cf6c5fd98e1bcefa21be7beb901dbc4f48aa3d27ca15862e60fc9
|
|
| MD5 |
6e469fe8f0d2abe1f22d6de61f6f1ded
|
|
| BLAKE2b-256 |
573a75fed81d9e3360ed8107c9312300d8ee617383d9fe056b818e922f2c0091
|
Provenance
The following attestation bundles were made for gracenote2epg-1.5-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.5-py3-none-any.whl -
Subject digest:
4369388a5d3cf6c5fd98e1bcefa21be7beb901dbc4f48aa3d27ca15862e60fc9 - Sigstore transparency entry: 420056371
- Sigstore integration time:
-
Permalink:
th0ma7/gracenote2epg@a57acf4ce1566c2c7ede043bdf56463aa3620560 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/th0ma7
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a57acf4ce1566c2c7ede043bdf56463aa3620560 -
Trigger Event:
workflow_dispatch
-
Statement type: