[SOLVED] What inserts programid entries in my DB?

Have a MythTV related problem? Ask for help from other MythTV users here.

Moderator: Forum Moderators

Post Reply
Manul
Junior
Posts: 15
Joined: Tue Feb 20, 2018 11:23 am
Germany

[SOLVED] What inserts programid entries in my DB?

Post by Manul »

I have one single video source for which I have set no xmltv grabber:

Code: Select all

mysql> select * from videosource;
+----------+--------+--------------+--------+-------------+----------+----------+--------+------------+------------+
| sourceid | name   | xmltvgrabber | userid | freqtable   | lineupid | password | useeit | configpath | dvb_nit_id |
+----------+--------+--------------+--------+-------------+----------+----------+--------+------------+------------+
|        1 | DVB-T2 | /bin/true    |        | europe-west | NULL     | NULL     |      0 | NULL       |         -1 |
+----------+--------+--------------+--------+-------------+----------+----------+--------+------------+------------+
I do a manual grabber run and run mythfilldatabase with the resulting xmltv file after correcting some errors in that (epsiode name in title instead of subtitle). There are no programid entries in the xmltv file and if I delete everything from the "program" table and then run mythfilldatabase there are none in the DB either. However, something seems to insert them later:

Code: Select all

mysql> select title,subtitle,starttime,programid from program where title like "Tatort%";                                                                                            +---------------------------------------+-------------------------------------+---------------------+------------+
| title                                 | subtitle                            | starttime           | programid  |
+---------------------------------------+-------------------------------------+---------------------+------------+
...
| Tatort                                | Anne und der Tod                    | 2019-05-19 18:15:00 | MV94942868 |
| Tatort                                | Bienzle und der Tag der Rache       | 2019-06-05 20:00:00 | MV94942868 |
...
This wouldn't be so bad if the something didn't insert the same programid for all episodes of some programs I want to record (see above).

That way, mythtv thinks all upcoming episodes are reruns and doesn't record anything.

Obviously, I want to stop that from happening. So can anybody explain what inserts the programids and how I can stop it?

Thank you very much in advance!
Last edited by Manul on Thu May 23, 2019 3:12 pm, edited 1 time in total.
Manul
Junior
Posts: 15
Joined: Tue Feb 20, 2018 11:23 am
Germany

Re: What inserts programid entries in my DB?

Post by Manul »

I've done some further observing but without much success at finding the cause:

The programids apparently get inserted by the mythfilldatabase run itself. The command I use is

Code: Select all

mythfilldatabase --file --sourceid 1 --xmlfile xmltv.xml
The inserted programid ("MV94942868" for "Tatort") is nowhere to be found in the xml file. A web search for it does not return anything either. In the verbose log of the mythfilldatabase run I see a couple of entries with it:

Code: Select all

2019-05-23 12:24:34.963540 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) SELECT count(*) FROM program WHERE chanid          = '10769'     AND       starttime       = '2019-05-26T18:20:00Z'      AND       endtime         = '2019-05-26T19:50:00Z'        AND       title           = 'Tatort'      AND       subtitle        = 'Die ewige Welle'   AND       description     = 'Mikesch, Eisbachsurfer und ein früherer Freund Leitmayrs, wird Opfer einer Messerattacke. Er überlebt schwer verletzt. Doch anstatt zu kooperieren, flüchtet der schräge Vogel aus dem Krankenhaus und verschwindet vom Radar der Ermittler. Mikesch hat ein Geschäft abzuwickeln, bei dem die Polizei stört. Die Zeit drängt.'       AND       category        = 'movie'   AND       category_type   = 'movie'_TYPE AND       airdate         = '2019'    AND       stars >= ('0' - 0.001)    AND       stars <= ('0' + 0.001)    AND       previouslyshown = 'false' AND       title_pronounce = 'Tatort'_PRONOUNCE AND       audioprop       = '8'  AND       videoprop       = '0'  AND       subtitletypes   = '0'   AND       partnumber      = '0' AND       parttotal       = '0'  AND       seriesid        = '94942868'   AND       showtype        = ''   AND       colorcode       = ''  AND       syndicatedepisodenumber = '' AND       programid       = 'MV94942868'  AND       inetref         = '' <<<< Took 2ms, Returned 1 row(s)
2019-05-23 12:24:34.974035 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) REPLACE INTO program (  chanid,         title,          subtitle,        description,   category,       category_type,    starttime,      endtime,   closecaptioned, stereo,         hdtv,            subtitled,   subtitletypes,  audioprop,      videoprop,   partnumber,     parttotal,   syndicatedepisodenumber,   airdate,        originalairdate,listingsource,   seriesid,       programid,      previouslyshown,   stars,          showtype,       title_pronounce, colorcode,   season,         episode,        totalepisodes,   inetref ) VALUES( '10769',        'Tatort',         'Die ewige Welle',       'Mikesch, Eisbachsurfer und ein früherer Freund Leitmayrs, wird Opfer einer Messerattacke. Er überlebt schwer verletzt. Doch anstatt zu kooperieren, flüchtet der schräge Vogel aus dem Krankenhaus und verschwindet vom Radar der Ermittler. Mikesch hat ein Geschäft abzuwickeln, bei dem die Polizei stört. Die Zeit drängt.',  'movie',      'movie',        '2019-05-26T18:20:00Z',     '2019-05-26T19:50:00Z',  'false',            'false',        'false',           'false',  '0',      '8',     '0',  '0',    '0',  '',  '2019',       '',   '4',  '94942868',      'MV94942868',     'false',  '0',         '',      'Tatort'PRON,      '',  '0',        '0',       '0',  '' ) <<<< Took 1ms
2019-05-23 12:24:35.172144 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) SELECT count(*) FROM program WHERE chanid          = '10769'     AND       starttime       = '2019-05-27T22:35:00Z'      AND       endtime         = '2019-05-28T00:08:00Z'        AND       title           = 'Tatort'      AND       subtitle        = 'Die ewige Welle'   AND       description     = ''       AND       category        = 'movie'   AND       category_type   = 'movie'_TYPE AND       airdate         = '2019'    AND       stars >= ('0' - 0.001)    AND       stars <= ('0' + 0.001)    AND       previouslyshown = 'false' AND       title_pronounce = 'Tatort'_PRONOUNCE AND       audioprop       = '0'  AND       videoprop       = '0'  AND       subtitletypes   = '0'   AND       partnumber      = '0' AND       parttotal       = '0'  AND       seriesid        = '94942868'   AND       showtype        = ''   AND       colorcode       = ''  AND       syndicatedepisodenumber = '' AND       programid       = 'MV94942868'  AND       inetref         = '' <<<< Took 2ms, Returned 1 row(s)
2019-05-23 12:24:35.181028 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) REPLACE INTO program (  chanid,         title,          subtitle,        description,   category,       category_type,    starttime,      endtime,   closecaptioned, stereo,         hdtv,            subtitled,   subtitletypes,  audioprop,      videoprop,   partnumber,     parttotal,   syndicatedepisodenumber,   airdate,        originalairdate,listingsource,   seriesid,       programid,      previouslyshown,   stars,          showtype,       title_pronounce, colorcode,   season,         episode,        totalepisodes,   inetref ) VALUES( '10769',        'Tatort',         'Die ewige Welle',       '',  'movie',      'movie',        '2019-05-27T22:35:00Z',     '2019-05-28T00:08:00Z',  'false',            'false',        'false',           'false',  '0',      '0',     '0',  '0',    '0',  '',  '2019',       '',   '4',  '94942868',      'MV94942868',     'false',  '0',         '',      'Tatort'PRON,      '',  '0',        '0',       '0',  '' ) <<<< Took 1ms
2019-05-23 12:24:36.109067 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) SELECT count(*) FROM program WHERE chanid          = '10769'     AND       starttime       = '2019-06-03T22:35:00Z'      AND       endtime         = '2019-06-04T00:08:00Z'        AND       title           = 'Tatort'      AND       subtitle        = 'Glück allein'   AND       description     = '(Erstsendung 2.6.2019)'       AND       category        = 'movie'   AND       category_type   = 'movie'_TYPE AND       airdate         = '2018'    AND       stars >= ('0' - 0.001)    AND       stars <= ('0' + 0.001)    AND       previouslyshown = 'false' AND       title_pronounce = 'Tatort'_PRONOUNCE AND       audioprop       = '8'  AND       videoprop       = '0'  AND       subtitletypes   = '0'   AND       partnumber      = '0' AND       parttotal       = '0'  AND       seriesid        = '94942868'   AND       showtype        = ''   AND       colorcode       = ''  AND       syndicatedepisodenumber = '' AND       programid       = 'MV94942868'  AND       inetref         = '' <<<< Took 1ms, Returned 1 row(s)
2019-05-23 12:24:36.117174 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) REPLACE INTO program (  chanid,         title,          subtitle,        description,   category,       category_type,    starttime,      endtime,   closecaptioned, stereo,         hdtv,            subtitled,   subtitletypes,  audioprop,      videoprop,   partnumber,     parttotal,   syndicatedepisodenumber,   airdate,        originalairdate,listingsource,   seriesid,       programid,      previouslyshown,   stars,          showtype,       title_pronounce, colorcode,   season,         episode,        totalepisodes,   inetref ) VALUES( '10769',        'Tatort',         'Glück allein',       '(Erstsendung 2.6.2019)',  'movie',      'movie',        '2019-06-03T22:35:00Z',     '2019-06-04T00:08:00Z',  'false',            'false',        'false',           'false',  '0',      '8',     '0',  '0',    '0',  '',  '2018',       '',   '4',  '94942868',      'MV94942868',     'false',  '0',         '',      'Tatort'PRON,      '',  '0',        '0',       '0',  '' ) <<<< Took 1ms
2019-05-23 12:24:36.968311 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) SELECT count(*) FROM program WHERE chanid          = '10769'     AND       starttime       = '2019-06-10T18:15:00Z'      AND       endtime         = '2019-06-10T19:45:00Z'        AND       title           = 'Tatort'      AND       subtitle        = 'Kaputt'   AND       description     = 'Eigentlich sollten die Polizisten Melanie Sommer (Anna Brüggemann) und Frank Schneider bei einer lauten Feier in einem Wohnhaus nur für Ruhe sorgen. Doch wenig später wird die junge Kriminalbeamtin verletzt und traumatisiert im Garten des Hauses aufgefunden. Ihr Kollege wurde so brutal zusammengeschlagen, dass für ihn jede Hilfe zu spät kommt. Der Polizistenmord sorgt nicht nur im Präsidium und in der Presse für Aufregung. Auch Frank Schneiders Lebensgefährte Stefan Pohl (Max Simonischek) kann den Verlust nicht fassen: Die beiden hatten sich im Dienst kennengelernt. Die Beziehung sah der Dienststellenleiter Bernd Schäfer (Götz Schubert) nicht gern. Auch, dass die Mordkommission jetzt die eigenen Leute überprüft, passt ihm gar nicht ...'       AND       category        = 'movie'   AND       category_type   = 'movie'_TYPE AND       airdate         = '2019'    AND       stars >= ('0' - 0.001)    AND       stars <= ('0' + 0.001)    AND       previouslyshown = 'false' AND       title_pronounce = 'Tatort'_PRONOUNCE AND       audioprop       = '8'  AND       videoprop       = '0'  AND       subtitletypes   = '0'   AND       partnumber      = '0' AND       parttotal       = '0'  AND       seriesid        = '94942868'   AND       showtype        = ''   AND       colorcode       = ''  AND       syndicatedepisodenumber = '' AND       programid       = 'MV94942868'  AND       inetref         = '' <<<< Took 2ms, Returned 1 row(s)
2019-05-23 12:24:36.979793 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) REPLACE INTO program (  chanid,         title,          subtitle,        description,   category,       category_type,    starttime,      endtime,   closecaptioned, stereo,         hdtv,            subtitled,   subtitletypes,  audioprop,      videoprop,   partnumber,     parttotal,   syndicatedepisodenumber,   airdate,        originalairdate,listingsource,   seriesid,       programid,      previouslyshown,   stars,          showtype,       title_pronounce, colorcode,   season,         episode,        totalepisodes,   inetref ) VALUES( '10769',        'Tatort',         'Kaputt',       'Eigentlich sollten die Polizisten Melanie Sommer (Anna Brüggemann) und Frank Schneider bei einer lauten Feier in einem Wohnhaus nur für Ruhe sorgen. Doch wenig später wird die junge Kriminalbeamtin verletzt und traumatisiert im Garten des Hauses aufgefunden. Ihr Kollege wurde so brutal zusammengeschlagen, dass für ihn jede Hilfe zu spät kommt. Der Polizistenmord sorgt nicht nur im Präsidium und in der Presse für Aufregung. Auch Frank Schneiders Lebensgefährte Stefan Pohl (Max Simonischek) kann den Verlust nicht fassen: Die beiden hatten sich im Dienst kennengelernt. Die Beziehung sah der Dienststellenleiter Bernd Schäfer (Götz Schubert) nicht gern. Auch, dass die Mordkommission jetzt die eigenen Leute überprüft, passt ihm gar nicht ...',  'movie',      'movie',        '2019-06-10T18:15:00Z',     '2019-06-10T19:45:00Z',  'false',            'false',        'false',           'false',  '0',      '8',     '0',  '0',    '0',  '',  '2019',       '',   '4',  '94942868',      'MV94942868',     'false',  '0',         '',      'Tatort'PRON,      '',  '0',        '0',       '0',  '' ) <<<< Took 1ms
2019-05-23 12:24:37.028566 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) SELECT count(*) FROM program WHERE chanid          = '10769'     AND       starttime       = '2019-06-10T23:30:00Z'      AND       endtime         = '2019-06-11T01:00:00Z'        AND       title           = 'Tatort'      AND       subtitle        = 'Kaputt'   AND       description     = ''       AND       category        = 'movie'   AND       category_type   = 'movie'_TYPE AND       airdate         = '2019'    AND       stars >= ('0' - 0.001)    AND       stars <= ('0' + 0.001)    AND       previouslyshown = 'false' AND       title_pronounce = 'Tatort'_PRONOUNCE AND       audioprop       = '8'  AND       videoprop       = '0'  AND       subtitletypes   = '0'   AND       partnumber      = '0' AND       parttotal       = '0'  AND       seriesid        = '94942868'   AND       showtype        = ''   AND       colorcode       = ''  AND       syndicatedepisodenumber = '' AND       programid       = 'MV94942868'  AND       inetref         = '' <<<< Took 2ms, Returned 1 row(s)
2019-05-23 12:24:37.036602 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) REPLACE INTO program (  chanid,         title,          subtitle,        description,   category,       category_type,    starttime,      endtime,   closecaptioned, stereo,         hdtv,            subtitled,   subtitletypes,  audioprop,      videoprop,   partnumber,     parttotal,   syndicatedepisodenumber,   airdate,        originalairdate,listingsource,   seriesid,       programid,      previouslyshown,   stars,          showtype,       title_pronounce, colorcode,   season,         episode,        totalepisodes,   inetref ) VALUES( '10769',        'Tatort',         'Kaputt',       '',  'movie',      'movie',        '2019-06-10T23:30:00Z',     '2019-06-11T01:00:00Z',  'false',            'false',        'false',           'false',  '0',      '8',     '0',  '0',    '0',  '',  '2019',       '',   '4',  '94942868',      'MV94942868',     'false',  '0',         '',      'Tatort'PRON,      '',  '0',        '0',       '0',  '' ) <<<< Took 1ms
2019-05-23 12:24:59.463985 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) SELECT count(*) FROM program WHERE chanid          = '10994'     AND       starttime       = '2019-06-05T20:00:00Z'      AND       endtime         = '2019-06-05T21:25:00Z'        AND       title           = 'Tatort'      AND       subtitle        = 'Bienzle und der Tag der Rache'   AND       description     = '10.03.2002 Das Erste'       AND       category        = 'movie'   AND       category_type   = 'movie'_TYPE AND       airdate         = '2002'    AND       stars >= ('0' - 0.001)    AND       stars <= ('0' + 0.001)    AND       previouslyshown = 'false' AND       title_pronounce = 'Tatort'_PRONOUNCE AND       audioprop       = '0'  AND       videoprop       = '2'  AND       subtitletypes   = '0'   AND       partnumber      = '0' AND       parttotal       = '0'  AND       seriesid        = '94942868'   AND       showtype        = ''   AND       colorcode       = ''  AND       syndicatedepisodenumber = '' AND       programid       = 'MV94942868'  AND       inetref         = '' <<<< Took 2ms, Returned 1 row(s)
2019-05-23 12:24:59.475491 I [4884/4884] CoreContext mythdbcon.cpp:716 (exec) - MSqlQuery::exec(DBManager1) REPLACE INTO program (  chanid,         title,          subtitle,        description,   category,       category_type,    starttime,      endtime,   closecaptioned, stereo,         hdtv,            subtitled,   subtitletypes,  audioprop,      videoprop,   partnumber,     parttotal,   syndicatedepisodenumber,   airdate,        originalairdate,listingsource,   seriesid,       programid,      previouslyshown,   stars,          showtype,       title_pronounce, colorcode,   season,         episode,        totalepisodes,   inetref ) VALUES( '10994',        'Tatort',         'Bienzle und der Tag der Rache',       '10.03.2002 Das Erste',  'movie',      'movie',        '2019-06-05T20:00:00Z',     '2019-06-05T21:25:00Z',  'false',            'false',        'false',           'false',  '0',      '0',     '2',  '0',    '0',  '',  '2002',       '',   '4',  '94942868',      'MV94942868',     'false',  '0',         '',      'Tatort'PRON,      '',  '0',        '0',       '0',  '' ) <<<< Took 1ms
Not all episodes if "Tatort" get the programid inserted:

Code: Select all

mythtv@mythtv:~$ mysql -e 'select title,subtitle,programid from program where title like "Tatort"'
+--------+-------------------------------+------------+
| title  | subtitle                      | programid  |
+--------+-------------------------------+------------+
| Tatort | Abschaum                      |            |
| Tatort | Anne und der Tod              |            |
| Tatort | Anne und der Tod              |            |
| Tatort | Bienzle und der Tag der Rache | MV94942868 |
| Tatort | Das Mädchen am Klavier        |            |
| Tatort | Das Monster von Kassel        |            |
| Tatort | Das Monster von Kassel        |            |
| Tatort | Das Recht, sich zu sorgen     |            |
| Tatort | Das Recht, sich zu sorgen     | MV94942868 |
| Tatort | Das schwarze Haus             |            |
| Tatort | Der Frauenflüsterer           | MV94942868 |
| Tatort | Der schwedische Freund        |            |
| Tatort | Der Wüstensohn                | MV94942868 |
| Tatort | Die ewige Welle               | MV94942868 |
| Tatort | Die ewige Welle               | MV94942868 |
| Tatort | Durchgedreht                  |            |
| Tatort | Eine bessere Welt             |            |
| Tatort | Eine bessere Welt             |            |
| Tatort | Fangschuss                    | MV94942868 |
| Tatort | Finale am Rothenbaum          |            |
| Tatort | Glück allein                  | MV94942868 |
| Tatort | Glück allein                  | MV94942868 |
| Tatort | Ihr Kinderlein kommet         | MV94942868 |
| Tatort | Im Schmerz geboren            |            |
| Tatort | Kaputt                        | MV94942868 |
| Tatort | Kaputt                        | MV94942868 |
| Tatort | Kartenhaus                    | MV94942868 |
| Tatort | Kartenhaus                    | MV94942868 |
| Tatort | Kinderland                    | MV94942868 |
| Tatort | Mord hinterm Deich            |            |
| Tatort | Nachbarn                      |            |
| Tatort | Nachbarn                      |            |
| Tatort | Parteifreunde                 |            |
| Tatort | Satisfaktion                  | MV94942868 |
| Tatort | Schichtwechsel                | MV94942868 |
| Tatort | Schwanensee                   |            |
| Tatort | Sonnenwende                   |            |
| Tatort | Tödliche Habgier              | MV94942868 |
| Tatort | Tödliche Souvenirs            |            |
| Tatort | Treibjagd                     |            |
+--------+-------------------------------+------------+
One of the affected entries in the xml file looks like:

Code: Select all

  <programme start="20190526202000 +0200" stop="20190526215000 +0200" channel="hd.daserste.de">
    <title lang="de">Tatort</title>
    <sub-title>Die ewige Welle</sub-title>
    <desc lang="de">Mikesch, Eisbachsurfer und ein früherer Freund Leitmayrs, wird Opfer einer Messerattacke. Er überlebt schwer verletzt. Doch anstatt zu kooperieren, flüchtet der schräge Vogel aus dem Krankenhaus und verschwindet vom Radar der Ermittler. Mikesch hat ein Geschäft abzuwickeln, bei dem die Polizei stört. Die Zeit drängt.</desc>
    <credits>
      <director>Andreas Kleinert</director>
      <actor role="Kriminalhauptkommissar Ivo Batic">Miroslav Nemec</actor>
      <actor role="Kriminalhauptkommissar Franz Leitmayr">Udo Wachtveitl</actor>
      <actor role="Mikesch Seifert">Andreas Lust</actor>
      <actor role="Robert Kraut">Justus Johanssen</actor>
      <actor role="Frida de Kuyper">Ellen ten Damme</actor>
      <actor role="Heinrich">Michael Tregor</actor>
      <actor role="Maya">Luise Aschenbrenner</actor>
      <actor role="Verena">Lena Baader</actor>
      <actor role="Kriminalkommissar Kalli Hammermann">Ferdinand Hofer</actor>
      <actor role="Gerichtsmediziner Dr. Matthias Steinbrecher">Robert Joseph Bartl</actor>
      <actor role="Svenja">Genija Rykova</actor>
      <actor role="Werner Kraut">Klaus Stiglmeier</actor>
      <actor role="Frida (jung)">Giulia Goldammer</actor>
      <actor role="Mikesch (jung)">Jonathan Müller</actor>
      <actor role="Franz Leitmayr (jung)">Sören Wunderlich</actor>
      <writer>Alex Buresch</writer>
      <writer>Matthias Pacht</writer>
    </credits>
    <date>2019</date>
    <category lang="en">movie</category>
    <audio>
      <stereo>dolby digital</stereo>
    </audio>
  </programme>
Can anybody help me here or am I on my own? I could of course add an sql call that just eliminates the offending programids to my cron job but I'd prefer a more elegant (and robust) method. I'm at my wit's end for what to search for though.
User avatar
dizygotheca
Developer
Posts: 267
Joined: Wed Sep 03, 2014 9:02 am
Great Britain

Re: What inserts programid entries in my DB?

Post by dizygotheca »

mythfilldatabase constructs the program id during parsing here:
https://github.com/MythTV/mythtv/blob/m ... r.cpp#L597

It's an encoded form of category + title + season + episode, used for duplicate detection.
https://www.mythtv.org/wiki/Duplicate_m ... Program_ID

"MV" signifies a movie and "94942868" is a hash of "Tatort".
You only want to record a movie once ;)

Looks like "Tatort" is actually a series. Try fixing the category as well

Code: Select all

<category lang="en">series</category>
That should produce (different) programids only when a season and episode are present; an empty one otherwise
Manul
Junior
Posts: 15
Joined: Tue Feb 20, 2018 11:23 am
Germany

Re: What inserts programid entries in my DB?

Post by Manul »

Thank you, that explains it perfectly.

Would you consider that sensible behaviour though? I'd think assuming that even two movies with identical titles but different subtitles are actually the same movie is at least error prone. Also, as seen in my case, it depends on correct categorization in the EPG data which apparently is not a given. I think it would be a good idea to (have an option to) disable this.

Fixing the category in the xml file might be beyond my awk capabilities. ;) I'll give it a try and revert to removing the programids in the DB if I can't figure it out.
User avatar
dizygotheca
Developer
Posts: 267
Joined: Wed Sep 03, 2014 9:02 am
Great Britain

Re: What inserts programid entries in my DB?

Post by dizygotheca »

I'm no authority but generally movie titles have always been unique. As clashes proliferate they tend to use a sequel number or year (of release) to distinguish themselves. Ultimately it's the metadata projects such as https://www.themoviedb.org that set the standards.

Strictly speaking, movies don't have a subtitle; they have an optional tagline, which is a subtly different thing

Considering your earlier comments about inserting missing subtitles, it sounds like a poor data source that is labelling everything as a movie. How can you distinguish movie/series from a real movie ?

The German board may be able to advise on a decent XMLTV source to use. There used to be a XMLTV guru on it.
Manul
Junior
Posts: 15
Joined: Tue Feb 20, 2018 11:23 am
Germany

Re: What inserts programid entries in my DB?

Post by Manul »

Thanks for your comments. I'll check on the german board, although it seems rather deserted.

As for the current source: No, it doesn't categorise everything as a movie. And in the case of "Tatort" one could probably argue about whether it's a series or a collection of related movies. The latter would fit in with the source listing them as "<title>Tatort - $subtitle</title>" but not with my view of the programme.

I still think MythTV's behaviour is a bit static here: I highly doubt errors in EPG sources are so uncommon that it makes sense to treat their information as definitely correct. However, I've come up with an awk line for my problem so I'm happy for now. Thank you again for your help!
User avatar
dizygotheca
Developer
Posts: 267
Joined: Wed Sep 03, 2014 9:02 am
Great Britain

Re: [SOLVED] What inserts programid entries in my DB?

Post by dizygotheca »

I see your point.

xmltv.se lists it as:

Code: Select all

{
            "category" : {
               "en" : [
                  "movie"
               ]
            },
            "title" : {
               "de" : "Tatort: Die ewige Welle"
            },
But TVDB.com considers it a TVShow "Tatort" with episodes & subtitles

Myth does handle EIT data in that form and splits it into title/subtitle. But I don't think I ever seen EIT supply a movie with a subtitle.

So your problems started when you decided to fix the subtitles.
The crucial point is whoever decides to split the title (xmltv, myth or you), the category needs changing at the same time.
That should help metadata lookup too.

You may want to follow up this patch to see if an updated grabber is available
https://sourceforge.net/p/xmltv/mailman ... /32244941/
Manul
Junior
Posts: 15
Joined: Tue Feb 20, 2018 11:23 am
Germany

Re: [SOLVED] What inserts programid entries in my DB?

Post by Manul »

dizygotheca wrote:
Thu May 23, 2019 4:39 pm
Myth does handle EIT data in that form and splits it into title/subtitle. But I don't think I ever seen EIT supply a movie with a subtitle.

So your problems started when you decided to fix the subtitles.
I'm not sure I understand you completely here: I just did a mythfilldatabase run with the unmodified output of tv_grab_se_tvzon and no splitting of title/subtitle took place.
User avatar
dizygotheca
Developer
Posts: 267
Joined: Wed Sep 03, 2014 9:02 am
Great Britain

Re: [SOLVED] What inserts programid entries in my DB?

Post by dizygotheca »

Correct, we use the XMLTV data as given.
EIT is an alternative to XMLTV/mythfilldatabase. https://www.mythtv.org/wiki/EIT

I was just musing on what Myth would do with EIT data of that form - consistency is always nice!

Looks like the XMLTV 'patch' and https://code.mythtv.org/trac/ticket/12121 failed to fix it.

But doing this sort of thing automatically is fraught with problems
https://www.denofgeek.com/movies/17557/ ... rnal-colon

Ultimately only a user can distinguish between "series title: subtitle" and "movie title: with punctuation" (on a case-by-case basis).
A Gui option to do it easily, on-demand, would be nice. Something for the wishlist...
Post Reply