Jump to content
pünktchen

VirtualTV plugin

Recommended Posts

pünktchen

@@Jdiesel please retry version 0.5.3 from the starting post. It has some additional logging for the Export function.

Share this post


Link to post
Share on other sites
pünktchen

Thank you @@jachin99!

 

@@moha03 it should be

...AppData\Roaming\Emby-Server\programdata\plugins\

not

...AppData\Roaming\Emby-Server\system\plugins\

Although i find it very strange that your Emby instance has both :blink:

  • Like 1

Share this post


Link to post
Share on other sites
Jdiesel

@@Jdiesel please retry version 0.5.3 from the starting post. It has some additional logging for the Export function.

 

Not sure if there is any new information captured but here you go

2019-12-30 15:56:51.008 Info HttpServer: HTTP Response 204 to *.*.*.*. Time: 2ms. http://emby.*****.com:8096/ScheduledTasks/Running/738bacc50818f465aef0016f6083a228
2019-12-30 15:56:51.017 Info HttpServer: HTTP GET http://127.0.0.1:8096/emby/VirtualTV/Channels?Pass=. UserAgent: 
2019-12-30 15:56:51.019 Info Plugin: [VirtualTV] GetChannelsPlaylist
2019-12-30 15:56:51.101 Info HttpServer: SocketException: http://127.0.0.1:8096/emby/VirtualTV/Channels?Pass=
2019-12-30 15:56:51.102 Info HttpServer: HTTP Response 500 to 127.0.0.1. Time: 85ms. http://127.0.0.1:8096/emby/VirtualTV/Channels?Pass=
2019-12-30 15:56:51.105 Error TaskManager: Error
	*** Error Report ***
	Version: 4.4.0.3
	Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
	Operating system: Unix 4.19.56.0
	64-Bit OS: True
	64-Bit Process: True
	User Interactive: True
	Runtime: file:///system/System.Private.CoreLib.dll
	Processor count: 12
	Program data path: /config
	Application directory: /system
	System.Net.WebException: System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
	   at System.Net.HttpWebRequest.GetResponse()
	   at System.Net.WebClient.GetWebResponse(WebRequest request)
	   at System.Net.WebClient.DownloadBits(WebRequest request, Stream writeStream)
	   at System.Net.WebClient.DownloadFile(Uri address, String fileName)
	   at System.Net.WebClient.DownloadFile(String address, String fileName)
	   at VirtualTV.Services.ExportVirtualTVTask.Execute(CancellationToken cancellationToken, IProgress`1 progress)
	   at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)
	Source: System.Net.Requests
	TargetSite: System.Net.WebResponse GetResponse()

Share this post


Link to post
Share on other sites
pünktchen

Not sure if there is any new information captured but here you go

2019-12-30 15:56:51.008 Info HttpServer: HTTP Response 204 to *.*.*.*. Time: 2ms. http://emby.*****.com:8096/ScheduledTasks/Running/738bacc50818f465aef0016f6083a228
2019-12-30 15:56:51.017 Info HttpServer: HTTP GET http://127.0.0.1:8096/emby/VirtualTV/Channels?Pass=. UserAgent: 

 

Not what i was expecting, but this time i think i see your problem.

Can you even use 127.0.0.1 to access Emby's web interface?

Share this post


Link to post
Share on other sites
Jdiesel

I'm not really sure. I'm using a docker with a reverse proxy. I can try testing when I am back on my local network.

Share this post


Link to post
Share on other sites
jachin99

If you drop the dll into the wrong folder then emby copies it into the right folder so you will have a copy in both. Both probably need to be unblocked. I deleted the extra. Mine still isn't working but I don't have time to post for help just yet

Share this post


Link to post
Share on other sites
pünktchen

I'm not really sure. I'm using a docker with a reverse proxy. I can try testing when I am back on my local network.

 

I'm sure it's your reverse proxy https://stackoverflow.com/a/51680331:

From inside a container, localhost always refers to the current container. It never refers to another container, and it never refers to anything else running on your physical system that's not in the same container. It's not usually useful to make outbound connections to localhost or configure localhost as your database host.

From a shell on your host system, localhost could refer to daemons running on your system outside Docker, or to ports you've published with docker run -p options.

From a different system, localhost refers to the system it's called from.

In terms of IP addresses, localhost is always 127.0.0.1, and that IP address is special and is always localhost and behaves the same way as above.

The Export tasks runs the web requests inside your docker container, so localhost or 127.0.0.1 shouldn't matter.

But why do you proxy local web requests?

Share this post


Link to post
Share on other sites
moha03

Thank you @@jachin99!

 

@@moha03 it should be

...AppData\Roaming\Emby-Server\programdata\plugins\

not

...AppData\Roaming\Emby-Server\system\plugins\

Although i find it very strange that your Emby instance has both :blink:

It's actually working now, thank you! 
 
Congratulations on your addon, it's really cool!
  • Like 1

Share this post


Link to post
Share on other sites
seanbuff

Thank you @@jachin99!

 

@@moha03 it should be

...AppData\Roaming\Emby-Server\programdata\plugins\

not

...AppData\Roaming\Emby-Server\system\plugins\

Although i find it very strange that your Emby instance has both :blink:

 

FWIW, I also have both of those dirs and I put my .dll into the \system\ one and the plugin worked on first restart.

 

I can now see the plugin in both of the above dirs -- not sure why we have both either, probably a migration from an older install?

 

 

Great plugin btw, appreciate your work @@pünktchen

  • Like 1

Share this post


Link to post
Share on other sites
Happy2Play

FWIW, I also have both of those dirs and I put my .dll into the \system\ one and the plugin worked on first restart.

 

I can now see the plugin in both of the above dirs -- not sure why we have both either, probably a migration from an older install?

 

 

Great plugin btw, appreciate your work @@pünktchen

Server is packaged with system default plugins and are pushed to /programdata/plugins unless explicitly listed as uninstalled via the system.xml.

 

Note the /system folder gets replaced with every update also.

Edited by Happy2Play
  • Like 2

Share this post


Link to post
Share on other sites
seanbuff

Thanks Happy, good to know  :)

Share this post


Link to post
Share on other sites
Jdiesel

 

I'm sure it's your reverse proxy https://stackoverflow.com/a/51680331:

The Export tasks runs the web requests inside your docker container, so localhost or 127.0.0.1 shouldn't matter.

But why do you proxy local web requests?

 

I didn't really have a change to do any testing but I doubt that it is the reverse proxy as emby should not even be aware that it is present. Maybe someone else using the official emby docker can do some testing as well.

Share this post


Link to post
Share on other sites
pünktchen

I didn't really have a change to do any testing but I doubt that it is the reverse proxy as emby should not even be aware that it is present. Maybe someone else using the official emby docker can do some testing as well.

Run a terminal window inside your docker container and try to ping Emby's port. Something like this:

docker exec -it {container_id_or_name} nmap -p {port} 127.0.0.1

Share this post


Link to post
Share on other sites
hstamas

Finally got things working on my system and I have to say that this plugin has the potential of being the single greatest improvement to the core Emby experience since I jumped ship from Plex.

 

A cord cutters dream come true for sure.

 

Thanks again Punktchen!

  • Like 1

Share this post


Link to post
Share on other sites
jachin99
Posted (edited)

Mine seems to be working well after updating to a newer version and placing the plugin in the correct folder the first time. I still need to tweak my channel rules to make sure everything is perfect but my channels now show up in the guide so it's good to know I'm over hurdle number 1

Edited by jachin99

Share this post


Link to post
Share on other sites
pünktchen

New version 0.6.0 in my starting post.

Adds a global option to automatically mark items as "watched" if playback stops within five minutes before or at the end of the show.

It also has a new select box in the channel conditions to choose between watched, unwatched or both.

And finally support for tvshows! Please clear your browser cache, re-evaluate the plugin settings and save them once again.

The way it works now, it is best suited for documentaries, cartoons and sitcoms. Everything where the story line doesn't really matter. But that's up to you guys.

With selection include watched only or watched & unwatched, all episodes that fulfill the conditions are just randomized. With unwatched items only, up to three episodes of a random series are presented in their correct order.

I didn't test every combination of every condition, so hopefully all is working well. If not i will try to fix reported bugs.

But i need a little break, so don't expect any new features or the like in the next four weeks.

  • Like 1

Share this post


Link to post
Share on other sites
jachin99

I'm excited for the addition of TV shows!! I'll try it out and give some feedback when I get a chance. Thanks.

Share this post


Link to post
Share on other sites
hstamas

Yippee! Downloading right now for TV testing!

 

Please enjoy your break! 
 

One suggestion that came to mind while testing the movie only version that might make even more sense with TV shows is the ability to actually tune into a further show that is further down in the timeline.

 

Right now, if you didn’t like what’s on at the current time and you browse further into the day you can’t actually start playing the future show so your sort of stuck. it just tunes in what’s currently playing when you select a future program, which makes sene for a real OTA setup but this forces you to leave the plugin environment and go back to browsing Emby the traditional way if you need to pick something else to watch.

 

if you could select a show that’s further down and maybe have the entire timeline reset to that position maybe?

 

Not sure if this is even possible since your using the actual live tv engine for playback? I know pseudotv can do this but it uses its own interface etc.

Share this post


Link to post
Share on other sites
hstamas

Question. 
 

You have the ability to export the data for use in Kodi? Any quick tips or pointer to somewhere on how one might get this set up?

Share this post


Link to post
Share on other sites
hstamas

New version 0.6.0 in my starting post.

 

With selection include watched only or watched & unwatched, all episodes that fulfill the conditions are just randomized. With unwatched items only, up to three episodes of a random series are presented in their correct order.

 

May I suggest that you have the ability to play a couple of episodes in the correct order for watched only as well?

 

In my quest to have this set up to simulate broadcast TV, a lot of stations play a repeat show in blocks. Take TBS for example, during the week, they will show three or four episodes of the Big Bang Theory in a row.

Share this post


Link to post
Share on other sites
pünktchen

... Not sure if this is even possible since your using the actual live tv engine for playback? I know pseudotv can do this but it uses its own interface etc.

Correct. It's not possible because of the live tv engine. You tune into a channel, not a show! I think it wouldn't be so difficult to implement it in Emby's core functionality, but the devs will never do this this for just a community plugin. I'm already fighting for a better playback experience where the actual file is used not a stream and i'll be more then happy if the devs only make this one happen.

 

You have the ability to export the data for use in Kodi? Any quick tips or pointer to somewhere on how one might get this set up?

I let it export to a network share and then import it into the Simple PVR addon. In theory you could point the pvr addon just to the download links of the export data (you can find them under the API link in Emby's dashboard) but somehow Kodi refuses to load the data this way.

Share this post


Link to post
Share on other sites
pünktchen

May I suggest that you have the ability to play a couple of episodes in the correct order for watched only as well?

More sort order options (also by release date, date added to library and names) are already on my todo list.

Share this post


Link to post
Share on other sites
CBers

Well done @@pünktchen.

 

 

Downloading and installing now.

Share this post


Link to post
Share on other sites
CBers
Getting the following errors in the server log when trying to play 1 of my 2 channels (TV Shows & Movies).

 

Get the error "Unable to tune to channel" in the Android TV (ATV) app.

 

2020-01-05 19:32:48.854 Info HttpServer: HTTP Response 200 to 192.168.1.246. Time: 3ms. http://192.168.1.152:1234/emby/LiveTv/Channels/5082379?userId=a08711a48b194896b8cc7961d7d28bae&format=json
2020-01-05 19:32:48.924 Info HttpServer: HTTP GET http://192.168.1.152:1234/emby/LiveTv/Channels/5082379?userId=a08711a48b194896b8cc7961d7d28bae&format=json. UserAgent: Dalvik/2.1.0 (Linux; U; Android 9; SHIELD Android TV Build/PPR1.180610.011)
2020-01-05 19:32:48.925 Info HttpServer: HTTP Response 200 to 192.168.1.246. Time: 2ms. http://192.168.1.152:1234/emby/LiveTv/Channels/5082379?userId=a08711a48b194896b8cc7961d7d28bae&format=json
2020-01-05 19:32:48.968 Info HttpServer: HTTP POST http://192.168.1.152:1234/emby/Items/5082379/PlaybackInfo?format=json. UserAgent: Dalvik/2.1.0 (Linux; U; Android 9; SHIELD Android TV Build/PPR1.180610.011)
2020-01-05 19:32:48.977 Debug App: GetPostedPlaybackInfo request: {"Id":"5082379","UserId":"a08711a48b194896b8cc7961d7d28bae","MaxStreamingBitrate":110000000,"StartTimeTicks":0,"SubtitleStreamIndex":-1,"MaxAudioChannels":8,"DeviceProfile":{"Name":"Android-Exo","EnableAlbumArtInDidl":false,"EnableSingleAlbumArtLimit":false,"EnableSingleSubtitleLimit":false,"SupportedMediaTypes":"Audio,Photo,Video","MaxAlbumArtWidth":0,"MaxAlbumArtHeight":0,"MaxStreamingBitrate":110000000,"MusicStreamingTranscodingBitrate":128000,"TimelineOffsetSeconds":0,"RequiresPlainVideoItems":false,"RequiresPlainFolders":false,"IgnoreTranscodeByteRangeRequests":false,"XmlRootAttributes":[],"DirectPlayProfiles":[{"Container":"ts,mpegts,m4v,mov,xvid,vob,mkv,wmv,asf,ogm,ogv,mp4,webm,m4a,fmp4,ogg,flv,flac","AudioCodec":"aac,aac_latm,mp3,mp2,pcm_s16le,pcm_s24le,pcm_s32le,opus,ac3,eac3,dts,dca,dtshd,truehd","VideoCodec":"h264,hevc,vp8,vp9,mpeg,mpeg2video,vc1","Type":"Video"},{"Container":"aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac","Type":"Audio"},{"Container":"jpg,jpeg,png,gif","Type":"Photo"}],"TranscodingProfiles":[{"Container":"ts","Type":"Video","VideoCodec":"h264,mpeg2video,hevc,h265","AudioCodec":"ac3,eac3,dts,dca,dtshd,truehd,aac,mp3","Protocol":"hls","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":true,"Context":"Streaming","MinSegments":2,"SegmentLength":0,"BreakOnNonKeyFrames":true,"ManifestSubtitles":"vtt"},{"Container":"ts","Type":"Audio","AudioCodec":"aac","Protocol":"hls","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false}],"ContainerProfiles":[],"CodecProfiles":[{"Type":"Video","Conditions":[{"Condition":"EqualsAny","Property":"VideoProfile","Value":"high|main|baseline|constrained baseline","IsRequired":false},{"Condition":"LessThanEqual","Property":"VideoLevel","Value":"52","IsRequired":false}],"ApplyConditions":[],"Codec":"h264"},{"Type":"Video","Conditions":[{"Condition":"EqualsAny","Property":"VideoProfile","Value":"Main|Main 10","IsRequired":false}],"ApplyConditions":[],"Codec":"hevc"},{"Type":"VideoAudio","Conditions":[{"Condition":"LessThanEqual","Property":"AudioChannels","Value":"6","IsRequired":false}],"ApplyConditions":[],"Codec":"eac3"},{"Type":"VideoAudio","Conditions":[{"Condition":"LessThanEqual","Property":"AudioBitDepth","Value":"16","IsRequired":false}],"ApplyConditions":[],"Codec":"flac"},{"Type":"VideoAudio","Conditions":[{"Condition":"LessThanEqual","Property":"AudioChannels","Value":"8","IsRequired":false}],"ApplyConditions":[]}],"ResponseProfiles":[],"SubtitleProfiles":[{"Format":"srt","Method":"Embed"},{"Format":"srt","Method":"External"},{"Format":"subrip","Method":"Embed"},{"Format":"subrip","Method":"External"},{"Format":"ass","Method":"Embed"},{"Format":"ssa","Method":"Embed"},{"Format":"ass","Method":"External"},{"Format":"ssa","Method":"External"},{"Format":"pgs","Method":"Embed"},{"Format":"pgssub","Method":"Embed"},{"Format":"dvdsub","Method":"Encode"},{"Format":"dvbsub","Method":"Embed"},{"Format":"vobsub","Method":"Encode"},{"Format":"dvb_teletext","Method":"Embed"},{"Format":"dvb_teletext","Method":"External"},{"Format":"dvb_subtitle","Method":"Embed"},{"Format":"vtt","Method":"Hls"},{"Format":"vtt","Method":"External"},{"Format":"ttml","Method":"Embed"},{"Format":"ttml","Method":"External"},{"Format":"tx3g","Method":"Embed"},{"Format":"tx3g","Method":"External"},{"Format":"sub","Method":"Encode"},{"Format":"idx","Method":"Encode"}]},"EnableDirectPlay":true,"EnableDirectStream":true,"EnableTranscoding":true,"AllowVideoStreamCopy":true,"AllowAudioStreamCopy":true,"IsPlayback":true,"AutoOpenLiveStream":true,"DirectPlayProtocols":["Http"]}
2020-01-05 19:32:49.012 Info App: User policy for Master. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
2020-01-05 19:32:49.022 Info LiveTvManager: Opening channel stream from VirtualTV, external channel Id: VirtualTV0
2020-01-05 19:32:49.064 Info HttpServer: HTTP POST http://127.0.0.1:1234/emby/Items/2736/PlaybackInfo?UserId=2. UserAgent:
2020-01-05 19:32:49.067 Debug App: GetPostedPlaybackInfo request: {"Id":"2736","UserId":"2","MaxStreamingBitrate":100000000,"StartTimeTicks":6420573350,"EnableDirectPlay":true,"EnableDirectStream":true,"EnableTranscoding":true,"AllowVideoStreamCopy":true,"AllowAudioStreamCopy":true,"IsPlayback":true,"AutoOpenLiveStream":true,"DirectPlayProtocols":["Http"]}
2020-01-05 19:32:49.083 Info HttpServer: HTTP Response 200 to 127.0.0.1. Time: 19ms. http://127.0.0.1:1234/emby/Items/2736/PlaybackInfo?UserId=2
2020-01-05 19:32:49.108 Error HttpServer: Error processing request
    *** Error Report ***
    Version: 4.4.0.5
    Command line: C:\Users\Media\AppData\Roaming\Emby-Server\system\EmbyServer.dll -noautorunwebapp
    Operating system: Microsoft Windows NT 6.2.9200.0
    64-Bit OS: True
    64-Bit Process: True
    User Interactive: True
    Runtime: file:///C:/Users/Media/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll
    System.Environment.Version: 3.1.0
    Processor count: 4
    Program data path: C:\Users\Media\AppData\Roaming\Emby-Server
    Application directory: C:\Users\Media\AppData\Roaming\Emby-Server\system
    System.InvalidOperationException: System.InvalidOperationException: Sequence contains no matching element
     at System.Linq.ThrowHelper.ThrowNoMatchException()
     at System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate)
     at VirtualTV.Services.StreamingService.EmbyDirectStream(CancellationToken cancellationToken, String channelId)
     at VirtualTV.Services.StreamingService.GetLiveTvStream(CancellationToken cancellationToken, String channelId, String streamId)
     at VirtualTV.VirtualLiveTvService.GetChannelStream(String channelId, String streamId, CancellationToken cancellationToken)
     at Emby.LiveTV.LiveTvManager.GetChannelStream(String id, String mediaSourceId, CancellationToken cancellationToken)
     at Emby.LiveTV.LiveTvMediaSourceProvider.OpenMediaSource(String openToken, CancellationToken cancellationToken)
     at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken)
     at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStream(LiveStreamRequest request, CancellationToken cancellationToken)
     at Emby.Server.MediaEncoding.Api.MediaInfoService.OpenMediaSource(OpenMediaSource request)
     at Emby.Server.MediaEncoding.Api.MediaInfoService.GetPlaybackInfo(GetPostedPlaybackInfo request, CancellationToken cancellationToken)
     at Emby.Server.MediaEncoding.Api.MediaInfoService.Post(GetPostedPlaybackInfo request)
     at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task)
     at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost appHost, IRequest httpReq, IResponse httpRes, RestPath restPath, String responseContentType, CancellationToken cancellationToken)
     at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, ReadOnlyMemory`1 urlString, ReadOnlyMemory`1 localPath, CancellationToken cancellationToken)
    Source: System.Linq
    TargetSite: Void ThrowNoMatchException()
    
2020-01-05 19:32:49.109 Info HttpServer: HTTP Response 500 to 192.168.1.246. Time: 141ms. http://192.168.1.152:1234/emby/Items/5082379/PlaybackInfo?format=json
2020-01-05 19:32:49.409 Info HttpServer: HTTP GET http://192.168.1.152:1234/emby/Users/a08711a48b194896b8cc7961d7d28bae/Items/5082379?format=json. UserAgent: Dalvik/2.1.0 (Linux; U; Android 9; SHIELD Android TV Build/PPR1.180610.011)
2020-01-05 19:32:49.417 Info HttpServer: HTTP Response 200 to 192.168.1.246. Time: 7ms. http://192.168.1.152:1234/emby/Users/a08711a48b194896b8cc7961d7d28bae/Items/5082379?format=json
2020-01-05 19:32:51.482 Info HttpServer: HTTP GET http://192.168.1.152:1234/emby/Users/a08711a48b194896b8cc7961d7d28bae/Items/5083292?format=json. UserAgent: Dalvik/2.1.0 (Linux; U; Android 9; SHIELD Android TV Build/PPR1.180610.011)
2020-01-05 19:32:51.485 Info HttpServer: HTTP Response 200 to 192.168.1.246. Time: 3ms. http://192.168.1.152:1234/emby/Users/a08711a48b194896b8cc7961d7d28bae/Items/5083292?format=json
2020-01-05 19:32:52.492 Info HttpServer: HTTP GET http://192.168.1.152:1234/emby/Users/a08711a48b194896b8cc7961d7d28bae/Items/5083234?format=json. UserAgent: Dalvik/2.1.0 (Linux; U; Android 9; SHIELD Android TV Build/PPR1.180610.011)
2020-01-05 19:32:52.496 Info HttpServer: HTTP Response 200 to 192.168.1.246. Time: 4ms. http://192.168.1.152:1234/emby/Users/a08711a48b194896b8cc7961d7d28bae/Items/5083234?format=json
2020-01-05 19:32:52.517 Info HttpServer: HTTP GET http://192.168.1.152:1234/emby/LiveTv/Channels/5083234?userId=a08711a48b194896b8cc7961d7d28bae&format=json. UserAgent: Dalvik/2.1.0 (Linux; U; Android 9; SHIELD Android TV Build/PPR1.180610.011)
2020-01-05 19:32:52.519 Info HttpServer: HTTP Response 200 to 192.168.1.246. Time: 2ms. http://192.168.1.152:1234/emby/LiveTv/Channels/5083234?userId=a08711a48b194896b8cc7961d7d28bae&format=json
2020-01-05 19:32:52.586 Info HttpServer: HTTP GET http://192.168.1.152:1234/emby/LiveTv/Channels/5083234?userId=a08711a48b194896b8cc7961d7d28bae&format=json. UserAgent: Dalvik/2.1.0 (Linux; U; Android 9; SHIELD Android TV Build/PPR1.180610.011)
2020-01-05 19:32:52.588 Info HttpServer: HTTP Response 200 to 192.168.1.246. Time: 2ms. http://192.168.1.152:1234/emby/LiveTv/Channels/5083234?userId=a08711a48b194896b8cc7961d7d28bae&format=json
2020-01-05 19:32:52.632 Info HttpServer: HTTP POST http://192.168.1.152:1234/emby/Items/5083234/PlaybackInfo?format=json. UserAgent: Dalvik/2.1.0 (Linux; U; Android 9; SHIELD Android TV Build/PPR1.180610.011)
2020-01-05 19:32:52.633 Debug App: GetPostedPlaybackInfo request: {"Id":"5083234","UserId":"a08711a48b194896b8cc7961d7d28bae","MaxStreamingBitrate":110000000,"StartTimeTicks":0,"SubtitleStreamIndex":-1,"MaxAudioChannels":8,"DeviceProfile":{"Name":"Android-Exo","EnableAlbumArtInDidl":false,"EnableSingleAlbumArtLimit":false,"EnableSingleSubtitleLimit":false,"SupportedMediaTypes":"Audio,Photo,Video","MaxAlbumArtWidth":0,"MaxAlbumArtHeight":0,"MaxStreamingBitrate":110000000,"MusicStreamingTranscodingBitrate":128000,"TimelineOffsetSeconds":0,"RequiresPlainVideoItems":false,"RequiresPlainFolders":false,"IgnoreTranscodeByteRangeRequests":false,"XmlRootAttributes":[],"DirectPlayProfiles":[{"Container":"ts,mpegts,m4v,mov,xvid,vob,mkv,wmv,asf,ogm,ogv,mp4,webm,m4a,fmp4,ogg,flv,flac","AudioCodec":"aac,aac_latm,mp3,mp2,pcm_s16le,pcm_s24le,pcm_s32le,opus,ac3,eac3,dts,dca,dtshd,truehd","VideoCodec":"h264,hevc,vp8,vp9,mpeg,mpeg2video,vc1","Type":"Video"},{"Container":"aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac","Type":"Audio"},{"Container":"jpg,jpeg,png,gif","Type":"Photo"}],"TranscodingProfiles":[{"Container":"ts","Type":"Video","VideoCodec":"h264,mpeg2video,hevc,h265","AudioCodec":"ac3,eac3,dts,dca,dtshd,truehd,aac,mp3","Protocol":"hls","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":true,"Context":"Streaming","MinSegments":2,"SegmentLength":0,"BreakOnNonKeyFrames":true,"ManifestSubtitles":"vtt"},{"Container":"ts","Type":"Audio","AudioCodec":"aac","Protocol":"hls","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false}],"ContainerProfiles":[],"CodecProfiles":[{"Type":"Video","Conditions":[{"Condition":"EqualsAny","Property":"VideoProfile","Value":"high|main|baseline|constrained baseline","IsRequired":false},{"Condition":"LessThanEqual","Property":"VideoLevel","Value":"52","IsRequired":false}],"ApplyConditions":[],"Codec":"h264"},{"Type":"Video","Conditions":[{"Condition":"EqualsAny","Property":"VideoProfile","Value":"Main|Main 10","IsRequired":false}],"ApplyConditions":[],"Codec":"hevc"},{"Type":"VideoAudio","Conditions":[{"Condition":"LessThanEqual","Property":"AudioChannels","Value":"6","IsRequired":false}],"ApplyConditions":[],"Codec":"eac3"},{"Type":"VideoAudio","Conditions":[{"Condition":"LessThanEqual","Property":"AudioBitDepth","Value":"16","IsRequired":false}],"ApplyConditions":[],"Codec":"flac"},{"Type":"VideoAudio","Conditions":[{"Condition":"LessThanEqual","Property":"AudioChannels","Value":"8","IsRequired":false}],"ApplyConditions":[]}],"ResponseProfiles":[],"SubtitleProfiles":[{"Format":"srt","Method":"Embed"},{"Format":"srt","Method":"External"},{"Format":"subrip","Method":"Embed"},{"Format":"subrip","Method":"External"},{"Format":"ass","Method":"Embed"},{"Format":"ssa","Method":"Embed"},{"Format":"ass","Method":"External"},{"Format":"ssa","Method":"External"},{"Format":"pgs","Method":"Embed"},{"Format":"pgssub","Method":"Embed"},{"Format":"dvdsub","Method":"Encode"},{"Format":"dvbsub","Method":"Embed"},{"Format":"vobsub","Method":"Encode"},{"Format":"dvb_teletext","Method":"Embed"},{"Format":"dvb_teletext","Method":"External"},{"Format":"dvb_subtitle","Method":"Embed"},{"Format":"vtt","Method":"Hls"},{"Format":"vtt","Method":"External"},{"Format":"ttml","Method":"Embed"},{"Format":"ttml","Method":"External"},{"Format":"tx3g","Method":"Embed"},{"Format":"tx3g","Method":"External"},{"Format":"sub","Method":"Encode"},{"Format":"idx","Method":"Encode"}]},"EnableDirectPlay":true,"EnableDirectStream":true,"EnableTranscoding":true,"AllowVideoStreamCopy":true,"AllowAudioStreamCopy":true,"IsPlayback":true,"AutoOpenLiveStream":true,"DirectPlayProtocols":["Http"]}
2020-01-05 19:32:52.634 Info App: User policy for Master. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
2020-01-05 19:32:52.635 Info LiveTvManager: Opening channel stream from VirtualTV, external channel Id: VirtualTV1
2020-01-05 19:32:52.665 Info HttpServer: HTTP POST http://127.0.0.1:1234/emby/Items/4132302/PlaybackInfo?UserId=2. UserAgent:
2020-01-05 19:32:52.665 Debug App: GetPostedPlaybackInfo request: {"Id":"4132302","UserId":"2","MaxStreamingBitrate":100000000,"StartTimeTicks":48456615628,"EnableDirectPlay":true,"EnableDirectStream":true,"EnableTranscoding":true,"AllowVideoStreamCopy":true,"AllowAudioStreamCopy":true,"IsPlayback":true,"AutoOpenLiveStream":true,"DirectPlayProtocols":["Http"]}
2020-01-05 19:32:52.669 Info HttpServer: HTTP Response 200 to 127.0.0.1. Time: 4ms. http://127.0.0.1:1234/emby/Items/4132302/PlaybackInfo?UserId=2
2020-01-05 19:32:52.671 Error HttpServer: Error processing request
    *** Error Report ***
    Version: 4.4.0.5
    Command line: C:\Users\Media\AppData\Roaming\Emby-Server\system\EmbyServer.dll -noautorunwebapp
    Operating system: Microsoft Windows NT 6.2.9200.0
    64-Bit OS: True
    64-Bit Process: True
    User Interactive: True
    Runtime: file:///C:/Users/Media/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll
    System.Environment.Version: 3.1.0
    Processor count: 4
    Program data path: C:\Users\Media\AppData\Roaming\Emby-Server
    Application directory: C:\Users\Media\AppData\Roaming\Emby-Server\system
    System.InvalidOperationException: System.InvalidOperationException: Sequence contains no matching element
     at System.Linq.ThrowHelper.ThrowNoMatchException()
     at System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate)
     at VirtualTV.Services.StreamingService.EmbyDirectStream(CancellationToken cancellationToken, String channelId)
     at VirtualTV.Services.StreamingService.GetLiveTvStream(CancellationToken cancellationToken, String channelId, String streamId)
     at VirtualTV.VirtualLiveTvService.GetChannelStream(String channelId, String streamId, CancellationToken cancellationToken)
     at Emby.LiveTV.LiveTvManager.GetChannelStream(String id, String mediaSourceId, CancellationToken cancellationToken)
     at Emby.LiveTV.LiveTvMediaSourceProvider.OpenMediaSource(String openToken, CancellationToken cancellationToken)
     at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken)
     at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStream(LiveStreamRequest request, CancellationToken cancellationToken)
     at Emby.Server.MediaEncoding.Api.MediaInfoService.OpenMediaSource(OpenMediaSource request)
     at Emby.Server.MediaEncoding.Api.MediaInfoService.GetPlaybackInfo(GetPostedPlaybackInfo request, CancellationToken cancellationToken)
     at Emby.Server.MediaEncoding.Api.MediaInfoService.Post(GetPostedPlaybackInfo request)
     at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task)
     at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost appHost, IRequest httpReq, IResponse httpRes, RestPath restPath, String responseContentType, CancellationToken cancellationToken)
     at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, ReadOnlyMemory`1 urlString, ReadOnlyMemory`1 localPath, CancellationToken cancellationToken)
    Source: System.Linq
    TargetSite: Void ThrowNoMatchException()
    
2020-01-05 19:32:52.671 Info HttpServer: HTTP Response 500 to 192.168.1.246. Time: 39ms. http://192.168.1.152:1234/emby/Items/5083234/PlaybackInfo?format=json
2

Full log attached.

 

Also noticed, that when a Movie plays, it transcodes ("Continous Playback" is off), whereas if I play the same movie from my library, it Direct Plays.

 

Thanks.

embyserver-63713849836.txt

Share this post


Link to post
Share on other sites
pünktchen

Getting the following errors in the server log when trying to play 1 of my 2 channels (TV Shows & Movies).

 
Get the error "Unable to tune to channel" in the Android TV (ATV) app.

 

Open this in a browser and post the response: http://127.0.0.1:1234/emby/Items/4132302/PlaybackInfo?UserId=2&api_key={paste your api key here}

 

 

Also noticed, that when a Movie plays, it transcodes ("Continous Playback" is off), whereas if I play the same movie from my library, it Direct Plays.

 

Blame Emby! I'm just saying i want a direct stream copy of your video file and Emby does whatever it wants.

  • Like 1

Share this post


Link to post
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...