Issue
Recording a movie results in a file being saved in "tvshows" instead of the "tvmovies" directory.
What is expected?
The recording to be saved in the appropriate movie directory "recorded_movies".
What was the actual result?
The movie "Eden" was not detected as movie, while the content_type seems correct. The recording was saved to the wrong location. Relevant Tvheadend dvr debug log:
2021-05-03 17:26:04.600 [ DEBUG]:dvr: fmt = q$n.$x is_movie = 0 content_type = 1
2021-05-03 17:26:04.600 [ DEBUG]:dvr: File "/volume1/video/recorded_shows/Eden/Eden.mkv" -- No such file or directory -- Using for recording
What environment/settings might be relevant to reproduce the issue?
Version: HTS Tvheadend 4.3-1941~g817a8d4e4
System: Docker container from Linuxserver.io (Alpine based) running on a Synology DS220+
The following DVR config variables are set:
pathname (fmt): "$q$n.$x"
format-tvmovies-subdir: "recorded_movies"
format-tvshows-subdir: "recorded_shows"
Enabled EPG grabbers config:
"xmltv": {
"class": "epggrab_mod_ext_xmltv",
"dn_chnum": true,
"scrape_extra": true,
"scrape_onto_desc": false,
"use_category_not_genre": false,
"name": "XMLTV",
"type": "External",
"enabled": true,
"priority": 3
},
"eit": {
"class": "epggrab_mod_eit",
"short_target": 2,
"running_immediate": false,
"scrape_episode": true,
"scrape_title": true,
"scrape_subtitle": true,
"scrape_summary": true,
"name": "EIT: EPG Grabber",
"type": "Over-the-air",
"enabled": true,
"priority": 1
}
XMLTV EPG fed to Tvheadend: xmltv.xml (see attachment)
Tvheadend internal EPG according to http://localhost:9981/xmltv/channelnumber/91: NPO 2 Extra.xml (see attachment)
What did I do to debug the issue?
I'm no C programmer, but I believe the problem must be along these lines:
https://github.com/tvheadend/tvheadend/blob/fdc3f945f2b759a743a595b134786b881538f52e/src/dvr/dvr_rec.c#L494
The first two conditions don't apply, as I don't force a format.
In the else: ebc->category should probably equate to true, as the broadcast has categories originating from the XMLTV feed. The categories have the string "movie" in them, so I believe this is what SHOULD set is_movie to true/1.
The last resort situation doesn't seem to get triggered because content_type is actually 1 and there is no episode information, so this would've resulted in is_movie=1, which is clearly not the case.
I'm developing the tool that generates the mentioned XMLTV feed and have made sure that tvshow programmes never receive one of the ETSI "Movie / Drama" subcategories and vice versa for movie programmes (they exclusively get subcategories from the "Movie / Drama" genre section). But maybe there is something wrong with the categories in the feeds I create? Do the slashes need a space before and after them? Do I need to add capitals? Split categories up?
I've searched and read many relevant topics like
https://tvheadend.org/issues/3753 but I am really stuck at the moment.