Teletext EPG grabber
This EPG grabber allows extracting TV programme listings in XMLTV format from teletext pages as broadcast by most European TV networks. The grabber works by reading teletext pages via a TV card from all individual networks, then extracting programme title and starting times from programme tables (e.g. in Germany usually pages 301-399) and finally adding description texts from pages which are referenced in the overviews.
The grabber can be used stand-alone, but is best used as addition to the Nextview EPG grabber nxtvepg (3.0.0 and 2.9.0) which can also be used to view the programme listings in the generated XMLTV files. The grabber is integrated into the nxtvepg acquisition control and can be activated via the configuration menus. The main intent of the combination is firstly to compensate for the recent loss of several Nextview EPG providers (such as German providers 3sat and RTL2) and secondly to add more description texts to the Nextview EPG. In teletext, many networks have good descriptions not only for movies, but especially also for weekly magazines, daily soaps or current events. The only major downside is lack of categories (e.g. making it harder to search for movies).
Since the grabber has to read each individual network's teletext stream and many networks use sub-pages at least for descriptions, the process unfortunately takes relatively long: For full EPG grabbing, typically between 90 and 120 seconds per channel are required. When receiving via DVB, this can be sped-up significantly however, as it's possible to receive teletext from all channels sharing a transponder concurrently.
For now, only nation-wide German networks are supported well. For other networks the parser will need to be adapted to different page formats. That's because almost every network formats tables, dates, times and descriptions slightly differently, so that the parser will have trouble locating the EPG data among all the advertisements and other content in teletext.
Download
This download is mainly inteded for users who want to use the grabber stand-alone, i.e. without nxtvepg. In this case you need the ZVBI library, see below.
Since 2020 the grabber's homepage is https://github.com/tomzox/tv_grab_ttx. You can download the latest sources directly from the git repository instead of using the release package below.
Latest Release: Version 2.3 from March 21st 2021
Development was resumed with release 2.1 after a 9 year gap. The first release mainly focused on enhancing working with digital TV capture cards (e.g. by adapting the `capall.pl` example automation script). Also tools have been updated (e.g. removed the need for the Boost regex library by requiring C++11) and the parser was slightly enhanced and adapted to changes in teletext content by networks. Subsequent releases provided further enhancements and fixes in parser and tools, as well as interface adaption for integration in nxtvepg.
The latest release is included in nxtvepg releases 3.0.0 and 2.9.0.
Sources
Note the grabber requires a C++ compiler supporting C++11. The grabber additionally requires the ZVBI library for capturing teletext. Since this library only supports Linux and BSD, the teletext grabber currently is not particularly useful for Windows users, even though cross-compilation for Window using MinGW is supported.
- Teletext grabber sources: tv_grab_ttx-2.3.tar.gz (apx. 320 kB)
For further information on usage, dependencies and installation please refer to the homepage on github
Change log
Changes from 2.2 to 2.3 (Mar/21/2021)
- Filter overlapping TV programmes from XMLTV output.
- Filter TV programmes too far in the future (likely result of misdetection)
- Fixed a bug that lead to gaps in TV schedule output for TV programmes after midnight.
- Added the teletext page number of the teletext overview page it originates
from as comment for each
element in XMLTV output. - Added a "date" attribute to the
tag, specifying time of acquisition. - Added translation for Italian month & weekday names.
- Extended the time_dvb tool to support "mplayer" channels.conf format and tuning of DVB-T and DVB-S channels.
- Added auto-detection for the teletext PID to the tune_dvb tool.
- Source code was adapted for compiling with gcc version 9.
- Added a "date" attribute to the
Changes from 2.1 to 2.2 (Dec/22/2020)
- Adapted internal C interface used by nxtvepg branch "devel_3_0_0" for allowing capturing concurrently from multiple DVB channels
- Bugfix "capall" to use TTX page numbers given in config
- Enhanced robustness of merge script (e.g. duplicate channel names)
- Enhanced parsing of series indices in programme titles
Changes from 2.0 to 2.1 (Jun/30/2020)
- Replaced use of boost_regex library with C++11 std::regex
- Changed default from analog to digital TV capture device
- Added command line option "-pgstat" for monitoring capture progress
- Added optional tool for tuning DVB channels in util/ directory
- Enhanced example capture script capall.pl: receive concurrently from channels sharing a transponder; can speed-up overall duration of acquisition significantly (e.g. by factor 4)
- Minor parser enhancements
Changes in 2.0 (Jan/09/2011)
- Complete re-implemenation in C++ based on the boost_regex library.
- Added support for new "HD" feature attribute
- Updated XMLTV output to DTD 0.5.56: "bilingual", "HDTV"
- Map "audio-descriptive" feature flag to bilingual
- Remove redundancy from descriptions on multiple sub-pages
- Improved fuzzy-matching on dates on description page dates
- Include description text even upon missing or unreadable date of the page is referenced by a single programme
- Improve separation between programme titles and sub-titles in overwiew pages using lin-breaks found on description pages
- Bug-fix end-time parser for ARTE
- Fixed TTX page ref matching: avoid false matches
- Improved rubustness of cast table parser and support more table formats
- Implementation switched from Perl to C++ (code design improvement)
- Improved merge to avoid losing descriptions or feature flags