Developing my own Jellyfin compatible server.. API question?

Hi,

As Infuse is amazing… :heart_eyes: I am working on a side project to write my own Jellyfin compatible server. Goal is to have a lightweight server that can serve contents from local disk to Infuse in on demand mode (no library mode!) using a Jellyfin-compatible API.

(Please note: this is not aimed to be a Jellyfin media server replacement: no transcoding, plugins, third party data integration or anything fancy…)

It took a bit of time to get everything working in this DIY implementation: I have gotten folder/collection, movie and tv series browsing working, metadata from nfo files, and video streaming using regular HTTP byte streaming (remember: no transcoding!)

Server starts in up in 10 seconds even with 30k files… no indexing requires as it just serves the local file system as is as one or more Jellyfin collections. So far so good :muscle:

Now my question: I just happen to noticed the following in Infuse’s debug log in ~/Library/Containers/com.firecore.infuse/Data/tmp/logs a persistent warning about about “has no ID for check”:

2025-01-20 14:34:47:864 [9874067][Warn ]-[FCFolderFlagsManager findFlagForItem:flagKey:defaultValue:] Item <infuse.VFSEmbyItem: 0x6000038bfb80> - <VFSRemote: 0x6000019faa80>. Share is Jellyfin share, addresses [localhost:9090 (local)], credentials Local (username 'abc' password length 4), indexing enabled false, index thumbnails false, path '/episode_0F3Igt6NKQ5kfXr7TQjL', file name 'test.mp4' has no ID for check {                                                                                                      
    FCFileInfoKeyIsEmbyPlaylist = 0;                                                                                                                                                                    
    kFCFileInfoIsDirKey = 0;                                                                                                                                                                            
    kFCFileInfoItemEpisodeNumber = 5;                                                                                                                                                                   
    kFCFileInfoItemID = "episode_0F3Igt6NKQ5kfXr7TQjL";                                                                                                                                                 
    kFCFileInfoItemSeasonNumber = 1;                                                                                                                                                                    
    kFCFileInfoItemSeriesID = "emby.2b11644442754f02a0c1e45d2a9f5c71.D524DC4A094CAD6B12DB368195346728.DqogfStsgNMf2ENTkxV4";                                                                            
    kFCFileInfoItemSeriesTitle = "Test";                                                                                                                                                       
    kFCFileInfoKeyEtag = XEazDYG162o1AwxqZdHi;
    kFCFileInfoKeyIsEmbyLibrary = 0;
    kFCFileInfoLastViewedDateKey = "0001-01-01 00:00:00 +0000";                                                                                                                                         
    kFCFileInfoModificationDateKey = "2023-12-17 09:34:07 +0000";
    kFCFileInfoNameKey = "test.mp4";
    kFCFileInfoSizeKey = 4264940672;                                                                                                                                                                }

Can someone from the Infuse development team explain what triggers this warning? E.g. Which ID fields on what endpoint are not there?

Yes, I know it’s just a warning… given I spent quite some time to get all collection, shows, episode ID handling correct in the API responses so I am OCD’ing what might be incomplete :slight_smile:

Thanks in advance for help!

This group of users guides may help fill in some info for you.

Thanks for sharing those guides, it appears most of that is for third-party (iOS) apps interacting with Infuse.

My question might not be related to that… My question is more about Infuse interacting with a Jellyfin and which server responses might trigger the “has no ID for check” warnings.

I suspect it’s triggered by processing responses from these endpoints:

http://<server>/Users/<user id>/Items/<show id>
http://<server>/Shows/<show id>/Seasons
http://<server>/Shows/<id>/Episodes

@james are you able to comment on this one?

A file named ‘test.mp4’ may not result in a match to the online databases, so that could be one explanation.

Are you seeing any issues when Infuse connects to this server - either with playback or metadata?