pipelka / roboTV

Android TV frontend for VDR
Other
73 stars 37 forks source link

Channel Artwork and Channel Icons/Picons #50

Closed mattgorski closed 6 years ago

mattgorski commented 6 years ago

What is the proper way to incorporate channel art and channel icons? I have installed a tvscraper plugin and tried my own web server with picons but the icons and artwork are not parsing into live channels.

No rush on answering this @pipelka just curious how you achieved all the great channel art and icons :)

mattgorski commented 6 years ago

Well tvscraper is working for channel art so I just have to get the channel scheme down for channel icons..

mattgorski commented 6 years ago

Still no epg icons yet. @pipelka would it be possible to manually add epg logo icons to the database file .db? I'm not getting any luck with picons source my own sources, renaming all channels to same channel ID as vdr, converted all pngs to jpg still no epg icons images.

This should help: ("adding new channel %d - %s", entry.getNumber(), entry.getName()));

So %d is channel number and %s is string = channel name so every channel must be labled like so correct?

600 - CNN HD.jpg 600 - CNN HD.png

mattgorski commented 6 years ago

Not seeing any logcat either for epgimage creation:

https://github.com/pipelka/roboTV/blob/master/robotv-atv/src/main/java/org/robotv/sync/ChannelSyncAdapter.java#L238

I must have the string wrong or size (using same icons that work in tvheadend)

ive tried every combo %s %c %d and also with spaces %d%20%s.jpg

mattgorski commented 6 years ago

Trying picon service Reference now 1_0_1_298_0_0_0000_0_0_0 | AccuWeather HD | 298_0_0_0000=accuweatherhd.default.png 1_0_1_28D_0_0_0000_0_0_0 | A&E HD | 28D_0_0_0000=anehd.png 1_0_1_283_0_0_0000_0_0_0 | AMC HD | 283_0_0_0000=amchd.png 1_0_1_28E_0_0_0000_0_0_0 | ANIMP HD | 28E_0_0_0000=animalplanethd.png

mattgorski commented 6 years ago

Finally got the epgimages to show up using picons = http://webserver/ and no %d and channel naming like so:

ChannelSyncAdapter: fetching logo for channel 555: http://webserver-address/epgimages/1_0_1_274_0_0_0_0_0_0.png

The only way I acheved this is by watching the adb log when ChannelSync progress shows what channel is looking for what image :+1:

mattgorski commented 6 years ago

@pipelka what vdr plugin for epg art scraper are you using? tvscraper or scraper2vdr?

pipelka commented 6 years ago

I'm not using any of these scrapers. Scraping is done by the roboTV client.

mattgorski commented 6 years ago

Thanks for the reply @pipelka

So you are saying that the vdr-plugin-robotv scrapes artwork from the internet and places it in a directory?

I started to see artwork with tvscraper now im not seeing any artwork. My webserver has event images from tvscraper like so:

/var/www/html/epgimages/tvscraper/series/85019:
actor_0.jpg  actor_5.jpg  banner.jpg    season_0.jpg          season_poster_14.jpg  season_poster_19.jpg  season_poster_23.jpg  season_poster_2.jpg  season_poster_7.jpg
actor_1.jpg  actor_6.jpg  fanart_0.jpg  season_poster_10.jpg  season_poster_15.jpg  season_poster_1.jpg   season_poster_24.jpg  season_poster_3.jpg  season_poster_8.jpg
actor_2.jpg  actor_7.jpg  fanart_1.jpg  season_poster_11.jpg  season_poster_16.jpg  season_poster_20.jpg  season_poster_25.jpg  season_poster_4.jpg  season_poster_9.jpg
actor_3.jpg  actor_8.jpg  fanart_2.jpg  season_poster_12.jpg  season_poster_17.jpg  season_poster_21.jpg  season_poster_26.jpg  season_poster_5.jpg
actor_4.jpg  actor_9.jpg  poster_0.jpg  season_poster_13.jpg  season_poster_18.jpg  season_poster_22.jpg  season_poster_27.jpg  season_poster_6.jpg

/var/www/html/epgimages/tvscraper/series/85062:
banner.jpg  fanart_0.jpg  poster_0.jpg  poster_1.jpg  season_poster_1.jpg  season_poster_2.jpg

/var/www/html/epgimages/tvscraper/series/85221:
banner.jpg  fanart_0.jpg  fanart_1.jpg  poster_0.jpg  poster_1.jpg

/var/www/html/epgimages/tvscraper/series/85432:
banner.jpg  fanart_0.jpg  fanart_1.jpg  poster_0.jpg  poster_1.jpg
mattgorski commented 6 years ago

Could be due to the fact my xmltv epgdata doesnt have any genre info...

Apr 28 19:03:28 hp-z420 vdr: [31145] get schedule called for channel 907 'I-0-950-694' - HBO FAM HD W Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56325) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56355) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56385) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56415) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56445) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56475) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56585) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56670) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56675) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56680) '' (contentid: 0) Apr 28 19:03:29 hp-z420 vdr: [31145] set epg image (channelUid: 629207140, eventid: 56775) '' (contentid: 0)

pipelka commented 6 years ago

No. The client Android application does the job.

mattgorski commented 6 years ago

Very cool! I just found the java clas that does the scraping here: https://github.com/pipelka/roboTV/blob/master/robotv-client/src/main/java/org/robotv/client/artwork/provider/TheTvDb.java

So basically comment out the epg Image section in robotv.conf and let android do the scraping:

# Template URL for EPG images
# every epg entry will be checked for an epg image available at this position.
# the url must be formatted as java string:
# https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax

# EpgImageUrl =
pipelka commented 6 years ago

But be warned the scraping keywords are defined for german language TV Channels. So results may vary.

mattgorski commented 6 years ago

That is most likely the reason.

One quick question. Do we need a G - genre line for category? My xmltv.xml parser does not pick up the "G" genre so my entries look like this:

E 57975 1525201200 3600 0 FF T The First 48 S Smoke Screen; The Last Goodbye D A 28-year-old father is stabbed to death while at work; a 35-year-old man is shot to death in a bar bathroom.|Actor Dion Graham| e

mattgorski commented 6 years ago

Looks like ill prob have to get a couple API keys for tvdb and use my own key i assume...

mattgorski commented 6 years ago

Im wondering how difficult it would be to implement gracenote api which Plex uses for epg artwork. I registered an account for a separate android tif app (plex live channels app) and I have access to the non-public api.

Here is the API docs:

http://developer.tmsapi.com/io-docs

pipelka commented 6 years ago

The genre of the EPG entry is used to distinguish between movies and TV shows. If it's missing a rough detection using keywords is made.

mattgorski commented 6 years ago

@pipelka thank you for taking the time to answer all of my questions, much appreciated!

Side note would you be willing to accept a paid contract job to help implement a plex backend plugin similar to vdr-plugin-robotv and similar frontend app for Live Channels?

Plex imo is a great universal backend with easy easy setup for DVB/IPTV channels (you can even use vdr as an m3u feeder). Plex uses json/xml responses for GET commands returning epg data, channelids and artwork. I have been poking around the plex rest api for a few weeks now (http://forums.plex.tv/discussion/317655/android-live-channels-integration-for-live-tv-and-dvr-scheduling/p1) and I am trying to find the most experienced Live Channels developer and @pipelka your timeshift implementation and app are by far the best work ive seen comparing multiple apps ie tvheadend, tvirl, and streamin.

I would love to collaborate with you in the near future if you have time on your hands. (if you are not interested no big deal my friend)

pipelka commented 6 years ago

Sorry, I'm a full-time software-engineer and use some of my spare time to implement the roboTV stuff (which is used in all my rooms at home and even on my TV projector in the garden).

mattgorski commented 6 years ago

Very cool. Can you recommend some TV Input Framework turtourials/online classes other than the bare minimum Google provides? Maybe some Java starting points that deal with the basics of TIF arrays, SQL etc? Appreciate any guidance. Thanks again for everything.

pipelka commented 6 years ago

Some good sources of information are the Google AndroidTV samples on github:

https://github.com/googlesamples/androidtv-sample-inputs https://github.com/googlesamples/androidtv-Leanback

there are even more, ...

mattgorski commented 6 years ago

Thanks @pipelka Yeah ive been using that base for examples. Also channel surfer is another. Being a software engineer what java basics would you recommend for video tutorials or books if you know of any? The best starting point ive came across is the channel-surfer library but now that is outdated with dvr support added.

https://github.com/Fleker/ChannelSurfer

pipelka commented 6 years ago

To be honest. I don't know.

mattgorski commented 6 years ago

I think I've got a general idea on where to start. Much appreciation for your resposes. You can close this issue my friend.