{"id":18513173,"url":"https://github.com/tomzox/tv_grab_ttx","last_synced_at":"2025-07-17T06:37:23.863Z","repository":{"id":154044382,"uuid":"269592288","full_name":"tomzox/tv_grab_ttx","owner":"tomzox","description":"Scraping TV programme schedules from teletext and exporting in XMLTV format","archived":false,"fork":false,"pushed_at":"2021-03-22T21:51:43.000Z","size":1007,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-20T09:46:34.241Z","etag":null,"topics":["epg","scraper","teletext","videotext","xmltv"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tomzox.png","metadata":{"files":{"readme":"README.md","changelog":"changelog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-05T09:51:57.000Z","updated_at":"2021-03-22T21:51:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"4e3bcfa4-bfdf-433d-a18e-c6356b8dc6a6","html_url":"https://github.com/tomzox/tv_grab_ttx","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tomzox/tv_grab_ttx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomzox%2Ftv_grab_ttx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomzox%2Ftv_grab_ttx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomzox%2Ftv_grab_ttx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomzox%2Ftv_grab_ttx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tomzox","download_url":"https://codeload.github.com/tomzox/tv_grab_ttx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomzox%2Ftv_grab_ttx/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265573790,"owners_count":23790507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["epg","scraper","teletext","videotext","xmltv"],"created_at":"2024-11-06T15:36:44.114Z","updated_at":"2025-07-17T06:37:23.841Z","avatar_url":"https://github.com/tomzox.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Teletext EPG grabber\n\nThis EPG grabber or \"scraper\" allows extracting TV programme listings in\n[XMLTV format](http://wiki.xmltv.org) from teletext pages as broadcast by\nmost European TV networks. The grabber works by reading teletext pages via\na TV card from all individual networks, then extracting programme title\nand starting times from programme tables (e.g. in Germany usually pages\n301-304) and finally adding description texts from pages which are\nreferenced in the overviews.\n\nThe grabber can be used stand-alone, but is best used as part of the\nNextview EPG grabber [nxtvepg](http://nxtvepg.sourceforge.net) (version\n2.9.0 or later), which can also be used for immediately browsing the\nprogramme listings in the generated XMLTV files. The grabber is integrated\ninto the nxtvepg acquisition control and can be activated via the\nconfiguration menus. (Version 2.9 of nxtvepg still defaults to acquisition\nvia Nextview EPG, but that service is defunct now; use nxtvepg version 3.0\nor later for optimized support.)\n\nSince the grabber has to read each individual network's teletext stream and\nmany networks use sub-pages at least for descriptions, the process if done\nsequentially takes relatively long, namely at least 90-120 seconds per network\nfor grabbing all data including description texts.  However, when capturing\nfrom DVB, it is possible to capture from all channels sharing a transponder,\nwhich in average speeds up acquisition by more than factor 5 (see description\nof script `capall.sh` below). There is also a fast scan mode which requires\nonly 10-20 seconds per network in average, however in this mode overview and\ndescriptions may be incomplete if sub-pages are used by the respective network.\n\nFor now, only nation-wide German networks are supported well. For other\nnetworks, the parser would need to be adapted to different page formats. That's\nbecause almost every network formats tables, dates, times and descriptions\nslightly differently, so that the parser will have trouble locating the EPG\ndata among all the advertisements and other content in teletext.\n\n# Latest news: March/2021: Release of version 2.3\n\nDevelopment was resumed with release 2.0 after a 9 year gap. The first release\nmainly focused on enhancing working with digital TV capture cards (e.g. by\nadapting the `capall.pl` example automation script). Also tools have been\nupdated (e.g. removed the need for the Boost regex library by requiring C++11)\nand the parser was slightly enhanced and adapted to changes in teletext content\nby networks.\n\nSubsequent releases provided further enhancements and fixes in teletext page\nparser and tools (e.g. DVB channel tuning), as well as interface adaption for\nintegration in nxtvepg. See file \"changelog\" for details.\n\n# Installation\n\nIf you got the Debian package (or created one yourself using shell script\n`mkdebian.pl`), you can install the executable and manual page by typing:\n\n```console\n    dpkg -i PACKAGE\n```\n\nAlternatively, you can compile and install the package from sources directly by\ntyping `make install prefix=/usr/local` (optionally replacing `/usr/local` with\nanother directory which contains bin/ and man/, where to install the executable\nand manual page respectively.)\n\nFor use with nxtvepg: The grabber is actually compiled into the nxtvepg\nexecutable: Both nxtvepg release 2.9.0 and 3.0.0 include the current latest\ngrabber release 2.3. See\n[nxtvepg grabber documentation](http://nxtvepg.sourceforge.net/ttx_grab.html).\n\n# Dependencies\n\nThis grabber captures EPG data from live TV broadcast, therefore a TV capture\ndevice (e.g. a DVB capture device) is required.\n\nWhen not used from within [nxtvepg](http://nxtvepg.sourceforge.net), the grabber\nrequires the [ZVBI library](http://zapping.sourceforge.net/ZVBI/index.html) for\ncapturing teletext from a TV capture device. The library is available for Linux\nand BSD only. Most Linux distributions provide the library as a package (e.g.\nfor Debian, Ubuntu et.al. use `apt-get install libzvbi-dev`).\n\nFor building the executable, a C++ compiler supporting release C++11 or later\nis required.\n\nNote up to version 1.x of this package [Perl](https://www.perl.org/) and the\n[Video::ZVBI](https://metacpan.org/pod/Video::ZVBI) Perl extension module were\nused for implementation (actually that extension was developed for this\npurpose). Due to increased size and complexity of the implementation however,\nC++ is used instead since version 2.0, so these dependencies are moot.\n\n# Usage\n\nThe following is a usage example: First the channel is switched to network ARD\nusing `mplayer` (you could use other tools such as `dvb5-zap` for this purpose,\ndepending on your DVB setup.) Then the grabber is run: With the shown options,\nit will capture pages 300-399 from DVB stream 104 (which is the teletext PID of\nnetwork \"Das Erste\", formerly known as \"ARD\"; you can obtain the PID using tool\n`tune_dvb` in this package). Capturing will stop after all sub-pages of the page\nrange have been acquired. Afterwards the grabber extracts EPG data and generates\nan XMLTV file which is written to *stdout*, which is redirected to a file in the\nexample.  Finally the XMLTV file is loaded into nxtvepg for browsing the\nprogramme schedules. (Any other XMLTV-capable browser will work, too.)\n\n```console\n  mplayer dvb://\"Das Erste\" \u0026\n  ./tv_grab_ttx -dvbpid 104 -page 301-399 \u003e ttx-ARD.xml\n  nxtvepg ttx-ARD.xml\n```\n\nFor additional options invoke the grabber with command line option \"`-help`\".\n\nUsing the above will produce a separate XMLTV file per channel, which is not\npractical for browsing. Use script `merge.pl` for merging XML files of all\nchannels into a single XMLTV file. When using the grabber from within nxtvepg,\nthe merge can be configured to be done automatically.\n\nSee script `capall.pl` for an example how to automate capturing and merging EPG\ndata from multiple channels. (Note this script requires `make tune_dvb` for\ntuning into channels and you will have to edit it for your `channels.conf` path\nand channel names used therein.) In particular the script speeds-up grabbing\nsignificantly by running `tv_grab_ttx` multiple times concurrently for all DVB\nchannels sharing a transponder.\n\n# Copyright\n\n**Copyright 2006-2011, 2020-2021 by T. Zoerner**\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the\n[GNU General Public License](http://www.fsf.org/copyleft/gpl.html)\nas published by the [Free Software Foundation](http://www.fsf.org/).\nThis program is distributed in the hope that it will be useful,\nbut **without any warranty**; without even the implied warranty of\nmerchantability or fitness for a particular purpose.\n\n**Content copyright**: Please note that content providers do hold a copyright\non the programme schedules which can be extracted by means of this software.\nThe data is free for personal use, but must not be publicly redistributed (e.g.\nmade available on the Internet) without prior permission.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomzox%2Ftv_grab_ttx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomzox%2Ftv_grab_ttx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomzox%2Ftv_grab_ttx/lists"}