TVheadend: Include EPG-Grabber-Module tv_grab_az_sdjson_sqlite

Dear all,

because of better capabilities / settings / transformations I would like to suggest to fully include the EPG-Grabber-Module tv_grab_az_sdjson_sqlite (GitHub - azlm8t/tv_grab_az_sdjson_sqlite: XMLTV grabber for Schedules Direct JSON service ) with the docker image.

I tried to add it myself as described at Addiing custom EPG grabber to TVHeadEnd; but unfortunately it didn`t work out. Additional Grabber-Module is not shown in TVheadend-GUI. (In fact after I added it the the function “Run internal grabbers” stopped working completly in TVheadend…)

Thanks!

Best regards,
Angus MacGyver

Post what steps you’ve done and might be able to see where it’s gone wrong, Though looking at that grabber, it doesn’t seem to suggest there is any GUI based interaction with it.

@j0nnymoe
I just added two lines to my docker compose file:

      - ./config/epggrabber/tv_grab_az_sdjson_sqlite:/usr/bin/tv_grab_az_sdjson_sqlite
      - ./config/epggrabber/tv_meta_az_sd.py:/usr/bin/tv_meta_az_sd.py

Then in TVheadend-GUI I checked Configuration > Channels / EPG > EPG Grabber Modules.
Unfortunately the new module hasn’t shown there.
Additionally I tried to manually start the internal grabber modules currently in use (tv_grab_zz_sdjson_sqlite) manually from TVheadend-GUI and this hasn’t worked as well anymore (in fact there hasn’t been any output in the TVheadend logline).

// Update (by the time of preparing and writting this answer):
Found my mistake: Files tv_grab_zz_sdjson_sqlite and tv_meta_az_sd.py needed to be set to chmod 755. > If I do so the new module will be shown in TVheadend-GUI and manual start of internal grabbers is still possible.

But I still keep up my suggestion that this additional grabber should be included in the image.

Unfortunately this Grabber-Module needs additional Perl-Modules to be installed:

    DateTime::Duration::Parse (libtime-duration-parse-perl)
    DateTime::Format::SQLite (libdatetime-format-sqlite-perl)
    DBD::SQLite
    File::Homedir
    IPC::Run3 (libipc-run3-perl)
    JSON
    JSON::XS (libjson-xs-perl)
    LWP::Protocols::https (liblwp-protocol-https-perl)
    LWP::UserAgent::Determined
    URO::Escape::XS (liburi-escape-xs-perl)
    XMLTV

My first try to --configure it has gotten an error:

Can't locate IPC/Run3.pm in @INC (you may need to install the IPC::Run3 module) (@INC entries checked: /usr/local/lib/perl5/site_perl /usr/local/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl) at /usr/bin/tv_grab_az_sdjson_sqlite line 7674.
BEGIN failed--compilation aborted at /usr/bin/tv_grab_az_sdjson_sqlite line 7674.

You can use this mod to install the required packages GitHub - linuxserver/docker-mods at universal-package-install

Added to environment:

- DOCKER_MODS=linuxserver/mods:universal-package-install
- INSTALL_PACKAGES=perl-time-duration-parse|perl-datetime-format-sqlite|perl-ipc-run3|perl-json-xs|perl-lwp-protocol-https

Only for URI::Escape::XS I couldn`t find a Alpine Linux Package by googling (and with only small Linux Knowledge didn’t know it myself!).

@j0nnymoe Which Alpine package would represent / contain URI::Escape::XS? Any hint?