Jump to content

Search the Community

Showing results for tags 'channel plugin'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements
    • Emby Premiere Purchase/Subscription Support
    • Feature Requests
    • Tutorials and Guides
  • Emby Server
    • General/Windows
    • Android Server
    • Asustor
    • FreeBSD
    • Linux
    • NetGear ReadyNAS
    • MacOS
    • QNAP
    • Synology
    • TerraMaster NAS
    • Thecus
    • Western Digital
    • DLNA
    • Live TV
  • Emby Apps
    • Amazon Alexa
    • Android
    • Android TV / Fire TV
    • Windows & Xbox
    • Apple iOS / macOS
    • Apple TV
    • Kodi
    • LG Smart TV
    • Linux & Raspberry Pi
    • Roku
    • Samsung Smart TV
    • Sony PlayStation
    • Web App
    • Windows Media Center
    • Plugins
  • Language-specific support
    • Arabic
    • Dutch
    • French
    • German
    • Italian
    • Portuguese
    • Russian
    • Spanish
    • Swedish
  • Community Contributions
    • Third Party Apps
    • Fan Art & Videos
    • Tools and Utilities
    • Web App CSS
  • Testing Area
    • WMC UI (Beta)
  • Other
    • Non-Emby General Discussion
    • Developer API
    • Hardware
    • Media Clubs

Blogs

  • Emby Blog

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Found 2 results

  1. Hey guys I'm writing my own channel plugin for personal use. I'm having a problem with Emby handling the meta data. Below is the log and the code causing the problem. You'll notice the log is trying to create a handle to 'C:\Users\me\AppData\Roaming\Emby-Server\system\http:\192.168.1.2:44101\movie\1234\1234', which I assume isn't supposed to be like that?The media source is a remote mkv accessed via http. Please can you help me? Let me know if I've not provided enough information. Cheers 2024-10-13 21:58:55.663 Info Main: Application path: C:\Users\me\AppData\Roaming\Emby-Server\system\EmbyServer.dll 2024-10-13 21:58:56.460 Info App: Setting default culture to en-GB 2024-10-13 21:58:56.465 Info Main: Emby Command line: C:\Users\me\AppData\Roaming\Emby-Server\system\EmbyServer.dll -nointerface Operating system: Microsoft Windows 10.0.22631 Framework: .NET 6.0.33 OS/Process: x64/x64 Runtime: C:/Users/me/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll Processor count: 8 Data path: C:\Users\me\AppData\Roaming\Emby-Server\programdata Application path: C:\Users\me\AppData\Roaming\Emby-Server\system 2024-10-13 21:58:56.465 Info Main: Logs path: C:\Users\me\AppData\Roaming\Emby-Server\programdata\logs 2024-10-13 21:58:56.465 Info Main: Cache path: C:\Users\me\AppData\Roaming\Emby-Server\programdata\cache 2024-10-13 21:58:56.465 Info Main: Internal metadata path: C:\Users\me\AppData\Roaming\Emby-Server\programdata\metadata 2024-10-13 21:58:56.486 Info App: Emby Server Version: 4.8.10.0 ... 2024-10-13 21:59:33.442 Debug App: Running FFProbeProvider for Chief of Station 2024-10-13 21:59:33.442 Debug App: Running MovieNfoProvider for Chief of Station 2024-10-13 21:59:33.442 Debug App: MovieNfoProvider returned no metadata for Chief of Station 2024-10-13 21:59:33.442 Debug App: Running MovieDbProvider for Chief of Station 2024-10-13 21:59:33.442 Info HttpClient: GET https://api.themoviedb.org/3/movie/Chief of Station?api_key=x_secret1_x&append_to_response=alternative_titles,reviews,casts,releases,images,keywords,trailers&language=en-US&include_image_language=en-US,null 2024-10-13 21:59:33.592 Debug App: MovieDbProvider returned no metadata for Chief of Station 2024-10-13 21:59:33.592 Debug App: Running OmdbItemProvider for Chief of Station 2024-10-13 21:59:33.592 Info HttpClient: GET https://private.omdbapi.com?apikey=x_secret2_x&plot=full&r=json&t=Chief of Station&type=movie 2024-10-13 21:59:34.348 Info HttpClient: GET https://private.omdbapi.com?apikey=x_secret2_x&i=tt21301418&plot=short&r=json 2024-10-13 21:59:34.949 Debug HttpClient: GET http://192.168.1.1:58666/rootDesc.xml 2024-10-13 21:59:35.078 Debug PortMapper: Parsing serviceType urn:schemas-upnp-org:service:Layer3Forwarding:1, controlUrl: /ctl/L3F 2024-10-13 21:59:35.078 Debug PortMapper: Parsing serviceType urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1, controlUrl: /ctl/CmnIfCfg 2024-10-13 21:59:35.078 Debug PortMapper: Parsing serviceType urn:schemas-upnp-org:service:WANIPConnection:1, controlUrl: /ctl/IPConn 2024-10-13 21:59:35.078 Debug PortMapper: 192.168.1.1:58666: Found upnp service urn:schemas-upnp-org:service:WANIPConnection:1 at http://192.168.1.1:58666/ctl/IPConn 2024-10-13 21:59:35.088 Debug App: Running TvdbMovieProvider for Chief of Station 2024-10-13 21:59:35.088 Info HttpClient: GET https://api4.thetvdb.com/v4/search?type=movie&q=tt21301418&remote_id=tt21301418 2024-10-13 21:59:35.107 Debug PortMapper: Creating port map on local port 8096 to public port 8096 with device 192.168.1.174 2024-10-13 21:59:35.138 Debug HttpClient: POST http://192.168.1.1:58666/ctl/IPConn 2024-10-13 21:59:35.154 Error HttpClient: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>718</errorCode><errorDescription>ConflictInMappingEntry</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope> 2024-10-13 21:59:35.184 Debug HttpClient: POST http://192.168.1.1:58666/ctl/IPConn 2024-10-13 21:59:35.218 Debug PortMapper: Found GetSpecificPortMappingEntryResponse response 2024-10-13 21:59:35.220 Debug PortMapper: Port mapping already exists. 2024-10-13 21:59:35.222 Debug PortMapper: Creating port map on local port 8920 to public port 8920 with device 192.168.1.174 2024-10-13 21:59:35.222 Debug HttpClient: POST http://192.168.1.1:58666/ctl/IPConn 2024-10-13 21:59:35.239 Error HttpClient: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>718</errorCode><errorDescription>ConflictInMappingEntry</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope> 2024-10-13 21:59:35.242 Debug HttpClient: POST http://192.168.1.1:58666/ctl/IPConn 2024-10-13 21:59:35.261 Debug PortMapper: Found GetSpecificPortMappingEntryResponse response 2024-10-13 21:59:35.261 Debug PortMapper: Port mapping already exists. 2024-10-13 21:59:35.277 Info HttpClient: GET https://api4.thetvdb.com/v4/movies/356456/extended?meta=translations 2024-10-13 21:59:35.531 Debug App: Running MovieDbImageProvider for http://192.168.1.2:44101/movie/1234/1234/1690879.mkv 2024-10-13 21:59:35.531 Info HttpClient: GET https://api.themoviedb.org/3/movie/1093995?api_key=x_secret1_x&append_to_response=alternative_titles,reviews,casts,releases,images,keywords,trailers 2024-10-13 21:59:35.640 Debug App: Running FanartMovieImageProvider for http://192.168.1.2:44101/movie/1234/1234/1690879.mkv 2024-10-13 21:59:35.641 Info HttpClient: GET https://webservice.fanart.tv/v3/movies/1093995?api_key=x_secret4_x 2024-10-13 21:59:35.781 Error BaseItem: Error refreshing item Chief of Station 112 http://192.168.1.2:44101/movie/1234/1234/1690879.mkv *** Error Report *** Version: 4.8.10.0 Command line: C:\Users\me\AppData\Roaming\Emby-Server\system\EmbyServer.dll -nointerface Operating system: Microsoft Windows 10.0.22631 Framework: .NET 6.0.33 OS/Process: x64/x64 Runtime: C:/Users/me/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll Processor count: 8 Data path: C:\Users\me\AppData\Roaming\Emby-Server\programdata Application path: C:\Users\me\AppData\Roaming\Emby-Server\system System.IO.IOException: System.IO.IOException: The filename, directory name, or volume label syntax is incorrect. : 'C:\Users\me\AppData\Roaming\Emby-Server\system\http:\192.168.1.2:44101\movie\1234\1234' at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound) at System.IO.Enumeration.FileSystemEnumerator`1.Init() at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, Boolean isNormalized, EnumerationOptions options) at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized) at System.IO.Enumeration.FileSystemEnumerableFactory.FileSystemInfos(String directory, String expression, EnumerationOptions options, Boolean isNormalized) at System.IO.DirectoryInfo.InternalEnumerateInfos(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options) at System.IO.DirectoryInfo.EnumerateFileSystemInfos(String searchPattern, EnumerationOptions enumerationOptions) at Emby.Server.Implementations.IO.ManagedFileSystem.EnumerateFileSystemInfos(DirectoryInfo dir, Boolean recursive) at Emby.Server.Implementations.IO.ManagedFileSystem.GetFileSystemEntries(String path, Boolean recursive, FileSystemCredentials credentials) at MediaBrowser.Controller.Providers.DirectoryService.GetFileSystemEntriesInternal(String path) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at MediaBrowser.Controller.Providers.DirectoryService.GetFileSystemEntries(String path) at Emby.Providers.Manager.MetadataService`2.GetActorsFolderPathFromParentFolder(String folder, IDirectoryService directoryService) at Emby.Providers.Manager.MetadataService`2.ImportPeopleImagesFromActorsSubfolder(BaseItem item, List`1 people, IDirectoryService directoryService) at Emby.Providers.Manager.MetadataService`2.SaveItem(MetadataResult`1 result, Boolean isFirstRefresh, LibraryOptions libraryOptions, ItemUpdateType reason, IDirectoryService directoryService, MetadataRefreshOptions metadataRefreshOptions, CancellationToken cancellationToken) at Emby.Providers.Manager.MetadataService`2.RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, BaseItem[] collectionFolders, LibraryOptions libraryOptions, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.BaseItem.RefreshMetadata(MetadataRefreshOptions options, BaseItem[] collectionFolders, LibraryOptions libraryOptions, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.BaseItem.RefreshMetadataRecursive(BaseItem[] children, MetadataRefreshOptions refreshOptions, BaseItem[] collectionFolders, LibraryOptions libraryOptions, Boolean recursive, Dictionary`2 newItemIds, IProgress`1 progress, CancellationToken cancellationToken) Source: System.Private.CoreLib TargetSite: IntPtr CreateDirectoryHandle(System.String, Boolean) --- private async Task<List<ChannelItemInfo>> GetMovieChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken) { var folderId = query.FolderId.TrimStart('\\'); var categoryPath = Path.Combine(dataPath, folderId); var folders = fileSystem.GetDirectories(categoryPath, false); return (await ReadMovieInfosFromDiskAsync(folders, cancellationToken)) .Select((tuple) => { var movie = tuple.Item1; var info = tuple.Item2; var apiUriBuilder = new APIURIBuilder(); var path = apiUriBuilder.Build(); var channelItemInfo = new ChannelItemInfo(); channelItemInfo.ContentType = ChannelMediaContentType.Movie; channelItemInfo.Id = $@"{query.FolderId}\{movie.id}"; channelItemInfo.MediaSources = new List<MediaSourceInfo> { new MediaSourceInfo { Path = path, Protocol = MediaProtocol.Http, Container = movie.container, Name = movie.name, Id = path.GetMD5().ToString("N"), IsRemote = true, Bitrate = info.GetBitrate(), } }; channelItemInfo.MediaType = ChannelMediaType.Video; channelItemInfo.Name = movie.name; channelItemInfo.ProviderIds = new ProviderIdDictionary() { { MetadataProviders.Tmdb.ToString(), tuple.GetProviderID() } }; channelItemInfo.Type = ChannelItemType.Media; return channelItemInfo; }) .ToList(); }
  2. I'm writing a channel plugin which fetches links to HLS streams from external source. What is the right way to tell MBS that this an HLS stream when creating ChannelMediaInfo object? My goal is to avoid transcoding HLS streams when playing on devices which support HLS. I have tried this: new ChannelMediaInfo{ Path = "http://example.com/hls_streams/test.m3u8", Container = "mpegts", AudioCodec = "aac", VideoCodec = "h264", Protocol = MediaProtocol.Http, SupportsDirectPlay = true } but the stream is still transcoded when trying to play on Android (which supports HLS). I have written similar channel plugin for the Plex and it plays without transcoding on Android, but in Plex I can specify protocol=hls explicitly from plugin.
×
×
  • Create New...