{"id":13897136,"url":"https://github.com/XMLTV/xmltv","last_synced_at":"2025-07-17T14:30:25.063Z","repository":{"id":27114834,"uuid":"112542799","full_name":"XMLTV/xmltv","owner":"XMLTV","description":"Utilities to obtain, generate, and post-process TV listings data in XMLTV format","archived":false,"fork":false,"pushed_at":"2025-04-26T19:52:14.000Z","size":8549,"stargazers_count":337,"open_issues_count":23,"forks_count":99,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-05-22T19:11:06.416Z","etag":null,"topics":["listings","perl","radio","tv"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/XMLTV.png","metadata":{"files":{"readme":"README.cygwin","changelog":"Changes","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"authors.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-11-30T00:15:29.000Z","updated_at":"2025-05-19T11:28:07.000Z","dependencies_parsed_at":"2024-04-09T16:32:17.797Z","dependency_job_id":"42ba1815-178c-4cbe-a19a-4dc0fa74288d","html_url":"https://github.com/XMLTV/xmltv","commit_stats":null,"previous_names":[],"tags_count":107,"template":false,"template_full_name":null,"purl":"pkg:github/XMLTV/xmltv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XMLTV%2Fxmltv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XMLTV%2Fxmltv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XMLTV%2Fxmltv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XMLTV%2Fxmltv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/XMLTV","download_url":"https://codeload.github.com/XMLTV/xmltv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XMLTV%2Fxmltv/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265616496,"owners_count":23798845,"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":["listings","perl","radio","tv"],"created_at":"2024-08-06T18:03:22.500Z","updated_at":"2025-07-17T14:30:23.742Z","avatar_url":"https://github.com/XMLTV.png","language":"Perl","funding_links":[],"categories":["Perl"],"sub_categories":[],"readme":"\nHOWTO: install XMLTV under Cygwin on Windows\n-------------------------------------------\n\nIntroduction\n------------\n\nXMLTV works mostly fine under the Cygwin unix environment for Windows...\n\nThis allows you to use the normal Perl Source code XMLTV installation\nwithout the need for the Windows executable version, giving the\nfollowing advantages:\n    * faster download of new XMLTV versions (source dist is 1/10th the\n      size of the Win32 version)\n    * ability to develop, debug and test new grabbers\n    * ability to quickly patch bugs in grabbers without waiting for\n      the new Win32 EXE version..\n    * ability to use grabbers that are not yet part of the Win32 EXE\n\nThe disadvantages are:\n\n    - Cygwin gives a unix command line environment that is alien to\n      most windows users,\n    - the initial download is very large -- Cygwin itself with the\n      required packages is about 40Mb and the XMLTV prereq file is\n      another 4Mb.\n    - Cygwin uses a large amount of disk space.\n\nAlso cygwin itself has a few odd features that can cause some issues\nwith XMLTV, and TK based XMLTV GUI apps do not work in cygwin (tv_check)\n\nWARNING: I have not tested every XMLTV app and grabber under Cygwin...\n\nWARNING: Unix command lines can be very powerful and provide very\nlittle hand-holding (such as 'Are you sure' messages when you want to\ndelete things). For this reason it is relatively easy to delete files\nunintentionally and to render your system non-operational..\nTake care with command lines and make regular backups!\n\n\nScope\n-----\n\nThis HOWTO only deals with how to get XMLTV running on Cygwin. It does\nnot deal in any way with how to use Cygwin itself other than\ninstalling the required packages fro XMLTV, so knowledge of how to\nwork using the unix-style command line shell will be required.\n\nAdvanced usage, such as applying patch files and working with CVS\ncheckouts is not covered by this HOWTO.\n\n\nInstructions\n------------\n\n1) Install Cygwin:\n------------------\n\nDownload and run Cygwin's installer.\n    http://www.cygwin.com/setup.exe\n\nIn the installer, select:\n    Install from Internet\n    -\u003e Next\n    Select a suitable installation directory, All Users, Unix file type\n    -\u003e Next\n    Select Local Package directory = some temporary folder...\n        there will be a folder created - named after the download server -\n        which you can delete after installation.\n    -\u003e Next\n    Select the correct HTTP/FTP proxy settings\n    -\u003e Next\n    Select a nearby mirror server\n    -\u003e Next\n\nThe package list will now be downloaded and shown in a categorised\ntree view.\n-- Click on the (+) text button to expand / contract a branch\n-- Click on the '() Skip' text-button on a package line to select a\n   version to download. It will change from 'Skip' to the version\n   number. If the package is already installed, the additional options\n   'Keep', 'Reinstall', 'Uninstall' will also be shown\n\nApart from the default packages that are pre-selected by the\ninstaller, you need to ensure that the following packages are selected\n    Base/\n        diffutils\n\ttar\n    Devel/\n\texpat\n\tgcc\n\tmake\n    Interpreters/\n\tperl\n    Libs/\n\tlibiconv\n\tlibiconv2\n\tlibxml2  ** select version 2.5.11 or 2.6.7 or later ** see below\n    Utils/\n\tbzip2\n\tpatch\n\tpatchutils\n\trebase\n    Web/\n\twget\n\nOther useful packages to install are editors:\n    Editor/\n\tvim (vi clone)\n\tnano (pico clone)\n\nIf you want to have access to the pre-release, under-development\nversions of XMLTV then the CVS package is also useful\n    Devel/\n\tcvs\n\n** Note Re libxml2:\nThe Perl XML::LibXML package is known not to work with certain versions\nof libxml2.  This package is required for some of the grabbers (tv_grab_se)\nAt time of writing, libxml2 version 2.5.11 is known to be OK, as is 2.6.7.\nAt time of writing, Cygwin's default version is 2.6.4, which is known\nnot to work For more information on working versions see README.md in\nxml_prereq_x/XML-LibXML-xxx.  For this reason you must make sure that\nthe correct version is selected here by clicking several times on the\n() 'Skip'/'Version' button...\n\n\nAfter a lot of downloading, (about 40Mb) and some installing you\nshould now have cygwin in your start menu... Running it gives you a\ncommand window with a unix-style prompt:\n\nusername@hostname WorkingDir\n$\n\nTips:\n    The Tab key will complete the remains of a filename/directory\n    name if unique. If not unique, it will complete as much as\n    possible, and a second Tab will indicate the possible matches.\n\n    ~/ is shorthand for your home directory. You can always go to\n    this directory with cd ~/\n\n    Your PC's drives now appear with unix paths as:\n\t /cygdrive/c/\n    but the cd command accepts\n\tcd c:\n    as a shortcut.\n\n    The cygwin installation directory: (c:/cygwin by default) is mapped\n    to the cygwin 'root' directory: '/'\n\n\nNote: If your PC does not have access to a broadband internet\nconnection, and you don't want to spend several hours downloading 40Mb\nof Cygwin, but you have access to another PC that does have broadband,\nthe cygwin installer has the option 'Download from Internet' to just\ndownload the required packages into the 'Local Package Directory'.\nYou then write the contents of the directory to CD or a Flash disk,\nthen use the 'Install from Local Directory' option on your target PC.\n\n\n2) Download and unpack XMLTV source\n-----------------------------------\n\nNow download the XMLTV source distribution, and the _prereq files from\nsourceforge\n    http://files.xmltv.org\nSave them in your Cygwin Home directory: c:/cygwin/home/username\n\nAt the Cygwin command prompt, Unpack the 2 tar.bz2 files using the\ncommand lines:\n   bunzip2 -c xmltv-x.x.x.tar.bz2 |  tar -xvf -\n   bunzip2 -c xmltv_prereq-x.tar.bz2 |  tar -xvf -\n\nWhere x is replaced by the version numbers of the files you downloaded\n\n\n3) Install the XMLTV prereq packages:\n-------------------------------------\n\nChange directory to the prereq directory created by unpacking the\ntar.bz2 file and list the packages therein.\n    cd xmltv_prereq-x\n    ls\n\nFor more info check the README.md:\n    less README.md\n\nNote that the packages with TK cannot be installed in the current\nversion of Cygwin, as PERL/TK is not yet part of Cygwin... This is not\nimportant, and only means that the XMLTV tv_check command cannot be\ninstalled\n\nThe packages need to be installed in alphanumeric order -- ie all\npackages with 00 first, then 01 then A-Z then a-z\nSo, For each directory starting with 00 (apart from 00_tk*) do:\n    cd directory\n    perl Makefile.PL; make test install\n    cd ..\nDo the same for each directory starting with 01, then for each of the\nremaining directories (apart from those with Tk*)...\n\n\nNote: Some of the prerequisite modules (such as PerlIO-gzip, and\nlibwww-perl) might fail some of its tests and will not install with the\nabove command. These will need to be installed by running\n    make install\nin the package directory. I have not found the failed tests to cause a\nproblem yet.\n\n\nNote: When installing XML-LibXML I got an error:\n    C:\\cygwin\\bin\\perl.exe: *** unable to remap C:\\cygwin\\bin\\cygiconv-2.dll\n    to same address as parent...\nIf this is the case, close all other Cygwin windows and run the command:\n    rebaseall -v\nthen try again.\n\n\nNote: When installing HTML-Parser, answer No to the question:\n    Do you want decoding on unicode entities? [no] no\nI have had problems with decoded Unicode characters in Perl/Cygwin.\n\n\nNote: When installing libwww-perl, answer NO to the questions:\n    Do you want to install the GET alias? [y] n\n    Do you want to install the HEAD alias? [y] n\n    Do you want to install the POST alias? [y] n\nthis is because installing these aliases failed on my system!\n\n\nNote: you will not be able to install Text-Kakasi (required for Japan\ngrabber) without downloading, building and installing the Kakasi\nlibrary. See README in the xmltv_prereq directory for more details. If\nyou don't need this, just skip the package.\n\n\ncd back to your home directory when complete\n    cd ~/\n\n4) Configure TimeZone\n---------------------\n\nXMLTV (actually the PERL Date::Manip module) needs the TZ variable set\ncorrectly for the time and date handling for summer and winter time to\nwork. Date::Manip has internal knowledge of some time zone values.\n\nIf the TZ variable is not set, some XMLTV grabbers and the tv_split\ncommand will not work.\n\nCygwin has its own idea of the time zone (from windows), and\noverriding the time zone with TZ can show confusing output from some\nCygwin commands that display the time and date...\n\neg: No TZ set, my time zone in windows is CET == GMT+1, the current\nlocal time is 11:15)\n    $ date\n    Tue Mar  9 11:15:06 RST 2004\nSetting TZ to CET\n    $ export TZ=CET\n    $ date\n    Tue Mar  9 10:15:25 GMT 2004\nas you can see setting a TZ variable makes Cygwin report all times as GMT...\n\nNOTE Setting TZ does not change the date of the system, merely the\n*display* of the dates...\n\nTo avoid this confusion, it is best only to set the TZ variable when\nyou are running the XMLTV tools.\n\nTo set your time zone, run.\n    export TZ=EST\nor whatever your time zone is...\nThis will set the time zone for all future commands run in this Cygwin\nwindow. If you use another window, you will need to rerun this\ncommand...\n\nTo see the list of the time zones understood by Date::Manip:\n    http://search.cpan.org/~sbeck/DateManip-5.42a/Manip.pod#TIMEZONES\nor if a newer version has been released, go to\n    http://search.cpan.org/~sbeck\n    click on Date::Manip\n    Click on Date::Manip in the Modules list to see the docs\n    Click on TIMEZONES to see the TZ list\n\n\nTo check that this TZ works with Date::Manip, run the command:\n    $ perl -e 'use Date::Manip; print Date_TimeZone;'\n\nIf all is OK, and Date::Manip recognised your TZ, this should print\nout the time zone. If not you will get some\nerrors such as \"ERROR: Date::Manip unable to determine TimeZone.\"\n\nThe actual value of the time zone should not affect the results of most\nof the XMLTV commands, grabbers and tools *EXCEPT*  for tv_grab_na --\nwhich requires the time zone to be correctly set.\n\n\n5) Install XMLTV\n----------------\ncd to the unpacked xmltv-x.x.x directory and run\n\n    perl Makefile.PL\n\nThe defaults will list all the grabbers that you can install and that\nare compatible with the Perl modules on your system. Either accept the\ndefaults, or customise the grabbers/tools that you want to install..\n\nNote tv_check will not work due to TK not being available.\n\nBuild and test:\n    make test\nNormally, all tests should pass successfully.\n\nInstall:\n    make install\n\nThat?s it. You can now delete the downloaded xmltv files and unpacked\ndirectories if you want to.\n\nYou now can use XMLTV like you would normally on unix:\n\neg\n    tv_grab_uk_rt --configure\n    tv_grab_uk_rt --days 1 \u003e uk_today.xml\n\n\n\n\n6) Automation of grabbing (optional)\n------------------------------------\n\nIf you need to automate the grabbing, you can use a Windows scheduled\ntask to run a Bash shell script as follows:\n\nCreate a file in your Cygwin home directory called\nxmltv_scheduled_grab.sh containing:\n\n-- START OF FILE -- CUT-HERE --\n#!/usr/bin/bash\n# IMPORTANT! previous line must be first line of file!\n#\n# Set up environment\n. /etc/profile\n. ~/.bash_profile\n\n# cd to home directory\ncd\n\n# Set up TZ variable\n# CHANGE THIS TO MATCH YOUR TIME ZONE\n#\nexport TZ=CET\n\n# Run grabber get 5 days listings, sending log messages to a logfile\n# CHANGE THE GRABBER COMMAND LINE TO WHAT YOU REQUIRE\n#\ntv_grab_uk_rt --days 5 --output uk_rt_xmltv.xml | tee grab_uk_rt_xmltv.log 2\u003e\u00261\n\n-- END OF FILE -- CUT-HERE --\n\n(Obviously, as indicated, you need to change the grabber command line\nand the setting of TZ to what you require...)\n\nMake this command  executable:\n    chmod +x xmltv_scheduled_grab.sh\n\nTest this command at the cygwin command line\n    xmltv_scheduled_grab.sh\n\nIf it is OK, you should get 2 files in your cygwin home\n    uk_rt_xmltv.xml containing the XMLTV output\n    grab_uk_rt_xmltv.log containing the log messages from the grabber\n\nYou now need to create a Windows scheduled task to run this script\n    (Win XP: Start\n\t  -\u003e Control Panel\n\t  -\u003e Performance and Maintenance\n\t  -\u003e Scheduled tasks\n\t  -\u003e Add Scheduled task\n     Win 2000: Start\n\t  -\u003e Control Panel\n\t  -\u003e Scheduled tasks\n\t  -\u003e Add Scheduled task)\n\n\nSelect ANY program from the list (you will change the actual command\nline later).\nSelect a schedule (you can also change this later)\nIgnore the username/password screen for the moment.\nSelect 'Open advanced properties for this task' before clicking OK to\nallow you set the real command line in the Task Properties window...\n\n\nThe problem with this command is that it will want to create a console\nwindow that will pop up on top of everything else when it runs...\n\nYou can either create this window minimised (via a transient window\nthat will pop up and disappear -- also annoying, but less so) using the scheduled\ncommand:\n    cmd /c start /min c:\\cygwin\\bin\\bash.exe ~/xmltv_scheduled_grab.sh\n\nor if you download and install the program runhide from:\n   http://www.extendingflash.com/utilities/runhide.html\nand then use the scheduled command line\n    runhide.exe c:\\cygwin\\bin\\bash.exe ~/xmltv_scheduled_grab.sh\nthen the window will never appear...\n\nYou can test these command lines by pasting them into the start-\u003eRun box.\n\n\nEnter the required command line in the Scheduled Task Properties window.\nClick the 'Set password' button, and enter your password (if you have one).\nCheck the Schedule and Settings tabs.\nFinally click OK.\n\nYou can test the scheduled task by right-clicking it and selecting Run.\n\n======================================================================\n\nHISTORY\n-------\n\n09/03/2004 Niel Markwick\n\t   initial version\n11/03/2004 Niel Markwick\n\t   added more information on Time Zones, corrected typo's\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXMLTV%2Fxmltv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FXMLTV%2Fxmltv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FXMLTV%2Fxmltv/lists"}