maegibbons 1287 Posted March 20, 2022 Posted March 20, 2022 (edited) @Anthony Musgrove @Luke Hi Antony Hope you are well. Scripterx has been working flawlessly since inception till now for me. Thank you. However, now on beta 4.7.0.31 Scripterx has not been working for me over the last few updates. I am getting the following error in my logs: (i have tried uninstall/reinstall): 2022-03-20 12:02:10.740 Error App: Error creating EmbyScripterX.ScripterXController *** Error Report *** Version: 4.7.0.31 Command line: C:\EmbyServer\system\EmbyServer.dll -noautorunwebapp Operating system: Microsoft Windows 10.0.19044 Framework: .NET 6.0.2 OS/Process: x64/x64 Runtime: C:/EmbyServer/system/System.Private.CoreLib.dll Processor count: 12 Data path: C:\EmbyServer\programdata Application path: C:\EmbyServer\system SimpleInjector.ActivationException: SimpleInjector.ActivationException: No registration for type ScripterXController could be found and an implicit registration could not be made. Method not found: 'System.Collections.Generic.IReadOnlyList`1<MediaBrowser.Controller.LiveTv.ILiveTvService> MediaBrowser.Controller.LiveTv.ILiveTvManager.get_Services()'. ---> System.MissingMethodException: Method not found: 'System.Collections.Generic.IReadOnlyList`1<MediaBrowser.Controller.LiveTv.ILiveTvService> MediaBrowser.Controller.LiveTv.ILiveTvManager.get_Services()'. at EmbyScripterX.ScripterXDVRMonitor.attachLiveTVInstance() at EmbyScripterX.ScripterXDVRMonitor..ctor(ILiveTvManager liveTvManager, ILibraryManager libraryManager) at EmbyScripterX.ScripterXController..ctor(ISessionManager sessionManager, IJsonSerializer jsonSerializer, IHttpClient httpClient, ILogManager logManager, IUserDataManager userDataManager, ILibraryManager libraryManager, IProviderManager providerManager, ITaskManager taskManager, ILiveTvManager liveTvManager, IDeviceManager deviceManager, ICollectionManager collectionManager, IServerConfigurationManager serverConfigurationManager, IApplicationHost applicationHost, IServerApplicationHost serverApplicationHost, IUserManager userManager, IDeviceDiscovery deviceDiscoveryManager, IEnvironmentInfo environmentInfo, IApplicationPaths applicationPaths, IHttpServer httpServer, IZipClient zipClient, IFileSystem fileSystem, IXmlSerializer xmlSerializer, ISubtitleManager subtitleManager) at lambda_method847(Closure ) at SimpleInjector.InstanceProducer.BuildAndReplaceInstanceCreatorAndCreateFirstInstance() at SimpleInjector.InstanceProducer.GetInstance() --- End of inner exception stack trace --- at SimpleInjector.InstanceProducer.GetInstance() at SimpleInjector.Container.GetInstanceForRootType(Type serviceType) at SimpleInjector.Container.GetInstance(Type serviceType) at Emby.Server.Implementations.ApplicationHost.CreateInstanceSafe(Tuple`2 typeInfo) Source: SimpleInjector TargetSite: System.Object GetInstance() InnerException: System.MissingMethodException: Method not found: 'System.Collections.Generic.IReadOnlyList`1<MediaBrowser.Controller.LiveTv.ILiveTvService> MediaBrowser.Controller.LiveTv.ILiveTvManager.get_Services()'. Source: EmbyScripterX TargetSite: Void attachLiveTVInstance() at EmbyScripterX.ScripterXDVRMonitor.attachLiveTVInstance() at EmbyScripterX.ScripterXDVRMonitor..ctor(ILiveTvManager liveTvManager, ILibraryManager libraryManager) at EmbyScripterX.ScripterXController..ctor(ISessionManager sessionManager, IJsonSerializer jsonSerializer, IHttpClient httpClient, ILogManager logManager, IUserDataManager userDataManager, ILibraryManager libraryManager, IProviderManager providerManager, ITaskManager taskManager, ILiveTvManager liveTvManager, IDeviceManager deviceManager, ICollectionManager collectionManager, IServerConfigurationManager serverConfigurationManager, IApplicationHost applicationHost, IServerApplicationHost serverApplicationHost, IUserManager userManager, IDeviceDiscovery deviceDiscoveryManager, IEnvironmentInfo environmentInfo, IApplicationPaths applicationPaths, IHttpServer httpServer, IZipClient zipClient, IFileSystem fileSystem, IXmlSerializer xmlSerializer, ISubtitleManager subtitleManager) at lambda_method847(Closure ) at SimpleInjector.InstanceProducer.BuildAndReplaceInstanceCreatorAndCreateFirstInstance() at SimpleInjector.InstanceProducer.GetInstance() Is this one for you or @Luke to fix? Krs Mark Edited March 20, 2022 by maegibbons 1
Luke 42077 Posted March 20, 2022 Posted March 20, 2022 6 hours ago, maegibbons said: @Anthony Musgrove @Luke Hi Antony Hope you are well. Scripterx has been working flawlessly since inception till now for me. Thank you. However, now on beta 4.7.0.31 Scripterx has not been working for me over the last few updates. I am getting the following error in my logs: (i have tried uninstall/reinstall): 2022-03-20 12:02:10.740 Error App: Error creating EmbyScripterX.ScripterXController *** Error Report *** Version: 4.7.0.31 Command line: C:\EmbyServer\system\EmbyServer.dll -noautorunwebapp Operating system: Microsoft Windows 10.0.19044 Framework: .NET 6.0.2 OS/Process: x64/x64 Runtime: C:/EmbyServer/system/System.Private.CoreLib.dll Processor count: 12 Data path: C:\EmbyServer\programdata Application path: C:\EmbyServer\system SimpleInjector.ActivationException: SimpleInjector.ActivationException: No registration for type ScripterXController could be found and an implicit registration could not be made. Method not found: 'System.Collections.Generic.IReadOnlyList`1<MediaBrowser.Controller.LiveTv.ILiveTvService> MediaBrowser.Controller.LiveTv.ILiveTvManager.get_Services()'. ---> System.MissingMethodException: Method not found: 'System.Collections.Generic.IReadOnlyList`1<MediaBrowser.Controller.LiveTv.ILiveTvService> MediaBrowser.Controller.LiveTv.ILiveTvManager.get_Services()'. at EmbyScripterX.ScripterXDVRMonitor.attachLiveTVInstance() at EmbyScripterX.ScripterXDVRMonitor..ctor(ILiveTvManager liveTvManager, ILibraryManager libraryManager) at EmbyScripterX.ScripterXController..ctor(ISessionManager sessionManager, IJsonSerializer jsonSerializer, IHttpClient httpClient, ILogManager logManager, IUserDataManager userDataManager, ILibraryManager libraryManager, IProviderManager providerManager, ITaskManager taskManager, ILiveTvManager liveTvManager, IDeviceManager deviceManager, ICollectionManager collectionManager, IServerConfigurationManager serverConfigurationManager, IApplicationHost applicationHost, IServerApplicationHost serverApplicationHost, IUserManager userManager, IDeviceDiscovery deviceDiscoveryManager, IEnvironmentInfo environmentInfo, IApplicationPaths applicationPaths, IHttpServer httpServer, IZipClient zipClient, IFileSystem fileSystem, IXmlSerializer xmlSerializer, ISubtitleManager subtitleManager) at lambda_method847(Closure ) at SimpleInjector.InstanceProducer.BuildAndReplaceInstanceCreatorAndCreateFirstInstance() at SimpleInjector.InstanceProducer.GetInstance() --- End of inner exception stack trace --- at SimpleInjector.InstanceProducer.GetInstance() at SimpleInjector.Container.GetInstanceForRootType(Type serviceType) at SimpleInjector.Container.GetInstance(Type serviceType) at Emby.Server.Implementations.ApplicationHost.CreateInstanceSafe(Tuple`2 typeInfo) Source: SimpleInjector TargetSite: System.Object GetInstance() InnerException: System.MissingMethodException: Method not found: 'System.Collections.Generic.IReadOnlyList`1<MediaBrowser.Controller.LiveTv.ILiveTvService> MediaBrowser.Controller.LiveTv.ILiveTvManager.get_Services()'. Source: EmbyScripterX TargetSite: Void attachLiveTVInstance() at EmbyScripterX.ScripterXDVRMonitor.attachLiveTVInstance() at EmbyScripterX.ScripterXDVRMonitor..ctor(ILiveTvManager liveTvManager, ILibraryManager libraryManager) at EmbyScripterX.ScripterXController..ctor(ISessionManager sessionManager, IJsonSerializer jsonSerializer, IHttpClient httpClient, ILogManager logManager, IUserDataManager userDataManager, ILibraryManager libraryManager, IProviderManager providerManager, ITaskManager taskManager, ILiveTvManager liveTvManager, IDeviceManager deviceManager, ICollectionManager collectionManager, IServerConfigurationManager serverConfigurationManager, IApplicationHost applicationHost, IServerApplicationHost serverApplicationHost, IUserManager userManager, IDeviceDiscovery deviceDiscoveryManager, IEnvironmentInfo environmentInfo, IApplicationPaths applicationPaths, IHttpServer httpServer, IZipClient zipClient, IFileSystem fileSystem, IXmlSerializer xmlSerializer, ISubtitleManager subtitleManager) at lambda_method847(Closure ) at SimpleInjector.InstanceProducer.BuildAndReplaceInstanceCreatorAndCreateFirstInstance() at SimpleInjector.InstanceProducer.GetInstance() Is this one for you or @Luke to fix? Krs Mark It will need a compatibility update. If the source is available I can help with that.
maegibbons 1287 Posted March 20, 2022 Posted March 20, 2022 1 hour ago, Luke said: It will need a compatibility update. If the source is available I can help with that. Hi @Luke the source is on Guthub : https://github.com/AnthonyMusgrove/Emby-ScripterX krs Mark
harrv 90 Posted March 20, 2022 Posted March 20, 2022 (edited) 1 hour ago, maegibbons said: Hi @Luke the source is on Guthub : https://github.com/AnthonyMusgrove/Emby-ScripterX krs Mark Unfortunately, the source code to the plugin itself is not there -- just some example scripts, images, and an example "package" as well as two .dll (pre-built) plugin binaries. The missing source code has been a concern I've had since I first noticed, in case Anthony is someday unable to continue to update it for some reason. Edited March 20, 2022 by harrv clarification
Luke 42077 Posted March 20, 2022 Posted March 20, 2022 1 hour ago, harrv said: Unfortunately, the source code to the plugin itself is not there -- just some example scripts, images, and an example "package" as well as two .dll (pre-built) plugin binaries. The missing source code has been a concern I've had since I first noticed, in case Anthony is someday unable to continue to update it for some reason. OK well he does check in from time to time so I'm sure when he sees this he'll push out an update.
ChrisHammond56 4 Posted March 20, 2022 Posted March 20, 2022 Working on the 'worst case' outcome. @Lukewhere are we on the Web Hooks separate app to provide a similar capability. Did you ever produce a requirements specification for the additions/improvements?
harrv 90 Posted March 21, 2022 Posted March 21, 2022 12 hours ago, maegibbons said: @Anthony Musgrove @Luke However, now on beta 4.7.0.31.... This is really good to know. For what it's worth, just in case you don't need the beta version of Emby Server, the Scripter-X plugin is still working fine on Emby Server version 4.6.7.0. I hope Anthony is able to do the compatibility update before the change that requires it comes out of beta.
Luke 42077 Posted March 21, 2022 Posted March 21, 2022 1 hour ago, ChrisHammond56 said: Working on the 'worst case' outcome. @Lukewhere are we on the Web Hooks separate app to provide a similar capability. Did you ever produce a requirements specification for the additions/improvements? That was an idea I tossed around the last time he was inactive for a while, but then he came back and everyone was happy again, so it hasn't gone anywhere. But more events and information have been added to webhooks since then.
harrv 90 Posted March 21, 2022 Posted March 21, 2022 (edited) 1 hour ago, Luke said: That was an idea I tossed around the last time he was inactive for a while, but then he came back and everyone was happy again, so it hasn't gone anywhere. But more events and information have been added to webhooks since then. If it's helpful to hear from a user, the webhooks feature has most of what I want it to do already, but events I'd like to see added would include when a movie or episode (or any media item) is added to Emby (such as when a library scan detects and adds something new) and also when something is removed. At it is right now, I could maybe get by without Scripter-X if I needed to by making use of the Sonarr, Radarr and Ombi webhook features for items that are added or removed (or requested/fulfilled), but that would be nice to have added to the Emby webhooks feature. I'd also like the ability to more fully define more of the HTTP details, such as whether a particular webhook uses POST or PUT (or even GET with query params), as well as being able to define request headers, like Authorization (for basic username/password authentication) or a custom header name and value for other kinds of token-based headers, etc. And while I personally have the ability to write the code on the receiving end of the webhooks, many users don't and for them I suspect they really like Scripter-X's ability to be able to customize the payload with a template -- defining which related variables appear in it and where. Also, while I'm not currently using this feature, it seems pretty useful to be able to run a local script that receives parameters (or calls an executable with parameters), rather than calling a webhook, and that's something Scripter-X also does. I also really like Scripter-X's ability to filter events using a where clause. I do often make use of that if an event can happen for more than one reason -- both to ignore certain types of events, and to change what webhook I call or the payload I use depending on whether the subject of the event is a TV episode or a movie, etc. Edited March 21, 2022 by harrv added another feature I'd like
ChrisHammond56 4 Posted March 21, 2022 Posted March 21, 2022 As a 'user' I have a limited use-case, so my requirements may be overly simplified compared to the completeness of Scripter-X. Scripter-X is a very good tool to allow me to change channels prior to a LiveTV or Recording TV event. But certain 'event' details are missing, and waiting for the plugin to catch up with Emby is frustrating at times. A WebHook seems to be one solution for me, however, again, the events are sparse (unless I have missed something). These are the ones available to me: I could possibly use Playback Start for LiveTV (as I am currently doing with Scripter-X for %item.name% and %item.type%): The issue here is that the %*tuner*% variables are not available, which requires an update from Anthony I do not see a WebHook for RecordedTV (again, I am using Scripter-X): For my limited use, I am wondering if extending the LiveTV advanced options to have 'LiveTV Pre Processing' and 'Recording Pre Processing' entries, much like the 'Recording Post Processing' we have now: A script could then be called via this method. Variables would have to be documented to allow Emby variables in the command line arguments. This is a mock-up example: I think for this method, the 'user' would have a good knowledge of programming/scripting (not a simple GUI click), therefore the script could ascertain which event type was called (aka Scripter-X 'WHERE' filtering). In BASH: if [[ "$ITEM.TYPE" == "LiveTv" ]]; then <do your stuff>; fi Emby variables (off the top of my head would need to include): {channel.number} OR {channel.name} "101", "Quest", Etc. {tuner.type} "M3U", "HDHR" Etc. {tuner.url} "http://192.168.22.64:8888/ts/0", "/volume1/Emby/tuner/skyqOffice.m3u", Etc. {item.type} "LiveTv", "RecordTV", Etc I am assuming that these are all available, as Anthony extrapolates these for use with Scripter-X?
Nebarik 7 Posted March 21, 2022 Posted March 21, 2022 Chiming in as a user too. My media is all hosted on Google Drive with Rclone and VFS caching. In practice this means fresh uncached episodes take several seconds to first download to my server before they can begin playing. So I use ScripterX to kick in at around 80% playback position and send show and episode info to a script I wrote, which then adds 1 to the episode number and goes off and does a cat commad on the next episode. Thus getting it nice and cached and ready to go for when the next episode starts. On that note, if anyone knows how to get a similar function working from browsing Emby I would love to hear it. As in; user clicks into a show or movie (not playing it yet), and it sends that info to a script that can start cat-ing it ahead of time, so when the user presses play there's less of a buffering wait.
Luke 42077 Posted March 21, 2022 Posted March 21, 2022 14 hours ago, harrv said: If it's helpful to hear from a user, the webhooks feature has most of what I want it to do already, but events I'd like to see added would include when a movie or episode (or any media item) is added to Emby (such as when a library scan detects and adds something new) and also when something is removed. At it is right now, I could maybe get by without Scripter-X if I needed to by making use of the Sonarr, Radarr and Ombi webhook features for items that are added or removed (or requested/fulfilled), but that would be nice to have added to the Emby webhooks feature. I'd also like the ability to more fully define more of the HTTP details, such as whether a particular webhook uses POST or PUT (or even GET with query params), as well as being able to define request headers, like Authorization (for basic username/password authentication) or a custom header name and value for other kinds of token-based headers, etc. And while I personally have the ability to write the code on the receiving end of the webhooks, many users don't and for them I suspect they really like Scripter-X's ability to be able to customize the payload with a template -- defining which related variables appear in it and where. Also, while I'm not currently using this feature, it seems pretty useful to be able to run a local script that receives parameters (or calls an executable with parameters), rather than calling a webhook, and that's something Scripter-X also does. I also really like Scripter-X's ability to filter events using a where clause. I do often make use of that if an event can happen for more than one reason -- both to ignore certain types of events, and to change what webhook I call or the payload I use depending on whether the subject of the event is a TV episode or a movie, etc. Item added/removed got it. Those are on the to do list.
Luke 42077 Posted March 21, 2022 Posted March 21, 2022 5 hours ago, ChrisHammond56 said: As a 'user' I have a limited use-case, so my requirements may be overly simplified compared to the completeness of Scripter-X. Scripter-X is a very good tool to allow me to change channels prior to a LiveTV or Recording TV event. But certain 'event' details are missing, and waiting for the plugin to catch up with Emby is frustrating at times. A WebHook seems to be one solution for me, however, again, the events are sparse (unless I have missed something). These are the ones available to me: I could possibly use Playback Start for LiveTV (as I am currently doing with Scripter-X for %item.name% and %item.type%): The issue here is that the %*tuner*% variables are not available, which requires an update from Anthony I do not see a WebHook for RecordedTV (again, I am using Scripter-X): For my limited use, I am wondering if extending the LiveTV advanced options to have 'LiveTV Pre Processing' and 'Recording Pre Processing' entries, much like the 'Recording Post Processing' we have now: A script could then be called via this method. Variables would have to be documented to allow Emby variables in the command line arguments. This is a mock-up example: I think for this method, the 'user' would have a good knowledge of programming/scripting (not a simple GUI click), therefore the script could ascertain which event type was called (aka Scripter-X 'WHERE' filtering). In BASH: if [[ "$ITEM.TYPE" == "LiveTv" ]]; then <do your stuff>; fi Emby variables (off the top of my head would need to include): {channel.number} OR {channel.name} "101", "Quest", Etc. {tuner.type} "M3U", "HDHR" Etc. {tuner.url} "http://192.168.22.64:8888/ts/0", "/volume1/Emby/tuner/skyqOffice.m3u", Etc. {item.type} "LiveTv", "RecordTV", Etc I am assuming that these are all available, as Anthony extrapolates these for use with Scripter-X? So you want a webhook just before a recording starts?
ChrisHammond56 4 Posted March 21, 2022 Posted March 21, 2022 Correct, and one for when LiveTV starts. Wouldn't hurt to have the stops either
Spaceboy 2573 Posted March 21, 2022 Posted March 21, 2022 5 hours ago, Luke said: So you want a webhook just before a recording starts? yeah the only thing i am currently using scripterx for is to kick off comskip when a recording starts so i get skipped commercials in in progress tv
maegibbons 1287 Posted March 21, 2022 Posted March 21, 2022 11 hours ago, ChrisHammond56 said: For my limited use, I am wondering if extending the LiveTV advanced options to have 'LiveTV Pre Processing' and 'Recording Pre Processing' entries, much like the 'Recording Post Processing' we have now: A script could then be called via this method. Variables would have to be documented to allow Emby variables in the command line arguments. This is a mock-up example: I think for this method, the 'user' would have a good knowledge of programming/scripting (not a simple GUI click), therefore the script could ascertain which event type was called (aka Scripter-X 'WHERE' filtering). In BASH: if [[ "$ITEM.TYPE" == "LiveTv" ]]; then <do your stuff>; fi Emby variables (off the top of my head would need to include): {channel.number} OR {channel.name} "101", "Quest", Etc. {tuner.type} "M3U", "HDHR" Etc. {tuner.url} "http://192.168.22.64:8888/ts/0", "/volume1/Emby/tuner/skyqOffice.m3u", Etc. {item.type} "LiveTv", "RecordTV", Etc I am assuming that these are all available, as Anthony extrapolates these for use with Scripter-X? Expanding on the built in processing options would work for me. But hopefully Anthony can fix Scripterx Krs Mark
Happy2Play 9780 Posted March 21, 2022 Posted March 21, 2022 Anyone tried opening an issue on Github to possibly get devs attention?
Luke 42077 Posted March 22, 2022 Posted March 22, 2022 OK so the next webhooks plugin update will have six new events related to live tv that you can subscribe to. It will be available for server versions 4.7.0.32+: 2 1
ChrisHammond56 4 Posted March 23, 2022 Posted March 23, 2022 Hi @Luke Some initial feedback. It's looking good with the new events. Some issues though... WebHooks for Playback and LiveTV are triggering. If I select a LiveTV channel, I am getting a playback.start or playback.stop event. If I use the guide to select a program, and then choose to record that program, I am getting a livetv.TimerCreated event. However, I am not getting an event trigger when a scheduled recording starts or stops. I have also noticed that none of the events report the specific tuner used for the trigger. For example, I have 2x M3U tuners added to LiveTV. The resultant event contains the channel number/name Etc, however the Tuner and Tuner URL are not provided in the JSON payload. This is the main reason I was moving towards WebHooks, as I thought that information would be included as part of the payload. Scripter-X has this information missing for LiveTV, but does include it for Recordings (%recording.tuner.type% and %recording.tuner.url%). Thanks
Luke 42077 Posted March 23, 2022 Posted March 23, 2022 11 minutes ago, ChrisHammond56 said: Hi @Luke Some initial feedback. It's looking good with the new events. Some issues though... WebHooks for Playback and LiveTV are triggering. If I select a LiveTV channel, I am getting a playback.start or playback.stop event. If I use the guide to select a program, and then choose to record that program, I am getting a livetv.TimerCreated event. However, I am not getting an event trigger when a scheduled recording starts or stops. I have also noticed that none of the events report the specific tuner used for the trigger. For example, I have 2x M3U tuners added to LiveTV. The resultant event contains the channel number/name Etc, however the Tuner and Tuner URL are not provided in the JSON payload. This is the main reason I was moving towards WebHooks, as I thought that information would be included as part of the payload. Scripter-X has this information missing for LiveTV, but does include it for Recordings (%recording.tuner.type% and %recording.tuner.url%). Thanks I can add tuner info. Getting a playback event though is normal if you were playing live tv.
ChrisHammond56 4 Posted March 24, 2022 Posted March 24, 2022 Yes please to the Tuner additions. For the recording start/stop event issue. This was a test I did. I set a recording schedule from the TV guide, and the recording started, however, I didn't get a WebHook trigger at 23:00: I manually played a LiveTV channel at 22:54 and that was logged. I also selected to record a program from the guide that had already started @23:10: The 23:00 log is missing as the event did not trigger. This is my logger: [23/03/2022 22:54] running as user:root params:/config/iptv/m3uChangeChannel.sh <MultiDictProxy(data: bytearray(b{"Event":"playback.start","User":{"Name":"emby","Id":"f8166f06c3984b5cb3b2b9eb8229c4a5"},"Item":{"Name":"BBC One West Midlands","ServerId":"6c6470fb0b204143bf73daa8411224a9","Id":"4","DateCreated":"2022-03-23T22:52:51.7810970+00:00","PresentationUniqueKey":"0b1f0a3e28f105ec2be490328f3a9e0a","ExternalUrls":[],"Taglines":[],"Bitrate":15096291,"Number":"101","ChannelNumber":"101","ProviderIds":{},"IsFolder":false,"ParentId":"3","Type":"TvChannel","MediaStreams":[{"Codec":"h264","ColorTransfer":"bt709","ColorPrimaries":"bt709","ColorSpace":"bt709","StreamStartTimeTicks":515785694000,"TimeBase":"1/90000","VideoRange":"SDR","DisplayTitle":"1080p H264","NalLengthSize":"0","IsInterlaced":false,"BitRate":15000000,"BitDepth":8,"RefFrames":1,"IsDefault":false,"IsForced":false,"Height":1080,"Width":1920,"AverageFrameRate":50,"RealFrameRate":50,"Profile":"High","Type":"Video","AspectRatio":"16:9","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Protocol":"File","PixelFormat":"yuvj420p","Level":42},{"Codec":"aac","StreamStartTimeTicks":515785903440,"TimeBase":"1/90000","DisplayTitle":"Und AAC stereo","IsInterlaced":false,"ChannelLayout":"stereo","BitRate":96291,"Channels":2,"SampleRate":48000,"IsDefault":false,"IsForced":false,"Profile":"LC","Type":"Audio","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Protocol":"File"}],"ImageTags":{},"BackdropImageTags":[],"MediaType":"Video"},"TranscodingInfo":{"AudioCodec":"aac","VideoCodec":"h264","SubProtocol":"hls","Container":"m3u8","IsVideoDirect":true,"IsAudioDirect":true,"Bitrate":15096291,"AudioBitrate":96291,"VideoBitrate":15000000,"TranscodingPositionTicks":0,"TranscodingStartPositionTicks":0,"Width":1920,"Height":1080,"AudioChannels":2,"TranscodeReasons":["ContainerNotSupported"],"VideoDecoderIsHardware":false,"VideoEncoderIsHardware":false,"VideoPipelineInfo":[{"HardwareContextName":"Software","IsHardwareContext":false,"Name":"SW Decode H.264 (AVC)","Short":"H264","StepType":"Decoder","StepTypeName":"Decode","FfmpegName":"h264","FfmpegDescription":"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10","FfmpegOptions":"","Param":"0:0 - COPY","ParamShort":"0:0 - H.264 (AVC)"},{"HardwareContextName":"Software","IsHardwareContext":false,"Name":"SW Encode copy","Short":"COPY","StepType":"Encoder","StepTypeName":"Encode","Param":"Software Codec","ParamShort":"copy"}],"SubtitlePipelineInfos":[]},"Server":{"Name":"vDSM","Id":"6c6470fb0b204143bf73daa8411224a9"},"Session":{"RemoteEndPoint":"192.168.2.64","Client":"Emby Web","DeviceName":"Chrome Windows","DeviceId":"aba1609f-01bb-443a-8cd6-593c1c0732cf","ApplicationVersion":"4.7.0.32","Id":"7bc76f6c03589087aa1e01a18214eeee"},"PlaybackInfo":{"PositionTicks":0,"PlaylistIndex":0,"PlaylistLength":1}}))> [23/03/2022 23:10] running as user:root params:/config/iptv/m3uChangeChannel.sh <MultiDictProxy(data: bytearray(b{"Event":"livetv.TimerCreated","TimerInfo":{"Status":"New","RunTimeTicks":33000000000,"ProgramInfo":{"Name":"Peston","ServerId":"e0499ff5e16d4138a2359f55744134aa","Id":"1315559","Etag":"45ec61622cc2e581bf3ad93d49947ae7","DateCreated":"2022-03-23T01:00:44.0000000+00:00","CanDelete":false,"CanDownload":false,"PresentationUniqueKey":"EP030518540143","SortName":"Peston","ForcedSortName":"Peston","ExternalUrls":[],"ChannelId":"1296733","ChannelName":"ITV HD","Overview":"Robert Peston presents a fresh, intelligent and lively perspective on the big matters of the day. Featuring major interviews with Westminster heavy hitters, topical guests and all the latest news and updates.","Taglines":[],"Genres":["News","Politics"],"RunTimeTicks":33000000000,"ChannelNumber":"103","IndexNumber":11,"ParentIndexNumber":8,"RemoteTrailers":[],"ProviderIds":{"SeriesZap2It":"EP03051854"},"ParentId":"1296733","Type":"Program","GenreItems":[{"Name":"News","Id":1261129},{"Name":"Politics","Id":1264141}],"TagItems":[{"Name":"New","Id":1261195}],"DisplayPreferencesId":"8cab5e5f60ae4830c47f6431bbe4c3cb","Status":"New","PrimaryImageAspectRatio":0.6666666666666666,"SeasonName":"Season 8","ImageTags":{"Primary":"44e4934d6a19a6fe59f7758c78f37e94"},"BackdropImageTags":[],"MediaType":"Video","EndDate":"2022-03-23T23:40:00.0000000+00:00","LockedFields":[],"LockData":false,"ChannelPrimaryImageTag":"0e979bb2f6cd54cfd0f4bc54f9232562","StartDate":"2022-03-23T22:45:00.0000000+00:00","IsNew":true,"IsSeries":true,"IsNews":true,"TimerId":"b2c8bb406358457498b9daaeb06a2365"},"Id":"b2c8bb406358457498b9daaeb06a2365","Type":"Timer","ServerId":"e0499ff5e16d4138a2359f55744134aa","ChannelId":"1296733","ChannelName":"ITV HD","ChannelPrimaryImageTag":"0e979bb2f6cd54cfd0f4bc54f9232562","ProgramId":"1315559","Name":"Peston","Overview":"Robert Peston presents a fresh, intelligent and lively perspective on the big matters of the day. Featuring major interviews with Westminster heavy hitters, topical guests and all the latest news and updates.","StartDate":"2022-03-23T22:45:00.0000000Z","EndDate":"2022-03-23T23:40:00.0000000Z","Priority":0,"PrePaddingSeconds":0,"PostPaddingSeconds":60,"IsPrePaddingRequired":false,"IsPostPaddingRequired":false,"KeepUntil":"UntilDeleted"},"Server":{"Name":"EMBY","Id":"e0499ff5e16d4138a2359f55744134aa"}}))> So, with the current implementation (and the proposed Tuner additions), I can obtain details for LiveTV using the Event: playback.start/stop and using the 'Type' as a filter. TvChannel is LiveTV (requires channel change) and Episode is playing a Recording (channel change not required). For Scheduled Recordings, I can use Event: livetv.TimerCreated (possibly requires channel change is timer is NOW). I do not know the other Events as the scheduled recording start/stop is not triggering. Chris 1
Anthony Musgrove 220 Posted March 24, 2022 Author Posted March 24, 2022 Hey guys, I am so sorry about the delay. I will be getting back onto this project shortly. I'll also be looking for another developer who would be keen to continue developing with me. Thank you so much everyone for the feedback and for using my plugin. Warmest regards, Anthony 2 1
ThinkPHP 3 Posted March 24, 2022 Posted March 24, 2022 1 hour ago, Anthony Musgrove said: Hey guys, I am so sorry about the delay. I will be getting back onto this project shortly. I'll also be looking for another developer who would be keen to continue developing with me. Thank you so much everyone for the feedback and for using my plugin. Warmest regards, Anthony Has open source been considered? 3
quatre1love 3 Posted March 24, 2022 Posted March 24, 2022 8 hours ago, Anthony Musgrove said: Hey guys, I am so sorry about the delay. I will be getting back onto this project shortly. I'll also be looking for another developer who would be keen to continue developing with me. Thank you so much everyone for the feedback and for using my plugin. Warmest regards, Anthony Hi Anthony, It is so happy to see you back. We tried to develop this project for new version Emby, unfortunately it seems not open source. I believed that many developers in the community are happy to contribute their forces to let the project perfectly. KIND REGARDS 1 1
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now