Git Product home page Git Product logo

nxtvepg's Introduction

nxtvepg - XMLTV EPG browser & Teletext EPG grabber

nxtvepg is a browser for TV programme schedules (EPG) stored in XMLTV format. nxtvepg supports flexible merging EPG from multiple sources and displaying the result in a compact table view, or a grid view. It supports filtering the TV schedule based on a large number of attributes, a filter shortcut list in the main window, adding custom columns to the view to mark programmes matching predefined filters, and reminders for individual programmes or filter shortcuts.

nxtvepg also features an integrated Teletext EPG grabber, which uses a TV capture card for automatically extracting TV schedules from programme tables in Teletext from a given list of channels. Acquired EPG data can be merged and browsed immediately in the nxtvepg GUI, or exported to files in XMLTV format for use in another browser. Currently, only German TV networks are supported well by the grabber; support for other networks can be added on request, provided they transmit Teletext with usable TV schedules.

Historically, nxtvepg was developed for receiving and browsing Nextview EPG. Nextview was an European standard for transmission of Electronic TV Program Guides within analog TV broadcasts. However, as the world has switched to digital TV broadcast since, it is no longer transmitted today. Therefore, support for this standard has been removed from nxtvepg in release 3.0.

For a comprehensive description of features of this software, please refer to the manual page: In the source package, see nxtvepg.pod; after installation, type man nxtvepg in a shell (UNIX only), or open manual.html (English language) or manual-de.html (German) included in the pre-compiled package in a Web browser, or open http://nxtvepg.sourceforge.net/man.html

System requirements

For browsing XMLTV files, any PC sold in the past 20 years will do.

For the Teletext EPG grabber, a DVB or analog TV tuner card is required and you need to be able to receive a network that transmits Teletext service with programme tables.

The Linux version supports all Digital TV (DVB) cards and analog cards for which a v4l2 ("video 4 linux, version 2") compatible driver exists that supports teletext reception via /dev/vbi (e.g. bttv, saa7134, cx8800, possibly even USB TV boxes). NetBSD and FreeBSD versions supports all cards which are supported by the bktr driver.

The MS Windows version supports only analog TV cards that are supported via the separately provided WDM driver interface DLL VbiAcqWdmDrv.dll. Pre-requisite for that is a vendor-provided WDM driver module that supports "VBI" decoding (e.g. teletext). Digital TV cards (DVB) are currently not supported for MS Windows.

Linux software requirements

  • For the Teletext EPG grabber (optional): Either V4L2 drivers (i.e. video for Linux, API 2) when using analog TV capture cards, or Digital TV drivers for DVB capture cards.
  • When compiling from source: GNU C++ Compiler with support for C++14. You'll also need development (i.e. "-dev") versions of various packages such as "xorg" so that header files are available.
  • Tcl/Tk version 8.5 or 8.6. Sources available for download from http://www.tcl.tk/
  • Any release of X11R5 or X11R6 Note: X11 and Tcl/Tk are not required if you only build the daemon

NetBSD software requirements

Windows software requirements

  • For the Teletext EPG grabber (optional): A WDM driver for your analog TV card that supports VBI decoding. Use of the WDM driver (based on DirectShow) requires DirectX 9 or later.
  • Windows 95: the winsock2 DLL is required (ws2_32.dll, for the daemon feature) which - in contrary to newer Windows versions - was not included with this OS.
  • All Windows versions starting with Windows 95 are supported.

Note the Windows version currently does not support Digital TV capture cards.

UNIX installation procedure (when compiling from source)

  • Optional, for Teletext EPG grabber only: first install a teletext decoder application (e.g. aleVT) to verify that your TV card drivers work correctly.

  • There's currently no "configure" script, so you have to manually check path definitions at the top of the Makefile, esp. for the Tcl/Tk libraries, include path and script libraries.

  • There are also several compile-time options in the Makefile which you might want to consider, however the defaults should work everywhere.

  • If you compile on a operating system other than Linux, BSD or Windows, then replace use of epgvbi/btdrv4linux in the Makefile with epgvbi/btdrv4dummy. This will disable EPG acquisition via the TV card, but you still can use network acquisition mode to receive data from a supported platform.

  • make:

    • Note: typing make nxtvepg will not work since there are other targets which need to be built first. Hence just start make without parameters.
    • If compilation fails with massive syntax errors, check the type definitions in epgctl/mytypes.h first. Required types are: bool, schar, uchar, sint, uint, slong, ulong. Compilation may fail if these are already defined in system header files; in this case you probably have to comment out nxtvepg's definition.
    • If compilation fails due to missing "include files", you probably lack development versions of standard libraries. On Debian/Ubuntu you need: apt-get install tcl8.6 tcl8.6-dev tk8.6 tk8.6-dev apt-get install libx11-dev libxmu6 libxmu-dev For Fedora and other RPM-based systems you need: yum install tcl-devel tk-devel libXmu-devel perl-Pod-Html
    • To build the "nxtvepgd" executable type make daemon or make all. This will compile one extra module and otherwise just link a smaller executable which does not contain the graphical user interface.
    • To compile the tvsim test & development suite too, invoke make all (Note these tools are not installed into system directories since they are intended for temporary use in debugging only.)
    • Intermediate objects and the binaries are generated in a subdirectory named build-<platform> (e.g. build-i386 for an Intel compatible)
  • make install: This will copy the nxtvepg and nxtvepgd executables and their respective manual pages into the system directories configured in the Makefile via variable prefix. Usually you need to "su root" to have permission to do so.

  • Invoke the build executable build/nxtvepg. For browsing XMLTV files, simply add their path on the command line to load and display their content. When started without arguments nxtvepg will initialls show an screen with the nxtvepg logo and a small help text. Follow the help to enable the Teletext EPG grabber, or read manual chapter "Getting Started".

If the GUI shows up but does not react to any input, you probably need to tell Tcl/Tk where to find its libraries. To do so, correct the paths in TCL_LIBRARY_PATH and TK_LIBRARY_PATH in the Makefile. If you need to change anything besides the Makefile, please let me know about it (i.e. send me the diffs)

Windows installation procedure (for pre-compiled binary package)

  • Unpack the zip file into an empty directory.

  • When intending to use the Teletext EPG grabber: Make sure you've stopped your TV viewing application and any other video applications, else nxtvepg willl not be able to load data, because only one application may use the TV card at the same time.)

  • Invoke the executable nxtvepg.exe

    • For browsing pre-existing XMLTV files, simply load them via the Control menu.
    • For acquiring Teletext EPG, set up the TV card driver via the "TV card input" and then enable the "Teletext grabber". Both dialogs can be found in the Configuration menu.

Compilation from source for Windows

  • Note this is NOT required for regular releases for which a pre-compiled binary release is provided. This is required only if you downloaded the latest SW version from github, or if you want to change the software.
  • Fastest way is to cross-compile for Windows under Linux. You need to install "gcc-mingw-w64" package and then type make -f Makefile.win
  • Alternatively you can install GNU/Cygwin on your Windows host, see http://www.cygwin.com/. Most important are packages for make, gcc, mingw ("Minimalistic GNU for Windows") and win32 header files. After installing Cygwin, start a shell, cd to the nxtvepg directory and type "make". If you're not using NT or W2K you may have to adapt the OS detection code in Makefile and/or Makefile.win, i.e. ifeq ($(OS),Windows_NT)
  • To generate the help menus from the documentation in POD format you need Perl5 (not essential unless you want to modify the help menus) from http://www.perl.org/ or as Cygwin package

Problem and bug reports

Before you email me any bug reports, please check the manual page as well as the TODO and CHANGES files. And be comprehensive in describing your problem. At least include names and version numbers of your operating system, nxtvepg, possibly the bttv driver and any other software that may be involved. If it looks like a hardware related problem (e.g. acquisition does not work at all) also include the exact name of you TV card hardware. If DScaler or K!TV work with the same hardware, mail me the version number and describe your hardware configuration settings. If there is an error message, quote the message in full length and exactly as printed, even if you do not understand its relevance.

In case nxtvepg crashes, or if you suspect internal errors, you need to recompile with debug support to allow me to analyze the problem. Please add the -g option to CFLAGS in the Makefile and enable all debug options in mytypes.h by assigning ON instead of OFF. If you know which modules are responsible, you can also comment out DPRINTF_OFF at the top of those modules. Then try to reproduce your problem and send me the resulting debug.out log file.

The latest version of this software is available at: http://github.com/tomzox/nxtvepg

Best way to provide feedback is via email: tomzo (at) users.sourceforge.net

have fun.

nxtvepg's People

Contributors

tomzox avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

newrain7803

nxtvepg's Issues

Windows Application Timezone Issue

Hi. Thanks for this program it's nice. However, I have discovered an issue with the windows app regarding timezones and the current time for today and search filters.

I'm using a windows time zone of +10 UTC, and when the program launches it seems to internally set itself as UTC +0 (or GMT) time, even though it displays the proper local time in the GUI (top left). So if the time is say 9AM and I click the Today shortcut it will find no matching EPG data. This occurs right up until until 10AM on my windows clock. If it's after 10AM then it displays the remainder of Today's shows.

I can trick the program to work as expected by setting the Windows timezone to UTC, and manually set the clock to my local time. And it displays everything as it should.

But the problem I have is that I'd like to view EPGs from Japan +9 while being in Australia +10, and I usually have a batch call before Nxtvepg starts to set the timezone temporarily to Japan, so from Australia the program appear as they're in Japan at the time. And then when I shut the program it resets back to Australia time.

I wonder why the program is internally seeing UTC despite it displaying correct date time in the GUI based on windows clock. Is there any option to correct the timezone within the program? Thanks

Is showing and filtering by "category", "rating", "star-rating" or "actor"(s) possible?

Hi,

I am trying to use nxtvepg with source https://epg.ovh/plar.gz.

It contains entries like:
<programme start="20230531210000 +0200" stop="20230531231000 +0200" channel="HBO"> <title lang="pl">Shazam! Gniew bogów</title> <desc lang="pl">Mijają dwa lata od czasu...</desc> <credits> <director>David F. Sandberg</director> <actor>Shazam - Zachary Levi</actor> <actor>Mary Bromfield - Grace Caroline Currey</actor> </credits> <date>2022</date> <category lang="pl">Komedia Przygodowa</category> <icon src="https://ptv-prod.wpcdn.pl/media/akpa5186289.jpg" /> <country lang="pl">USA</country> <rating> <value>12+</value> </rating> <star-rating> <value>4/10</value> </star-rating> </programme>

Is it possible to display "category", "rating", "star-rating" or "actor"(s) on the main screen grid?
Is it possible to filter by these columns to show programmes of specified category only or of specified rating/start-raging or with specified actor?

Note that category is in Polish not English (so "Komedia Przygodowa" means "Adventure Comedy"). I'm not sure if Polish makes some extra problem for nxtvepg implementation.

My ultimate scenario would be to filter the displayed programmes to e.g. only comedies with some specified actor and with rating greater than specified value. Is it possible?

One more problem (I can extract it to separate issue if needed) - I am not able to search in nxtvepg using Polish diacritics like "ó" or "ą" etc... so I am not able to find title like "bogów" or description like "Mijają" (see my example programme above).

How do I even open this software?

I have 2 EPG.xml files I want to merge and export into 1. But there are no even guides how to open this, import EPG.xml, Merge, Export, Automate etc..

I'm neojugment

HI Tom,

Do you remenber me ?

I'm neojudgment (Pascal) Kastor!TV. Your french nxtvepg Translator some years ago !

If you need me for an installation assistant I'm not far away

neojudgment (Pascal)

Is display of archive programmes supported?

Hi,

I tried, and it seems the program correctly parses the archive data (programmes with start date earlier than today) - it shows statistics how much of data is old - but I haven't find any way to display archive data. I would like to display it and be able to filter it the same way as current/future data.

Is it possible?

Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.