Jump to content

VDR plugin development


Tuxx

Recommended Posts

You're asking if the core team can handle the workload? No, it would be great if a community member can take this on. Let me ask though, what would the core live tv features need in order to allow you to use them directly without vdr?

Link to comment
Share on other sites

  • 3 weeks later...

I've uploaded a new version (0.3.0) of the plugin. See the first post of this thread.

 

New:

  • Support for channel logos
  • Support for EPG images

 

I've also published the source code on GitHub.

 

Tuxx

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
joehoppe

Thanks for publishing the code on github. I am very interested in this plugin but im not really into C Sharp. For example my EPG is not working. Maybe i will have some sparetime in future and i can dive in to c sharp to fix this problem by my own ;).

 

But basically the plugin works pretty fine :)

thanks a lot!

Edited by joehoppe
Link to comment
Share on other sites

  • 2 weeks later...
hoppel118

Hi,

 

I use some openmediamediavault-vdr and the openmediavault-emby plugins:

 

openmediavault-emby 3.2 (v3.0.5931.0)

openmediavault-vdr 3.0.3

openmediavault-vdr-extras 3.0.2

openmediavault-vdr-vnsiserver 3.0.1

root@mediatank:~# cat /etc/debian_version
8.4
root@mediatank:~# vdr -V
vdr (2.0.3/2.0.0) - The Video Disk Recorder
xineliboutput (1.1.0) - X11/xine-lib output plugin
vnsiserver (1.3.1) - VDR-Network-Streaming-Interface (VNSI) Server
epgsearch (1.0.1.beta3) - search the EPG for repeats and more
streamdev-server (0.6.0-git) - VDR Streaming Server
live (0.2.0) - Live Interactive VDR Environment
conflictcheckonly (0.0.1) - Direct access to epgsearch's conflict check menu
quickepgsearch (0.0.1) - Quick search for broadcasts
epgsearchonly (0.0.1) - Direct access to epgsearch's search menu

I copied the dll to the emby plugin path and after restarting the service I see the "VDR LiveTV" plugin page to configure "http" and "restful api" ports.

 

Where do I get the restfulapi-plugin for debian jessie? Is there any repository with a compiled package?

 

Greetings Hoppel

Edited by hoppel118
Link to comment
Share on other sites

hoppel118

Hi guys,

 

yesterday evening I got this to work by integrating e-tobis repo and installing newer vdr versions. The only thing that didn't work completely was the epg grid. Only some epg data was shown but streaming live tv worked great.

 

Today I only see the empty epg grid and streaming isn't possible, but I didn't change anything.

 

573f5c1e8884a_emptyepg.png

root@mediatank:/usr/src# vdr -V
vdr (2.2.0/2.2.0) - The Video Disk Recorder
conflictcheckonly (0.0.1) - Direct access to epgsearch's conflict check menu
quickepgsearch (0.0.1) - Quick search for broadcasts
restfulapi (0.2.1.2) - Offers a RESTful-API to retrieve data from VDR
epgsearch (1.0.1.beta5) - search the EPG for repeats and more
epgsearchonly (0.0.1) - Direct access to epgsearch's search menu
vnsiserver (1.3.1) - VDR-Network-Streaming-Interface (VNSI) Server
streamdev-server (0.6.1-git) - VDR Streaming Server
live (0.3.0) - Live Interactive VDR Environment

What can be done to find the error?

 

 

Greetings Hoppel

Edited by hoppel118
Link to comment
Share on other sites

hoppel118

Yesterday evening I purged every component of vdr and reinstalled one after the other. Some min later vdr worked again with the following versions of e-tobis repository:

root@mediatank:~# vdr -Vvdr (2.2.0/2.2.0) - The Video Disk Recorderrestfulapi (0.2.1.2) - Offers a RESTful-API to retrieve data from VDRvnsiserver (1.3.1) - VDR-Network-Streaming-Interface (VNSI) Serverstreamdev-server (0.6.1-git) - VDR Streaming Serverlive (0.3.0) - Live Interactive VDR Environment
After that the epg was still empty, but I didn't had more time to look further into it. It was like in the screenshot above, no channel numbers were shown.

 

Today I startet emby again and got the following to see:

 

5741ee4c19866_emptyepgembyvdr.png

 

How much time is needed until the whole grid is shown?

 

Streaming all the tv channels works as expected. What do I need to do to get the epg to fill with data?

 

 

Greetings Hoppel

Edited by hoppel118
Link to comment
Share on other sites

Jansen

Could you check your server logs when updating tv data? (Admin Interface -> Live-TV -> refresh guide)

I'm getting a lot of errors in the log file, and the progress bar rests @ 0.0%. However, the items listed in the epg guide increase, but very slowly.

 

 

Another question: For me, no channel logos are displayed. The restful api plugin provides SVG files. Could this be the problem?

server-63599619762.txt

Edited by Jansen
  • Like 1
Link to comment
Share on other sites

Jansen

After about 1h, all epg data gets displayed. Some channel logos, which are png files on the VDR side, get displayed.

 

However, the action of receiving svg files and throwing an error takes only a fraction of a second.

2016-05-23 17:03:41.3475 Info HttpServer: HTTP GET http://plex:8096/emby/Items/7d37abaca72602c6262b77e5d0c0d167/Images/Primary?maxHeight=200&tag=1642492a729ca9213e848e05fd91804b&quality=90. UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
2016-05-23 17:03:41.3493 Info HttpClient: HttpClientManager GET: http://192.168.222.11:8002/channels/image/S19.2E-1-1011-11140
2016-05-23 17:03:41.3495 Error DtoUtils: ServiceBase<TRequest>::Service Exception
	*** Error Report ***
	Version: 3.0.5971.0
	Command line: /usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe -programdata /var/lib/emby-server -restartpath /usr/lib/emby-server/restart.sh
	Operating system: Unix 3.13.0.52
	Processor count: 4
	64-Bit OS: True
	64-Bit Process: True
	Program data path: /var/lib/emby-server
	Mono: 4.2.1 (Stable 4.2.1.102/6dd2d0d Thu Dec  3 04:04:55 UTC 2015)
	Application Path: /usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe
	Object reference not set to an instance of an object
	System.NullReferenceException
	  at MediaBrowser.Providers.Manager.ImageSaver.GetStandardSavePath (IHasImages item, ImageType type, Nullable`1 imageIndex, System.String mimeType, Boolean saveLocally) <0x409ed790 + 0x007be> in <filename unknown>:0 
	  at MediaBrowser.Providers.Manager.ImageSaver.GetSavePaths (IHasImages item, ImageType type, Nullable`1 imageIndex, System.String mimeType, Boolean saveLocally) <0x409ec110 + 0x0009e> in <filename unknown>:0 
	  at MediaBrowser.Providers.Manager.ImageSaver+<SaveImage>c__async0.MoveNext () <0x409eab40 + 0x005b9> in <filename unknown>:0 
[...]
	
2016-05-23 17:03:41.3505 Info HttpServer: HTTP GET http://plex:8096/emby/Items/3cadc1a13e39a3e157cc4200d2728104/Images/Primary?maxHeight=200&tag=1377203304012cc321ffd1a46d511124&quality=90. UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
2016-05-23 17:03:41.3523 Info HttpClient: HttpClientManager GET: http://192.168.222.11:8002/channels/image/S19.2E-1-1051-28721
2016-05-23 17:03:41.3528 Error DtoUtils: ServiceBase<TRequest>::Service Exception
	*** Error Report ***
	Version: 3.0.5971.0
	Command line: /usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe -programdata /var/lib/emby-server -restartpath /usr/lib/emby-server/restart.sh
	Operating system: Unix 3.13.0.52
	Processor count: 4
	64-Bit OS: True
	64-Bit Process: True
	Program data path: /var/lib/emby-server
	Mono: 4.2.1 (Stable 4.2.1.102/6dd2d0d Thu Dec  3 04:04:55 UTC 2015)
	Application Path: /usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe
	Object reference not set to an instance of an object
	System.NullReferenceException
	  at MediaBrowser.Providers.Manager.ImageSaver.GetStandardSavePath (IHasImages item, ImageType type, Nullable`1 imageIndex, System.String mimeType, Boolean saveLocally) <0x409ed790 + 0x007be> in <filename unknown>:0 
	  at MediaBrowser.Providers.Manager.ImageSaver.GetSavePaths (IHasImages item, ImageType type, Nullable`1 imageIndex, System.String mimeType, Boolean saveLocally) <0x409ec110 + 0x0009e> in <filename unknown>:0 
	  at MediaBrowser.Providers.Manager.ImageSaver+<SaveImage>c__async0.MoveNext () <0x409eab40 + 0x005b9> in <filename unknown>:0 
[...]

What really takes long is GetProgramImageAsync, which probably gets called for every item in the epg.

2016-05-23 17:18:59.5596 Info App: [VDR LiveTV] GetProgramImageAsync | 11997 | S19.2E-1-1010-11150 ...
2016-05-23 17:18:59.5616 Info App: [VDR LiveTV] GetProgramImageAsync error: 
2016-05-23 17:19:00.0561 Info App: [VDR LiveTV] GetProgramImageAsync | 11998 | S19.2E-1-1010-11150 ...
2016-05-23 17:19:00.0582 Info App: [VDR LiveTV] GetProgramImageAsync error: 
2016-05-23 17:19:00.4304 Info App: [VDR LiveTV] GetProgramImageAsync | 11999 | S19.2E-1-1010-11150 ...
2016-05-23 17:19:00.4325 Info App: [VDR LiveTV] GetProgramImageAsync error: 
2016-05-23 17:19:00.8084 Info App: [VDR LiveTV] GetProgramImageAsync | 12001 | S19.2E-1-1010-11150 ...
[...]
Link to comment
Share on other sites

hoppel118

Could you check your server logs when updating tv data? (Admin Interface -> Live-TV -> refresh guide)

I'm getting a lot of errors in the log file, and the progress bar rests @ 0.0%. However, the items listed in the epg guide increase, but very slowly.

 

Hi, thanks for this hint. I didn't recognize that option. You are right, when I try to update the tv data the progess bar hangs at 0.0%. Anyway, after updating emby server to the new version 3.0.5971.0 the epg data increased on my server. ;)

 

Next Question: How is it possible to load the "/var/lib/vdr/channels.conf" again? I made some changes in the channels.conf, but the emby-vdr-plugin doesn't recognize them. Is it also done by "Admin Interface -> Live-TV -> refresh guide"?

 

Greetings Hoppel

Link to comment
Share on other sites

Jansen

Hi, thanks for this hint. I didn't recognize that option. You are right, when I try to update the tv data the progess bar hangs at 0.0%. Anyway, after updating emby server to the new version 3.0.5971.0 the epg data increased on my server. ;)

 

Next Question: How is it possible to load the "/var/lib/vdr/channels.conf" again? I made some changes in the channels.conf, but the emby-vdr-plugin doesn't recognize them. Is it also done by "Admin Interface -> Live-TV -> refresh guide"?

 

Greetings Hoppel

Did you make your changes to the channels.conf while the VDR was shutdown? If not, these changes will be overwritten. If yes, I suppose the refresh guide option will reload the channels. 

 

I'm also very new to this media server. Your post on the vdr-portal made me want to test this :)

Edited by Jansen
Link to comment
Share on other sites

hoppel118

Did you make your changes to the channels.conf while the VDR was shutdown? Else these changes will be overwritten. If yes, I suppose the refresh guide option will reload the channels.

Yes, the vdr service was stopped while editing the channels.conf. Kodi (vnsi) recognized the changes. So, this can't be the Problem. The refresh guide option didn't load the new channels.conf.

 

The question is, how it is possible to reload the channels.conf? Deinstallation of vdr plugin under the emby plugin section didn't help. The old channels.conf is still there.

 

I'm also very new to this media server. Your post on the vdr-portal made me want to test this :)

Nice, have fun! ;) Kodi in combination with emby, vdr and openmediavault is a great bundle. Edited by hoppel118
Link to comment
Share on other sites

hoppel118

Now I did the follwoing and got the new channels.conf loaded:

 

  • purged the "vdr-plugin-restfulapi" (version: 0.2.1.2-3) from e-tobis repo
  • installed the current "vdr-plugin-restfulapi" (version: 0.2.6.1) from git, but no channel in the list in emby's webui
  • refreshed the epg data by emby's webui -> without any changes
  • installed the "vdr-plugin-restfulapi" (version: 0.2.1.2-3) from e-tobis repo again without deleting/purging the current version from git
  • refreshed the epg data by emby's webui -> the new channels.conf is loaded

Fantastic!

 

The refresh needed half an hour:

 

574999496cba1_livetvrefreshepg2.png

 

Now I see all the channels but the epg data is uncomplete. Only some channels have data.

root@mediatank:~# vdr -V
vdr (2.2.0/2.2.0) - The Video Disk Recorder
restfulapi (0.2.1.2) - Offers a RESTful-API to retrieve data from VDR
vnsiserver (1.3.1) - VDR-Network-Streaming-Interface (VNSI) Server
streamdev-server (0.6.1-git) - VDR Streaming Server
live (0.3.0) - Live Interactive VDR Environment

At the moment I don't use a vdr plugin for epg. Kodi loads the epg completely without extra plugins.

 

Which epg vdr plugin do you use to get complete epg data in emby channel grid?

 

 

Greetings Hoppel

Edited by hoppel118
Link to comment
Share on other sites

hoppel118

1. How many days is "a lot of time"? ;)

2. How many channels are in your channels.conf?

3. Can you post the command line output of "vdr -V"?

 

Thanks and Greetings Hoppel

Link to comment
Share on other sites

Jansen

Hi Hoppel,

 

  1. About 4 hours
  2. 135 (DVB-S and DVB-C), but I cleaned it up before doing a second "refresh guide", since I assumed that Emby will try to epg-ify all channels. Before cleaning up, probably more than thousand channels. I also set VDR to scan only for new names & PIDs of channels.
  3. ./vdr -V
  4. jan@wohnzimmer:/usr/local/src/vdr-current# ./vdr -V
    vdr (2.2.0/2.2.0) - The Video Disk Recorder
    femon (2.0.0) - DVB Signal Information Monitor (OSD)
    restfulapi (0.2.3.1) - Offers a RESTful-API to retrieve data from VDR
    dbus2vdr (24) - control vdr via D-Bus
    streamdev-server (0.6.1-git) - VDR Streaming Server
    softhddevice (0.6.1rc1-GIT8c347fd) - A software and GPU emulated HD device
    live (0.3.0) - Live Interactive VDR Environmen
    streamdev-client (0.6.1-git) - VTP Streaming Client
    remote (0.6.0) - Remote control
    skindesigner (0.7.2) - Skin Designer
    
    
Link to comment
Share on other sites

hoppel118

Hi @@Jansen

 

for me the epg refresh from the emby webui takes round about 12 min at the moment. Alltogether I have 300 tv and radio channels in my channels.conf. I configured my vdr not to scan for new channels, new names or new pids, it's completely deactivated (UpdateChannels = 0).

 

Seemingly we use the same vdr versions. Do you also use e-tobis repo?

 

50% of my epg grid is still empty. Don't know what else can be done to get it to work.

 

Greetings

Link to comment
Share on other sites

Jansen

Hi Hoppel, I'm using Ubuntu 14.04 as my base system, no special repository. The VDR and its plugins are compiled manually by me.

 

I've also large empty areas in my epg. :-/  There seems to be a bug in the plugin.

Link to comment
Share on other sites

hoppel118

Ok, good to know. Let's hope that @@Tuxx gets back or somebody takes it up and continues the good work.

 

By the way, with the current developer version of the restfulapi from git I do not get any epg data. :-(

Edited by hoppel118
Link to comment
Share on other sites

  • 3 months later...

I selected a different restfulapi release, here: git clone https://github.com/Saman-VDR/vdr-plugin-restfulapi.git

and did not receive any errors with pulling the epg data from VDR.  It is an older release but does appear to work better with the Emby Plugin.

 

Note when you downgrade the VDR Plugin make sure you replace the API.html with the one from the repository!

 

Domenic

Edited by domenic
  • Like 1
Link to comment
Share on other sites

One more note on the Pulling of EPG data, when I click on "Refresh Guide Data" the pull time is 4 hours off.  That is the first request for data from VDR starts at 6 PM when the local time is 2 PM.  This would be the reason there is no EPG data on the guide when you first look at it, but would be there if you scrolled over 4 hours. 

 

Edit:  taking a look at the code, it is variable is defined as UTC

 

public async Task<IEnumerable<ProgramInfo>> GetProgramsAsync(string channelId, DateTime startDateUtc, DateTime endDateUtc, System.Threading.CancellationToken cancellationToken)

 

But looking at the results of the EPG collected, it would appear the request is interpreted wrong by VDR, and it is sending based off the local time.

Edited by domenic
  • Like 1
Link to comment
Share on other sites

So I have no experience compiling a plugin for Emby (I think someone noted C#), but a small change could correct the time issue:

 

file: src/VDRLiveTV/vdr/Utils.cs

Update: change             DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

              to                     DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Local);

 

 

Any Takers?

 

Domenic

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...