forked from XMLTV/xmltv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
202 lines (153 loc) · 8.04 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
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, 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, [email protected], 2019-02-21