Skip to main content

py-epg

py-epg is an easy to use, modular, multi-process EPG grabber written in Python.

  • 📺 Scrapes various TV Program websites and saves programs in XMLTV format.
  • 🧩 Simply extend EpgScraper to grab EPG from your favorite TV site (requires basic Python skills).
  • 🤖 The framework provides the rest:
    • Beautiful Soup - easily search & extract data from html elements
    • multi-processing
    • config management
    • logging
    • build & write XMLTV (with auto-generated fields, eg 'stop')
    • single proxy or rotating proxy pool support (with remote proxy-list fetching, per-request rotation, timeouts, retries and a circuit breaker that auto-disables failing proxies)
    • persistent caching (SQLite) of slow-changing data (channel logos, program details) with configurable TTLs
    • auto http/s retries
    • random fake user_agents
  • 🚀 Save time by fetching channels in parallel (caution: use proxy server(s) to avoid getting blacklisted)!
  • 🧑🏻‍💻 Your contributions are welcome! Feel free to create a PR with your tv-site scraper and/or framework improvements.

Usage

  1. Install package:

    $ pip3 install py_epg
    
  2. Create configuration: py_epg.xml

    • Add all your channels (see sample config).
    • Make sure there is a corresponding site scraper implementation in py_epg/scrapers for each channels ('site' attribute).
    • Optionally configure a <cache> (persistent caching with TTLs) and a <proxy-list> (rotating proxy pool with circuit breaker) - see the comments in the sample config for all supported attributes.
  3. Run:

    $ python3 -m py_epg -c </path/to/your/py_epg.xml> -p
    

    ..or see all supported flags:

    $ python3 -m py_epg -h
    usage: py_epg [-h] [-p [PROGRESS_BAR]] [-q [QUIET]] -c CONFIG
    ...
    

Development

Your contributions are welcome! Setup your dev environment as described below. VSCode is a great free IDE for python projects. Once you are ready with your cool tv site scraper or framework feature, feel free to open a Pull Request here.

  1. Install poetry:

    curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
    
  2. Clone repository & install dependencies:

    git clone https://github.com/szab100/py-epg.git && cd py-epg
    
  3. Configure py_epg.xml

    • Add all your channels (see the sample config xml). Make sure you have a scraper implementation in py_epg/scrapers/ for each channels ('site' attribute).
  4. Run:

    poetry install
    poetry run epg -c py_epg.xml
    

License

Copyright 2021. Released under the MIT license.

Metadata

Release files for py-epg 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-epg 0.4.1
File Size Uploaded
py_epg-0.4.1.tar.gz 18.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-epg 0.4.1
File Interpreter ABI Platform
py_epg-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 42.3 kB

Release files / py_epg-0.4.1.tar.gz

Download URL py_epg-0.4.1.tar.gz
Size 18.5 kB
Tags Source
SHA-256 checksum
How to use checksums
13d0835679115813bdac8844c61b1100dce6d4c2df1c9d5c1fb5868b17471369
BLAKE2b-256 checksum
How to use checksums
cb17bfca53291878e7d88da96d7f8a6541c6728807b2fe5b3fbf782ad4c1a8d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.14.2 Darwin/25.6.0

Release files / py_epg-0.4.1-py3-none-any.whl

Download URL py_epg-0.4.1-py3-none-any.whl
Size 23.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c870807df36906a1931072e3ab5ff70bd82e87b772439fdd97b099de81845f4f
BLAKE2b-256 checksum
How to use checksums
5cf98bcd5ef039cbc22d93e7088c4f56fe48d490c8eb48b64e66a37a85f56926
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.14.2 Darwin/25.6.0

Release history Release notifications | RSS feed

0.6.0

2 release files

0.5.0

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page