Skip to content
Utilities to obtain, generate, and post-process TV listings data in XMLTV format
Branch: master
Clone or download
garybuhrmaster remove version on 'use XMLTV' to eliminate certain packaging issues.
(cherry picked from commit 2307a8d56e8dcf470423be63c4884ec560200dea)
Latest commit 240d203 Apr 30, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github github: add initial pull request template Mar 12, 2019
analyse_tvprefs analyse_tvprefs/bnc_freq.txt: use Unix line endings Feb 8, 2019
choose correct email escape after version added. Feb 19, 2019
doc README.win32: drop details of Windows 98 error with Perl 5.8 Apr 6, 2019
filter correct FSF address (issue #65) Apr 28, 2019
grab remove version on 'use XMLTV' to eliminate certain packaging issues. Apr 30, 2019
lib Prepare for 0.6.1 release Feb 21, 2019
t test_tv_imdb.t: update usage documentation Feb 28, 2019
todo Remove todo/TASKS.epa Feb 8, 2019
tools Replace active-but-unsupported CVS $Id tags Feb 7, 2019
.Dockerfile.centos-6 docker: refresh dependencies in CentOS dockerfiles Jun 17, 2018
.Dockerfile.centos-7 docker: refresh dependencies in CentOS dockerfiles Jun 17, 2018
.Dockerfile.debian-buster docker: refresh dependencies in Debian dockerfiles Jun 17, 2018
.Dockerfile.debian-jessie docker: refresh dependencies in Debian dockerfiles Jun 17, 2018
.Dockerfile.debian-sid docker: refresh dependencies in Debian dockerfiles Jun 17, 2018
.Dockerfile.debian-stretch docker: refresh dependencies in Debian dockerfiles Jun 17, 2018
.Dockerfile.fedora-24 docker: refresh dependencies in Fedora dockerfiles Jun 17, 2018
.Dockerfile.fedora-25 docker: refresh dependencies in Fedora dockerfiles Jun 17, 2018
.Dockerfile.fedora-26 docker: refresh dependencies in Fedora dockerfiles Jun 17, 2018
.Dockerfile.fedora-27 docker: refresh dependencies in Fedora dockerfiles Jun 17, 2018
.Dockerfile.fedora-28 docker: add dockerfile for Fedora 28 Jun 21, 2018
.Dockerfile.fedora-29 docker: add dockerfile for Fedora 29 Feb 7, 2019
.Dockerfile.ubuntu-artful docker: refresh dependencies in Ubuntu dockerfiles Jun 17, 2018
.Dockerfile.ubuntu-bionic docker: add additional handling for configuring tzdata non-interatively Jun 21, 2018
.Dockerfile.ubuntu-cosmic docker: add dockerfile for Ubuntu 18.10 "Cosmic Cuttlefish" Feb 7, 2019
.Dockerfile.ubuntu-trusty docker: refresh dependencies in Ubuntu dockerfiles Jun 17, 2018
.Dockerfile.ubuntu-xenial docker: refresh dependencies in Ubuntu dockerfiles Jun 17, 2018
.Dockerfile.ubuntu-yakkety docker: refresh dependencies in Ubuntu dockerfiles Jun 17, 2018
.Dockerfile.ubuntu-zesty docker: refresh dependencies in Ubuntu dockerfiles Jun 17, 2018
.dockerignore Add support for build testing XMLTV using Travis CI Feb 25, 2017
.gitattributes git: add initial gitattributes config file Mar 13, 2019
.gitignore Update .gitignore to remove deleted grabbers Mar 15, 2018
.travis.yml Update Travis CI test configuration Feb 7, 2019
COPYING correct FSF address Aug 7, 2012
Changes Prepare for 0.6.1 release Feb 21, 2019
MANIFEST MANIFEST: add eu_xmltvse files Feb 21, 2019
MANIFEST.SKIP Delete ChangeLog.old Feb 18, 2019
Makefile.PL Prepare for 0.6.1 release Feb 21, 2019
README Prepare for 0.6.1 release Feb 21, 2019
README.cygwin Remove unused CVS $Id$ tags Feb 7, 2019
Uninstall.pm Remove unused CVS $Id$ tags Feb 7, 2019
authors.txt authors.txt: fix my email address Dec 2, 2017
mkdist Remove unused CVS $Id$ tags Feb 7, 2019
xmltv-lineups.xsd Make the preset element optional in a lineup-entry Jun 10, 2012
xmltv.dtd Remove unused CVS $Id$ tags Feb 7, 2019
xmltv_logo.ico add xmltv icon to exe Sep 20, 2014
xmltv_logo.png add xmltv icon to exe Sep 20, 2014

README

XMLTV 0.6.1

Gather television listings, process them and organize your viewing.
XMLTV is a file format for storing TV listings, defined in xmltv.dtd.
Then there are several tools to produce and process these listings.

Please see doc/QuickStart for documentation on what each program does,
and xmltv.dtd for documentation on the file format.

* Major Changes in this release (0.6.1)

* IMPORTANT *

tv_grab_eu_dotmedia and tv_grab_se_tvzon are deprecated and will be
removed in the next release of XMLTV. Please switch to the new
tv_grab_eu_xmltvse grabber as soon as possible.

tv_grab_eu_xmltvse:  new grabber for Europe
tv_grab_pt_vodafone: new grabber for Portugal

tv_grab_es_laguiatv: disable broken grabber
tv_grab_fr_kazer:    disable broken grabber
tv_grab_in_toi:      disable broken grabber
tv_grab_nl:          disable broken grabber

tv_grab_eu_epgdata:  include fanart URLs in output
tv_grab_fi:          add new ampparit and telsu sources
tv_grab_il:          update grabber due to upstream changes
tv_grab_is:          now only provides RUV channels
tv_grab_zz_sdjson_sqlite:
                     improvements to lineup management
                     add support for TheTVDB metadata
tv_augment:          new rules to improve episode numbering
                     logging must now be enabled explicitly
tv_count/tv_merge:   mandatory command line options for files
tv_imdb:             migrate to new URL for archived IMDB data

And lots of other changes (see git log for details)

* Installation

Note: Windows users are strongly advised to use the pre-built EXE as installing
all the prerequisites is non-trivial. For those who want to give it a go,
instructions are in doc/exe_build.html. Those instructions can be used for both
building xmltv.exe as well as a local install.

Basic installation instructions (Linux/Unix):

% perl Makefile.PL
% make
% make test
% make install

To install in a custom directory, replace the first line with
something like

% perl Makefile.PL PREFIX=/wherever/

The system requirements are Perl 5.8.3 or later, and a few Perl modules.
You will be asked about some optional components; if you choose not to
install them then there are fewer dependencies.

Please note that in addition to the specific modules listed below, the
tv_grab_zz_sdjson_sqlite grabber requires Perl 5.16 to be installed.

** Required distribtions/modules

Required distributions/modules for XMLTV's core libraries are:

Date::Manip 5.42a
File::Slurp
JSON (see note below)
LWP 5.65
Term::ReadKey
XML::LibXML
XML::Parser 2.34
XML::TreePP
XML::Twig 3.28
XML::Writer 0.6.0

Required modules for grabbers/utilities are:

Archive::Zip                  (tv_grab_eu_epgdata, tv_grab_uk_bleb)
CGI                           (tv_pick_cgi, core module until 5.20.3, part of CGI)
CGI::Carp                     (tv_pick_cgi, core module until 5.20.3, part of CGI)
Compress::Zlib                (for some of the grabbers, core module since 5.9.3, part of IO::Compress)
Data::Dump                    (for tv_grab_it_dvb)
Date::Calc                    (tv_grab_il)
Date::Format                  (for some of the grabbers, part of TimeDate)
Date::Language                (tv_grab_ar, tv_grab_dtv_la, part of TimeDate)
Date::Parse                   (tv_grab_dtv_la, part of TimeDate)
DateTime                      (for several of the grabbers)
DateTime::Format::ISO8601     (tv_grab_zz_sdjson_sqlite)
DateTime::Format::SQLite      (tv_grab_zz_sdjson_sqlite)
DateTime::Format::Strptime    (tv_grab_eu_epgdata)
DateTime::TimeZone            (tv_grab_fr)
DBD::SQLite                   (tv_grab_zz_sdjson_sqlite)
DBI                           (tv_grab_zz_sdjson_sqlite)
Digest::SHA                   (tv_grab_zz_sdjson{,_sqlite}, core module since 5.9.3)
File::HomeDir                 (tv_grab_zz_sdjson_sqlite)
File::Which                   (tv_grab_zz_sdjson_sqlite)
HTML::Entities 1.27           (for several of the grabbers, part of HTML::Parser 3.34)
HTML::Parser 3.34             (tv_grab_it, tv_grab_it_dvb, part of HTML::Parser 3.34)
HTML::Tree                    (for many of the grabbers, part of HTML::Tree)
HTML::TreeBuilder             (for many of the grabbers, part of HTML::Tree)
HTTP::Cache::Transparent 1.0  (for several of the grabbers)
HTTP::Cookies                 (for several of the grabbers)
HTTP::Request::Common         (tv_grab_eu_epgdata, part of HTTP::Message)
IO::Scalar                    (for some of the grabbers, part of IO::Stringy)
List::MoreUtils               (tv_grab_zz_sdjson_sqlite)
LWP::Protocol::https          (tv_grab_zz_sdjson)
LWP::UserAgent::Determined    (tv_grab_zz_sdjson_sqlite)
SOAP::Lite 0.67               (tv_grab_na_dd)
Time::Piece                   (tv_grab_huro, core module since 5.9.5)
Time::Seconds                 (tv_grab_huro, core module since 5.9.5)
Tk                            (tv_check)
Tk::TableMatrix               (tv_check)
URI                           (for some of the grabbers, part of URI)
URI::Escape                   (for some of the grabbers, part of URI)
XML::DOM                      (tv_grab_is)
XML::LibXSLT                  (tv_grab_is)

** Recommended distribtions/modules

The following modules are recommended (e.g. faster JSON processing, better
character handling) but the software will works without them installed:

File::chdir                      (testing grabbers)
JSON::XS                         (faster JSON handling, see note below)
Lingua::Preferred 0.2.4          (helps with multilingual listings)
Log::TraceMessages               (useful for debugging, not needed for normal use)
PerlIO::gzip                     (can make tv_imdb a bit faster)
Term::ProgressBar                (displays pretty progress bars)
Unicode::String                  (improved character handling in tv_to_latex)

** JSON libraries

By default, libraries and grabbers that need to handle JSON data should specify
the JSON module. This module is a wrapper for JSON::XS-compatible modules and
supports the following JSON modules:

JSON::XS
JSON::PP
Cpanel::JSON::XS

JSON will use JSON::XS if available, falling back to JSON::PP (a core module
since 5.14.0) if JSON::XS is not available. Cpanel::JSON::XS can be used as an
explicit alternative by setting the PERL_JSON_BACKEND environment variable
(please refer to the JSON module's documentation for details).


All required modules can can be installed from CPAN using the CPAN shell program:

% 'perl -MCPAN -e shell'

then 'install XML::Twig' and so on.

You may find it easier to search for packaged versions of modules from your OS
provider - software sources which distribute a packaged version of XMLTV will
often provide the modules it needs too.

* Proxy servers

Proxy server support is provide by the LWP modules.
You can define a proxy server via the HTTP_PROXY enviornment variable.
    http_proxy=http://somehost.somedomain:port

For more information, see the the following:
http://search.cpan.org/~gaas/libwww-perl-5.803/lib/LWP/UserAgent.pm#$ua->env_proxy

* Known issues

If a full HTTP URL to the XMLTV.dtd is provided in the DOCTYPE declaration of
an XMLTV document, be aware that it is possible for the link to instead
redirect to a page for accepting cookies. Such cookie-acceptance pages are more
common in Europe, and can result in applications being unable to parse the
file.

* Author and copying

This is free software distributed under the GPL, see COPYING. There are many
who have contributed code: they are credited in individual source files and
in the authors.txt mapping file.

* Resources

We have a project web page and wiki at http://www.xmltv.org

We maintain our source code using git and our Github project is available at
https://github.com/XMLTV/xmltv. Please browse and submit new issues on our Github
issue tracker at https://github.com/XMLTV/xmltv/issues.

We run the following mailing lists:

    xmltv-announce: Subscribe — XMLTV Release Announcements (low traffic)
    xmltv-users: — XMLTV users list, mostly for problem reporting and general XMLTV questions
    xmltv-devel: Subscribe — XMLTV development discussion group

Please subscribe to any/all lists at https://sourceforge.net/p/xmltv/mailman/

Finally, we run an IRC channel #xmltv on Freenode. Please join us!

-- Nick Morrott, knowledgejunkie@gmail.com, 2019-02-21
You can’t perform that action at this time.