Grabbers

Uit MythTV.nl Wiki

Ga naar: navigatie, zoeken

Inhoud

Introductie

Om Elektronische Programma Gids (EPG) informatie en eventueel zenderinformatie aan te kunnen bieden aan een media center bestaat het standaardprotocol XMLTV. Aangezien er in Nederland geen partijen zijn die de EPG in XMLTV-formaat aanbieden bestaan er 'grabbers'

Een grabber haalt informatie van een webpagina en zet deze informatie om naar XMLTV-formaat. De meeste grabbers in Nederland gebruiken www.tvgids.nl als bronsysteem, maar er zijn ook alternatieven.

Zorg ervoor dat je de XMLTV-software op je systeem hebt staan.

zenders - hier staat info over zenders in Nederland en hoe ze in mythTV te krijgen

Hieronder een overzicht van de grabbers die je in Nederland kunt gebruiken.

Overzicht grabbers

Indien je niet kunt kiezen tussen grabber en niet weet welke grabber je moet gebruiken, kijk dan even bij de gebruikers_ervaringen..

Naam Bronsysteem Onderhoud Cache Zenderlogo's Instelbaar dagen Categorie/Kleur imdb ondersteuning Code Opmerking
tv_grab_nl tvgids.nl minimaal Ja Nee Ja Nee Nee Perl Voorheen onderdeel van XMLTV pakket
tv_grab_nl_py tvgids.nl perfect Ja Ja Ja Ja Nee Python
tv_grab_upc upc.nl Uitstekend Ja Ja Ja Ja Ja Ruby Extra UPC zenders en erg snel
JavaXmlTvCore tvgids.nl geen Ja Ja Ja Ja Ja (star-rating) Java Very configurable. Produces xmltv xml file. Platform independent. KijkWijzer support.
tv_grab_nl_C tvgids.nl en/of upclive.nl matig Ja Ja Ja Ja Ja (star-rating) C compileren van source(make uitvoeren, evt. make install). Sinds juni 2011 geen actieve ontwikkeling meer.
mc2xml microsoft epg goed Ja Ja Ja Ja Nee Closed Gebruikt Microsoft als bron - closed source - bestaat vanaf zomer 08 - erg snel - geen config voor xmltvid
tv_grab_file een valide xmltv file goed nvt nvt nvt nvt nvt Opensource bash script Gebruikt een valide XMLTV file als "bron" en geeft deze 1 op 1 door aan een systeem dat deze wil ontvangen.
tv_grab_nl_java tvgids.nl en/of rtl.nl en/of horizon.tv (UPC) en/of ziggogids.nl actief Ja Ja Ja Ja Nee Java Platform independent, *nix en Windows installers.

XMLTV-grabber installeren

Hieronder is beschreven hoe je de tv_grab_nl_py installeert.

- Download tvgrabnlpy

- Installatie van tvgrabnlpy bij de bron.

  • Download de laatste versie en hernoem deze zo nodig naar: tv_grab_nl_py
  • Maak een backup van je bestaande grabber: mv /usr/bin/tv_grab_nl /usr/bin/tv_grab_nl.backup
  • Maak een symlink naar de nieuwe grabber: ln -s /waar/ik/de/grabber/neerzet/tv_grab_nl_py /usr/bin/tv_grab_nl
  • Maak de grabber executable: chmod ugo+x /waar/ik/de/grabber/neerzet/tv_grab_nl_py

XMLTV-configuratiebestand aanmaken

  • Start MythTV Setup
  • Kies voor Video Sources.
  • Kies voor (Nieuwe videobron).

Er wordt nu eerst gezocht naar geïnstalleerde grabbers. Als je op dit punt geen nieuwe grabbers ziet behalve "North America" en "EIT" dan moet je eerst een "xmltv-util" pakket installeren: sudo apt-get install xmltv-util

Nadat dit klaar is, moet jij terug naar het begin van de vorige hoofdstuk (XMLTV-grabber installeren).

  • Naam videobron: Mijn videobron
  • Listings grabber: The Netherlands (tv_grab_nl_py...)
  • Klik op Beëindigen

Je krijgt onderstaande melding:

Uw grabber levert geen kanaalnummers, die moet u handmatig invoeren.

Dit klopt en is geen probleem; de kanaalnummers verschillen per regio. Verderop is beschreven hoe we de kanalen toevoegen.

Het kan zijn dat de lijst van geinstalleerde grabbers leeg blijft (behoudens de internal, transmitted en no grabber entries). Het probleem is dat Mythtv tegenwoordig met zoveel grabbers geinstalleerd komt dat het niet lukt deze allemaal te parsen binnen de gestelde timeout van ca 30 seconden. De oplossing hiervoor is veel ongebruikte tv_grab_xxx files uit /usr/bin te verwijderen en nogmaals te proberen.

Koppelen aan zenders (XMLTV ID)

Om de zenderindeling te koppelen aan de Elektronische Programma Gids (EPG) gebruikt mythTV een op XML gebaseerd TeleVisie IDentificatie nummer, ofwel een XML'TV'ID. De XMLTVID is een van de belangrijkste punten om de EPG goed te laten functioneren.


Helaas is de XMLTVID afhankelijk van de grabber die je gebruikt en maakt dit het lastig.


Algemeen

Elke grabber komt met een configuratiebestand waar de verschillende zenders in staan. Het configuratie bestand voor de grabber staat voor de meeste grabbers in ~./mythtv or ~./xmltv. In het configuratie bestand staan de zender en zendernummers zoals ze van het bronsysteem (bv tvgids.nl) afkomen.

Tip: tv_grab_nl_py gebruikt standaard ~/.xmltv/tv_grab_py.conf

Voorbeeld van een willekeurig aantal zenders:

cat tv_grab_py.conf

1 Nederland 1

2 Nederland 2

3 Nederland 3

4 RTL 4

36 SBS6

7 BBC 1

8 BBC 2

25 MTV


De nummers die je in het configuratiebestand ziet staan, zijn de XMLTVID. Je kunt ze in mythtv-setup bij de zenders invullen. Het nummer dat je hier ziet zegt niets over het kanaal nummer waarop de zender staat. Voorbeeld: MTV mag bij jou op zender 10 staat, terwijl de XMLTVID 25 is.


XMLTVID is de lijm tussen de zendertabel en de EPG die je van de grabber krijgt.


Hieronder volgt een voorbeeld mysql commando om een overzicht te krijgen van de zender tabel en de xml tv id's.

mysql commando:

mysql -uusername -ppassword mythconverg  -e 'SELECT chanid, channum, callsign, name, sourceid, freqid, xmltvid FROM `channel` ';

voorbeeld van een aantal kanalen uit mijn tabel, kijk naar xmltvid

+--------+---------+----------------------+-----------------------------+----------+--------+---------+
| chanid | channum | callsign             | name                        | sourceid | freqid | xmltvid |
+--------+---------+----------------------+-----------------------------+----------+--------+---------+
|      1 | 1       | Nederland 1          | Nederland 1                 |        1 | 768000 | 1       |
|      2 | 2       | Nederland 2          | Nederland 2                 |        1 | 776000 | 2       |
|      3 | 3       | Nederland 3          | Nederland 3                 |        1 | 784000 | 3       |
|      4 | 4       | RTL 4                | RTL 4                       |        1 | 752000 | 4       |
|      6 | 6       | SBS 6                | SBS 6                       |        1 | 736000 | 36      |
|     17 | 17      | BBC 1                | BBC 1                       |        1 | 648000 | 7       |
|     18 | 18      | BBC 2                | BBC 2                       |        1 | 656000 | 8       |
|     26 | 26      | MTV                  | MTV                         |        1 | 480000 | 25      |
+--------+---------+----------------------+-----------------------------+----------+--------+---------+


De XMLTVID's in de channel tabel van de mythconverg database moeten hetzelfde zijn als de nummers in het configuratie bestand van je grabber (bv tv_grab_py.conf)


De XMLTVID in de database kun je met 3 verschillende tools wijzingen:


1. mythtv-setup

Kies opties 5 channel editor en geef enter op een zender om XMLTVID te zien/wijzigen


2. mythweb

Zorg ervoor dat mythweb draait.

http://<<your IP address>>/mythweb/settings/tv/channels


3. phpMyAdmin

Zorg ervoor dat phpMyAdmin op je systeem staat en draait.

a) Selecteer mythconverg als database b) Selecteer de channel tabel c) Kies Browse

Automatisch toevoegen van kanalen met zendernummers (TVfreq)

Hieronder is beschreven hoe je geheel automatisch de kanalen voor jouw regio, mét zendernummers kunt toevoegen aan de MythTV-database met behulp van de online LauPro's TVfreq tool.

Download een zendertabel (channels.sql) voor jouw regio

Maak een zender-databestand aan via LauPro's TVFreq, de zenderoverzichtconfiguratieaanmaker.

Kies de juiste aanbieder en gemeente uit de lijst. Kies als exportformaat MythTV: channels.sql. Klik op Verder >> en vervolgens op Download. Bewaar het channels.sql-bestand in de ~/.mythtv-directory onder de originele bestandsnaam.

( De .mythtv is een verborgen directory en wellicht niet zichtbaar wanneer je gaat opslaan. Klik rechts in de opslaan als-dialoog en vink verborgen bestanden tonen aan. )

Map de xmltvid uit de zendertabel op de kanalenlijst van je grabber

mapxmltvid is een (php) scriptje dat de SQL code van channels.sql aanvult met de xmltvid's van je grabber (in Mijn videobron.xmltv) De uitvoer is channels.sql.out. Als je dit gebruikt, in plaats van channels.sql, dan heb je in één keer de namen en de xmltvid's in je mythtv database, zodat je zonder meer mythfilldatabase kunt draaien.


Ga op de commandline naar de .mythtv directory waar je net ook channels.sql hebt opgeslagen. In de setup is hier (door de grabber) achter de schermen een configuratiebestand aangemaakt (Mijn videobron.xmltv).

cd ~/.mythtv
ls channels.sql
ls Mijn\ videobron.xmltv   

Deze twee heb je allebei nodig.

Let op: het kan ook zijn dat je .xmltv bestand tv_grab_nl_py.xmltv heet! Maak in dat geval even een linkje:

ln -s tv_grab_nl_py.xmltv Mijn\ videobron.xmltv
ls -l ls Mijn\ videobron.xmltv

Haal nu het mapxmltvid script op en voer het uit. De uitvoer komt te staan in channels.sql.out.

sudo apt-get install php5-cli
wget http://nfvpinball.com/mythtv/mapxmltvid
chmod +x mapxmltvid
./mapxmltvid

Let op: soms worden niet alle namen gevonden! In dat geval kun je het mapxmltvid script aanpassen om de mapping van de kanaalnamen te veranderen. De niet gevonden namen worden niet toegevoegd aan channels.sql.out. Gevolg is dus dat deze channels dus niet kan kijken.

Merge de nieuwe en de oude channels.sql

Met dit tooltje van BozeWolf is het mogelijk de originele channels.sql met die van channels.sql.out te mergen. De channels die weggelaten zijn, door mapxmltvid, worden met dit script weer toegevoegd. De nieuw toegevoegde zender namen matchen nog niet met Mijn Videobron.xmltv en zullen dus geen tvgids ingeladen krijgen. Dit moet (nog) handmatig gefixed worden in phpmyadmin. Dit kun je doen door in de mythconverg database de channels tabel te editen.

wget http://mediaserver.koelkast.net/~roel/misc/mergechannelssql.py
chmod +x mergechannelssql.py
nano -w mergechannelssql.py

Check of deze gegevens naar het juiste bestand verwijzen.

sql = "./channels.sql"

sqlout = "./channels.sql.out"

newSQLout = "./channels-merged.sql"

sluit af met ctrl-W ctrl-X.

./mergechannelssql.py

Dit genereert channels-merged.sql. Deze kun je toevoegen aan je database. Bij duplicate entry warnings moet je eerst de channels table leeg maken. Dit doe je in MythTV BackEnd Stetup -> Channels -> Delete.

Toevoegen van de aangepaste zendertabel (channels-merged.sql aan de mythconverg database)
mysql -u mythtv -p mythconverg < channels-merged.sql
Controleren welke zenders niet herkend worden voor de tvgids

Voor het volgende commando uit:

mysql -u mythtv -p mythconverg -e "select chanid, callsign, name, xmltvid from channel;"

De tabel laat zien welke zenders bij welk xmltvid hoort. Op plekken waar xmltvid leeg is, is er geen gevonden. Kijk dan in Mijn\ videobron.xmltv welk nummer er voor dat kanaal staat. Voeg dit handmatig toe aan de channel table, via phpmyadmin, of door het kanaal op te zoeken en dan 'e' te drukken. In het vakje xmltvid kan het nummer ingevuld worden.

+--------+----------------------+------------------------------+---------+
| chanid | callsign             | name                         | xmltvid |
+--------+----------------------+------------------------------+---------+
|      1 | Nederland 1          | Nederland 1                  | 1       | 
|      2 | Nederland 2          | Nederland 2                  | 2       | 
|      3 | Nederland 3          | Nederland 3                  | 3       | 
|      4 | RTL 4                | RTL 4                        | 4       | 
|      5 | RTL 5                | RTL 5                        | 31      | 
|      6 | SBS 6                | SBS 6                        | 36      | 
|      7 | RTL 7                | RTL 7                        | 46      | 
|      8 | RTL 8                | RTL 8                        | 92      | 
|      9 | Net 5                | Net 5                        | 37      | 
|     10 | Veronica / Jetix     | Veronica / Jetix             | 34      | 
|     11 | Discovery Channel    | Discovery Channel            | 29      | 
|     12 | National Geographic  | National Geographic / CNBC   | 18      | 
|     13 | Animal Planet        | Animal Planet                | 65      | 
|     14 | Een                  | één                        | 5       | 
|     15 | Ketnet / Canvas      | Ketnet / Canvas              | 6       | 
|     16 | Nickelodeon / Comedy | Nickelodeon / Comedy Central | 91      | 
|     17 | Regio TV Utrecht     | Regio TV Utrecht             | 100     | 
|     18 | Eurosport            | Eurosport                    | 19      | 
|     19 | MTV                  | MTV                          | 25      | 
|     20 | Ziggo Service Kanaa  | Ziggo Service Kanaal         |         | 
|     21 | TMF                  | TMF                          | 35      | 
|     22 | BBC 1                | BBC 1                        | 7       | 
|     23 | BBC 2                | BBC 2                        | 8       | 
|     24 | ARD                  | ARD                          | 9       | 
|     25 | ZDF                  | ZDF                          | 10      | 
|     26 | Etalagekanaal        | Etalagekanaal                |         | 
|     27 | TV5 Monde            | TV5 Monde                    | 17      | 
|     28 | CNN International    | CNN International            | 26      | 
|     29 | BBC World            | BBC World                    | 86      | 
|     30 | Het Gesprek          | Het Gesprek                  | 84      | 
|     31 | Rai Uno              | Rai Uno                      | 27      | 
|     32 | ERT Sat              | ERT Sat                      | 28      | 
|     33 | arte                 | arte                         | 38      | 
|     34 | Stads TV Utrecht     | Stads TV Utrecht             |         | 
+--------+----------------------+------------------------------+---------+

Grabber testen

Hierbij halen we programma-informatie op voor een enkele zender. Vervolgens controleren we in MythTV of de informatie is opgenomen in de Electronische Porgrammagid (EPG).

  • Zenders uitschakelen

We wijzigen het XMLTV-configuratiebestand om er voor te zorgen dat er alleen van Nederland 1 informatie wordt opgehaald.

cd .mythtv
pico Mijn videobron.xmltv

Zet een # voor elke regel, behalve die met Nederland 1.

1 Nederland 1
#2 Nederland 2
#3 Nederland 3
#4 RTL 4
...
  • Programma-informatie ophalen
sudo /etc/init.d/mythbackend start
mythfilldatabase -v all --refresh-today

Dit kan even duren de eerste keer dat je informatie ophaalt. Als het te snel afloopt en jij geen "Now fetching Nederland 1" in de terminal-scherm ziet, dan is er iets fout. Controlleer of er in de ~/.mythtv map een bestand bestaat met hetzelfde naam als de "Video Source" (videobron.xmltv) die jij had aangemaakt in de Mythtv backend (zie "XMLTV-configuratiebestand aanmaken").

Uitleg van de flags:

-v all: verbose, laat alle messages zien, hier is zichtbaar op hoeveel % mythfilldatabase is.

--refresh-today: haal alleen de programma informatie van vandaag op.

Na afloop is de database gevuld met de programmering van Nederland 1 voor vandaag.


  • Controleren in MythTV

Starten MythTV

mythfrontend

Kies voor TV kijken, druk op M en kies vervolgens voor Programmagids.

Op de regel met Nederland 1 zie je nu de programmering met gekleurde blokken.

Als het bovenstaande gelukt is kun je het commentaar-teken (#) voor alle zenders waarin je geïnteresseerd bent weer weghalen en mythfilldatabase opnieuw uitvoeren.

Zender logo's

Zoals in je de grabber tabel kunt zien halen de meeste grabbers de logo's van de zenders automatisch voor je op. Indien je grabber dit niet voor je doet, kun je de logo's zelf downloaden en in ~/.mythtv/channels bewaren.

- Fambus logos

- TU Delft Paul

- Wobbo PNG Logo's

- Lyngsat Logo - Netherlands (Television)

- Lyngsat Logo - Netherlands (Radio)

IMDB waardering toevoegen aan de EPG

Een onderdeel van de XMLTV software is tv_imdb. De tv_imdb module kan de XMLTV informatie verrijken met informatie uit de Internet Movie Database. Hierdoor krijg je o.a. de waardering volgens imdb in je filmoverzicht en kun je b.v. selecties doen op waardering en/of acteurs.

- Internet Movie Database

STAP 1 - Maak een lokale kopie van de IMDB database
tv_imdb --imdbdir /myimdbdir --prepStage all --download


STAP 2 - Verander de mythfilldatabase procedure

Het volgende script gaat ervan uit dat je tv_grab_nl_py gebruik

/path_to_grabber/tv_grab_nl_py --output /tempdir/epg.xml --days 14
tv_imdb --imdbdir /myimdbdir --stats --quiet --output /tempdir/epg_imdb.xml /tempdir/epg.xml
mythfilldatabase --file 1 -1 /tempdir/epg_imdb.xml

= = Online TV Guides

Here is a list of online TV guides in Netherlands

Sjabloon:Web Sjabloon:Web www.tvgids.nl|TVGids.nl Sjabloon:Web www.tv-vanavond.nl|TV Vanavond Sjabloon:Web Sjabloon:Web Sjabloon:Web Sjabloon:Web Sjabloon:Web

Handige scripts en commandline voorbeelden

check epg dagen in db

SQL='SELECT TO_DAYS(max(endtime)) - TO_DAYS(now()) FROM program;'
EPG_DB_DAYS=`mysql -uuser -ppassword --skip-column-names -B -D mythconverg --execute "$SQL"`
if [ $EPG_DB_DAYS -lt 8 ];
then
  # mythfilldatabase ofzo
  echo "Grabber moet draaien"
else
  # alles is ok
  echo "$EPG_DB_DAYS dagen in de database."
fi

zie ook

- Mythvosd mythTV wiki page

filmoverzicht

mysql -uuser -ppassword mythconverg -e 'SELECT title, airdate, stars, starttime  FROM `program`  WHERE category_type = "movie"  ';

zender overzicht

mysql -uuser -ppassword mythconverg -e 'SELECT name, freqid, chanid, channum, xmltvid  FROM `channel`  WHERE sourceid = "1"  ';

opgenomen films

Overzicht opgenomen films en hun bestandsnamen

mysql -uuser -ppassword mythconverg -B --exec 'SELECT basename,title FROM `recorded` WHERE category = "movies" or category = "movie" ';

Wekelijkse download van tv_grab_nl_py

Het wekelijks of zelfs dagelijks downloaden van de meeste recente "gepubliceerde" versie van tv_grab_nl_py kan met het volgende script:

#!/bin/sh
wget --quiet -O /PATH/TO/tv_grab_nl_py http://tvgrabnlpy.googlecode.com/files/tv_grab_nl-latest_0.py
# of als je provider geen wget ondersteunt maar wel curl:
#curl --silent http://tvgrabnlpy.googlecode.com/files/tv_grab_nl-latest_0.py > /PATH/TO/tv_grab_nl_py
chmod 755 /PATH/TO/tv_grab_nl_py

Het is ook mogelijk om de development versie te downloaden:

#!/bin/sh
wget --quiet -O /PATH/TO/tv_grab_nl_py http://tvgrabnlpy.googlecode.com/git/tv_grab_nl.py
# of als je provider geen wget ondersteunt maar wel curl:
#curl --silent http://tvgrabnlpy.googlecode.com/git/tv_grab_nl.py > /PATH/TO/tv_grab_nl_py
chmod 755 /PATH/TO/tv_grab_nl_py

Maar als je de development versie wil hebben wordt aangeraden om git te gebruiken:

% git clone https://code.google.com/p/tvgrabnlpy/

en dan dagelijks dit updaten:

% cd tvgrabnlpy/
% git pull origin

Gebruikers ervaringen

maart 2012: Rick gebruikt geen enkele genoemde grabber. Geen enkele variant wil zonder problemen draaien.

dec 2007: Moosy gebruikt tv_grab_nl_py, inclusief imdb waardering. Een script checked aantal dagen in DB voordat grabber draait. Indien er het aantal dagen in DB < 8 blijft dan update ik de grabber met een wget.

dec 2007: Michel gebruikt tv_grab_nl_py en is daar erg over te spreken. Binnenkort de imdb support even aanslingeren...

Persoonlijke instellingen