Jump to content

Recommended Posts

Posted

I'm starting to play with multiple files versions support but I can't get the API to return all of them during global queries only when asking media by media.

 

Queries like /Users/XXXXXXX/Items?Recursive=true&IncludeItemTypes=Movie&ExcludeLocationTypes=Virtual&Fields=Genres,SortName,Path,Overview,RunTimeTicks,ParentId,People,ProviderIds,OriginalTitle,Studios,ProductionLocations,MediaSources,DateCreated,VoteCount,RemoteTrailers&CollapseBoxSetItems=false&limit=500

 

Only return the default one.

 

Is there a way to do that without doing 1 query per media?

PenkethBoy
Posted

Use the /emby/items endpoint and you get all versions

 

/emby/Items?Recursive=true&Fields=MediaSources&IncludeItemTypes=movie&SortBy=Sortname

 

gives me both versions

Posted

HI, currently no. What is the use case? This will be considerably slower so it's not advised when puling back lists of media.

Posted
Posted

The only thing you will lose with that is dynamic media sources, meaning, media sources that aren't known until the time of playback. You can use the /playbackinfo call prior to playback to get that.

Posted

/Items returns 2 different media furthermore as reported when starting Emby implementation https://emby.media/community/index.php?/topic/47608-api-questions the parentIds are wrong when requesting like that and does not allow to reconstruct the proper library hierarchy.

 

   {
      "Name": "Sintel",
      "ServerId": "xxxx",
      "Id": "131261",
      "Container": "mp4",
      "MediaSources": [
        {
          "Protocol": "File",
          "Id": "ad834d6995788c8a7ec8c9e073a91c76",
          "Path": "F:\\FakeLibrary\\Films\\Sintel (Sintel) [2010] [sDp]\\Sintel (Sintel) [2010] [sDp] - Optimised.mp4",
          "Type": "Default",
          "Container": "mp4",
          "Size": 301056903,
          "Name": "Optimised",
          "IsRemote": false,
          "RunTimeTicks": 8880000000,
          "SupportsTranscoding": true,
          "SupportsDirectStream": true,
          "SupportsDirectPlay": true,
          "IsInfiniteStream": false,
          "RequiresOpening": false,
          "RequiresClosing": false,
          "RequiresLooping": false,
          "SupportsProbing": false,
          "MediaStreams": [
            {
              "Codec": "h264",
              "CodecTag": "avc1",
              "Language": "eng",
              "TimeBase": "1/12288",
              "CodecTimeBase": "1/48",
              "VideoRange": "SDR",
              "DisplayTitle": "720p H264",
              "DisplayLanguage": "English",
              "NalLengthSize": "4",
              "IsInterlaced": false,
              "IsAVC": true,
              "BitRate": 2511007,
              "BitDepth": 8,
              "RefFrames": 1,
              "IsDefault": true,
              "IsForced": false,
              "Height": 546,
              "Width": 1280,
              "AverageFrameRate": 24,
              "RealFrameRate": 24,
              "Profile": "Main",
              "Type": "Video",
              "AspectRatio": "960:409",
              "Index": 0,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File",
              "PixelFormat": "yuv420p",
              "Level": 40,
              "IsAnamorphic": true
            },
            {
              "Codec": "aac",
              "CodecTag": "mp4a",
              "Language": "eng",
              "TimeBase": "1/48000",
              "CodecTimeBase": "1/48000",
              "DisplayTitle": "English AAC stereo (Default)",
              "DisplayLanguage": "English",
              "IsInterlaced": false,
              "ChannelLayout": "stereo",
              "BitRate": 195812,
              "Channels": 2,
              "SampleRate": 48000,
              "IsDefault": true,
              "IsForced": false,
              "Profile": "LC",
              "Type": "Audio",
              "Index": 1,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File"
            }
          ],
          "Formats": [],
          "Bitrate": 2712224,
          "RequiredHttpHeaders": {},
          "ReadAtNativeFramerate": false
        }
      ],
      "RunTimeTicks": 8880000000,
      "IsFolder": false,
      "ParentId": "131078",
      "Type": "Movie",
      "ImageTags": {
        "Primary": "245aa8af2a55988b4a3a620005d29be3",
        "Logo": "5f45794ad8f727e04232f28236229d5e",
        "Thumb": "a30724cf5860d8b7cb59ea6536e80eff"
      },
      "BackdropImageTags": [
        "597297fbf77362f9d021752e3a0f2594"
      ],
      "MediaType": "Video"
    },
    {
      "Name": "Sintel",
      "ServerId": "xxxxxxx",
      "Id": "131262",
      "Container": "mkv",
      "MediaSources": [
        {
          "Protocol": "File",
          "Id": "47be8a6cffda8891169aad087803b41e",
          "Path": "F:\\FakeLibrary\\Films\\Sintel (Sintel) [2010] [sDp]\\Sintel (Sintel) [2010] [sDp] - Original.mkv",
          "Type": "Default",
          "Container": "mkv",
          "Size": 1180090590,
          "Name": "Original",
          "IsRemote": false,
          "RunTimeTicks": 8880320000,
          "SupportsTranscoding": true,
          "SupportsDirectStream": true,
          "SupportsDirectPlay": true,
          "IsInfiniteStream": false,
          "RequiresOpening": false,
          "RequiresClosing": false,
          "RequiresLooping": false,
          "SupportsProbing": false,
          "MediaStreams": [
            {
              "Codec": "h264",
              "Language": "eng",
              "ColorSpace": "bt709",
              "TimeBase": "1/1000",
              "CodecTimeBase": "1/48",
              "VideoRange": "SDR",
              "DisplayTitle": "1080p H264",
              "DisplayLanguage": "English",
              "NalLengthSize": "4",
              "IsInterlaced": false,
              "IsAVC": true,
              "BitRate": 10631063,
              "BitDepth": 8,
              "RefFrames": 1,
              "IsDefault": false,
              "IsForced": false,
              "Height": 818,
              "Width": 1920,
              "AverageFrameRate": 24,
              "RealFrameRate": 24,
              "Profile": "High",
              "Type": "Video",
              "AspectRatio": "960:409",
              "Index": 0,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File",
              "PixelFormat": "yuv420p",
              "Level": 40,
              "IsAnamorphic": false
            },
            {
              "Codec": "ac3",
              "Language": "eng",
              "TimeBase": "1/1000",
              "CodecTimeBase": "1/48000",
              "Title": "AC3 5.1 @ 640 Kbps",
              "DisplayTitle": "English Dolby Digital 5.1",
              "DisplayLanguage": "English",
              "IsInterlaced": false,
              "ChannelLayout": "5.1",
              "BitRate": 640000,
              "Channels": 6,
              "SampleRate": 48000,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Audio",
              "Index": 1,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "ger",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "German (SUBRIP)",
              "DisplayLanguage": "German",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 2,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "eng",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "English (SUBRIP)",
              "DisplayLanguage": "English",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 3,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "spa",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Spanish (SUBRIP)",
              "DisplayLanguage": "Spanish",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 4,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "fre",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "French (SUBRIP)",
              "DisplayLanguage": "French",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 5,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "ita",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Italian (SUBRIP)",
              "DisplayLanguage": "Italian",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 6,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "dut",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Dutch (SUBRIP)",
              "DisplayLanguage": "Dutch",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 7,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "pol",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Polish (SUBRIP)",
              "DisplayLanguage": "Polish",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 8,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "por",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Portuguese (SUBRIP)",
              "DisplayLanguage": "Portuguese",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 9,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "rus",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Russian (SUBRIP)",
              "DisplayLanguage": "Russian",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 10,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "vie",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Vietnamese (SUBRIP)",
              "DisplayLanguage": "Vietnamese",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 11,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            }
          ],
          "Formats": [],
          "Bitrate": 10631063,
          "RequiredHttpHeaders": {},
          "ReadAtNativeFramerate": false
        }
      ],
      "RunTimeTicks": 8880320000,
      "IsFolder": false,
      "ParentId": "131078",
      "Type": "Movie",
      "ImageTags": {
        "Primary": "12a583c73064824dffa02bf5f786759e",
        "Logo": "04cc373d646b8b488ebf5ff5907f162b",
        "Thumb": "b26b14bc71610df415ca2403b6a1340c"
      },
      "BackdropImageTags": [
        "9e679a80d8030823ea3ada4990844462"
      ],
      "MediaType": "Video"
    },
PenkethBoy
Posted

they are two separate records in the database as two separate items - so no its not going to do the work for you

 

the parentid of the second copy will be the id of the first copy - not double checked but suspect it is

 

so you could combine them using that if i'm correct

Posted

they are two separate records in the database as two separate items - so no its not going to do the work for you

 

the parentid of the second copy will be the id of the first copy - not double checked but suspect it is

 

so you could combine them using that if i'm correct

 

Maybe but then as said I can't rebuild the proper library hierarchy needed to offer library filtering and display. I have no choice with current API to proceed by getting the libraries then their content, and in that configuration only 1 MediaSource is returned.

 

I totally understand that requesting it by default would be slow, but impact is way below the impact of 1 request per item.

 

I suppose this won't be added as too specific and find alternatives.

PenkethBoy
Posted

this is all in your control - yes you need to do a few queries - but its not difficult to do - fiddly maybe

 

the api mirrors emby functionality and does not provide alternative needs out the box you need to work around what it gives to get the result you want

Posted

Just to be clear nothing is difficult ;) My problem is about efficiency, speed and performance.

 

So my question is not about how to do slow workarounds, but about support for what I need, I'll wait for Luke official answer on willing to support it not.

 

API and features evolves, the fact that something does not exist is certainly not a reason to not ask and to by default refuse ;)

PenkethBoy
Posted

As its not need for Emby i would suspect you will wait a long time for a one of request - but you might get lucky - or just code it if its that important

Posted (edited)

Emby is no more open source ;) And I don't know if you are part of Emby team, but as you are probably not, so I wonder what is your problem here, if you do not like / understand the need just move away :)

 

And Emby could use that feature as Plex does, it would fix a missing piece. Even in web interface in all lists Emby offers a 3 dots with a Play function, logic would be that there was a play version here too to be able to select the version. 

 

That would require either that listing could return all the media versions or at least an indicator that there's media version (or even better the count) so that the UI can display that button and then do 1 more call to get the data. @@Luke

 

Edit: And for the record the ParentId from /Items is the folder hierarchy as in 2017, so no library related and no link between the items either.

Edited by Tolriq
PenkethBoy
Posted

Dont have a problem - just pointing out you can do this yourself - rather than waiting for Luke to do something for you - considering how long it takes to get any new feature/bug fix these days

 

and not part of the emby team

Posted

You are still missing the point and the initial question :) I'm looking about an efficient way, not how to do that, I already know how to do that, and no /Items does not works either.

 

So no I can't do the efficient way myself, only the slower workarounds ....

PenkethBoy
Posted

efficient in that the server does the work for you in the background and provides you the result - as luke has said its an expensive process - i.e. slowing down the server doing something else

 

vs

 

get a list of movies and process the data "locally" and use as needed

 

I know which one i would choose

Posted

You are funny :)

 

Doing joins at server side will have some overhead and the query will be slower for a little impact that can be enabled when required.

Doing 1 more query per media (Like the 10 000 episodes I have) will generate a insane more amount of loads on the server, or doing any more queries will generate more loads at it will still need to gather the data + serialize / send duplicate data...

 

So why not stop arguing on things you do not really understand. At some point the data is needed, so the load will be there, doing it efficiently will always be more efficient than doing it badly.

Posted

And @@Luke looking at the "Fork" I found the MediaSourceCount field that work there, and that strangely Emby webinterface still request too but is not returned.

 

Was this removed on purpose and forgotten on WebInterface or it's broken and can be fixed? (The fix is enough for me, I then know what media I need to query for details and not all blindly)

Posted

Anyway to have a definitive answer about MediaSourceCount at least?

PenkethBoy
Posted

You are funny :)

 

Doing joins at server side will have some overhead and the query will be slower for a little impact that can be enabled when required.

Doing 1 more query per media (Like the 10 000 episodes I have) will generate a insane more amount of loads on the server, or doing any more queries will generate more loads at it will still need to gather the data + serialize / send duplicate data...

 

So why not stop arguing on things you do not really understand. At some point the data is needed, so the load will be there, doing it efficiently will always be more efficient than doing it badly.

You dont know how things work either it appears - its not one more query at all - the queries will be significantly slower then you understand - but hey i dont care anymore - trying to help but if you wont listen does not bother me

 

Have fun blindly looking for stuff

Posted

 

/Items returns 2 different media furthermore as reported when starting Emby implementation https://emby.media/community/index.php?/topic/47608-api-questions the parentIds are wrong when requesting like that and does not allow to reconstruct the proper library hierarchy.

 

   {
      "Name": "Sintel",
      "ServerId": "xxxx",
      "Id": "131261",
      "Container": "mp4",
      "MediaSources": [
        {
          "Protocol": "File",
          "Id": "ad834d6995788c8a7ec8c9e073a91c76",
          "Path": "F:\\FakeLibrary\\Films\\Sintel (Sintel) [2010] [sDp]\\Sintel (Sintel) [2010] [sDp] - Optimised.mp4",
          "Type": "Default",
          "Container": "mp4",
          "Size": 301056903,
          "Name": "Optimised",
          "IsRemote": false,
          "RunTimeTicks": 8880000000,
          "SupportsTranscoding": true,
          "SupportsDirectStream": true,
          "SupportsDirectPlay": true,
          "IsInfiniteStream": false,
          "RequiresOpening": false,
          "RequiresClosing": false,
          "RequiresLooping": false,
          "SupportsProbing": false,
          "MediaStreams": [
            {
              "Codec": "h264",
              "CodecTag": "avc1",
              "Language": "eng",
              "TimeBase": "1/12288",
              "CodecTimeBase": "1/48",
              "VideoRange": "SDR",
              "DisplayTitle": "720p H264",
              "DisplayLanguage": "English",
              "NalLengthSize": "4",
              "IsInterlaced": false,
              "IsAVC": true,
              "BitRate": 2511007,
              "BitDepth": 8,
              "RefFrames": 1,
              "IsDefault": true,
              "IsForced": false,
              "Height": 546,
              "Width": 1280,
              "AverageFrameRate": 24,
              "RealFrameRate": 24,
              "Profile": "Main",
              "Type": "Video",
              "AspectRatio": "960:409",
              "Index": 0,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File",
              "PixelFormat": "yuv420p",
              "Level": 40,
              "IsAnamorphic": true
            },
            {
              "Codec": "aac",
              "CodecTag": "mp4a",
              "Language": "eng",
              "TimeBase": "1/48000",
              "CodecTimeBase": "1/48000",
              "DisplayTitle": "English AAC stereo (Default)",
              "DisplayLanguage": "English",
              "IsInterlaced": false,
              "ChannelLayout": "stereo",
              "BitRate": 195812,
              "Channels": 2,
              "SampleRate": 48000,
              "IsDefault": true,
              "IsForced": false,
              "Profile": "LC",
              "Type": "Audio",
              "Index": 1,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File"
            }
          ],
          "Formats": [],
          "Bitrate": 2712224,
          "RequiredHttpHeaders": {},
          "ReadAtNativeFramerate": false
        }
      ],
      "RunTimeTicks": 8880000000,
      "IsFolder": false,
      "ParentId": "131078",
      "Type": "Movie",
      "ImageTags": {
        "Primary": "245aa8af2a55988b4a3a620005d29be3",
        "Logo": "5f45794ad8f727e04232f28236229d5e",
        "Thumb": "a30724cf5860d8b7cb59ea6536e80eff"
      },
      "BackdropImageTags": [
        "597297fbf77362f9d021752e3a0f2594"
      ],
      "MediaType": "Video"
    },
    {
      "Name": "Sintel",
      "ServerId": "xxxxxxx",
      "Id": "131262",
      "Container": "mkv",
      "MediaSources": [
        {
          "Protocol": "File",
          "Id": "47be8a6cffda8891169aad087803b41e",
          "Path": "F:\\FakeLibrary\\Films\\Sintel (Sintel) [2010] [sDp]\\Sintel (Sintel) [2010] [sDp] - Original.mkv",
          "Type": "Default",
          "Container": "mkv",
          "Size": 1180090590,
          "Name": "Original",
          "IsRemote": false,
          "RunTimeTicks": 8880320000,
          "SupportsTranscoding": true,
          "SupportsDirectStream": true,
          "SupportsDirectPlay": true,
          "IsInfiniteStream": false,
          "RequiresOpening": false,
          "RequiresClosing": false,
          "RequiresLooping": false,
          "SupportsProbing": false,
          "MediaStreams": [
            {
              "Codec": "h264",
              "Language": "eng",
              "ColorSpace": "bt709",
              "TimeBase": "1/1000",
              "CodecTimeBase": "1/48",
              "VideoRange": "SDR",
              "DisplayTitle": "1080p H264",
              "DisplayLanguage": "English",
              "NalLengthSize": "4",
              "IsInterlaced": false,
              "IsAVC": true,
              "BitRate": 10631063,
              "BitDepth": 8,
              "RefFrames": 1,
              "IsDefault": false,
              "IsForced": false,
              "Height": 818,
              "Width": 1920,
              "AverageFrameRate": 24,
              "RealFrameRate": 24,
              "Profile": "High",
              "Type": "Video",
              "AspectRatio": "960:409",
              "Index": 0,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File",
              "PixelFormat": "yuv420p",
              "Level": 40,
              "IsAnamorphic": false
            },
            {
              "Codec": "ac3",
              "Language": "eng",
              "TimeBase": "1/1000",
              "CodecTimeBase": "1/48000",
              "Title": "AC3 5.1 @ 640 Kbps",
              "DisplayTitle": "English Dolby Digital 5.1",
              "DisplayLanguage": "English",
              "IsInterlaced": false,
              "ChannelLayout": "5.1",
              "BitRate": 640000,
              "Channels": 6,
              "SampleRate": 48000,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Audio",
              "Index": 1,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "ger",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "German (SUBRIP)",
              "DisplayLanguage": "German",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 2,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "eng",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "English (SUBRIP)",
              "DisplayLanguage": "English",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 3,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "spa",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Spanish (SUBRIP)",
              "DisplayLanguage": "Spanish",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 4,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "fre",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "French (SUBRIP)",
              "DisplayLanguage": "French",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 5,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "ita",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Italian (SUBRIP)",
              "DisplayLanguage": "Italian",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 6,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "dut",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Dutch (SUBRIP)",
              "DisplayLanguage": "Dutch",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 7,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "pol",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Polish (SUBRIP)",
              "DisplayLanguage": "Polish",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 8,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "por",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Portuguese (SUBRIP)",
              "DisplayLanguage": "Portuguese",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 9,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "rus",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Russian (SUBRIP)",
              "DisplayLanguage": "Russian",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 10,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            },
            {
              "Codec": "subrip",
              "Language": "vie",
              "TimeBase": "1/1000",
              "CodecTimeBase": "0/1",
              "DisplayTitle": "Vietnamese (SUBRIP)",
              "DisplayLanguage": "Vietnamese",
              "IsInterlaced": false,
              "IsDefault": false,
              "IsForced": false,
              "Type": "Subtitle",
              "Index": 11,
              "IsExternal": false,
              "IsTextSubtitleStream": true,
              "SupportsExternalStream": true,
              "Protocol": "File"
            }
          ],
          "Formats": [],
          "Bitrate": 10631063,
          "RequiredHttpHeaders": {},
          "ReadAtNativeFramerate": false
        }
      ],
      "RunTimeTicks": 8880320000,
      "IsFolder": false,
      "ParentId": "131078",
      "Type": "Movie",
      "ImageTags": {
        "Primary": "12a583c73064824dffa02bf5f786759e",
        "Logo": "04cc373d646b8b488ebf5ff5907f162b",
        "Thumb": "b26b14bc71610df415ca2403b6a1340c"
      },
      "BackdropImageTags": [
        "9e679a80d8030823ea3ada4990844462"
      ],
      "MediaType": "Video"
    },

 

 

What do you mean exactly by parentId is wrong?

Posted

And @@Luke looking at the "Fork" I found the MediaSourceCount field that work there, and that strangely Emby webinterface still request too but is not returned.

 

Was this removed on purpose and forgotten on WebInterface or it's broken and can be fixed? (The fix is enough for me, I then know what media I need to query for details and not all blindly)

 

Along the way we decided not to show the indicator anymore, and that eventually led to it being removed as an optimization to avoid having to count them up so frequently.

Posted

In addition to requesting the MediaSources field, try also adding AlternateMediaSources to the requested fields. Then the list should be populated with the alternates.

 

Again this will be suboptimal, but I guess you have to do what you have to do.

Posted

Too bad about  MediaSourceCount   that would have solved my issue.

 

AlternateMediaSources does not return the other sources nor a new field with those :(

 

What do you mean exactly by parentId is wrong?

 

 

The returned parentId correspond to some kind of virtual file system hierarchy that is 100% independent of the Library concept with no clear matching between them as the folder hierarchy can be part of multiple libraries.

Posted

It won't be a new field but rather it will add them to the list. Did you make sure to request both the MediaSources and AlternateMediaSources field?

Posted (edited)

Yes I used 

http://192.168.1.80:8096//Users/xxx/Items?Recursive=true&IncludeItemTypes=Movie&ParentId=f33343612099ee4076b63639f98682d9&ExcludeLocationTypes=Virtual&Fields=AlternateMediaSources,Genres,SortName,Overview,RunTimeTicks,ParentId,People,ProviderIds,OriginalTitle,Studios,ProductionLocations,MediaSources,DateCreated,VoteCount,RemoteTrailers,ProductionYear,CommunityRating,OfficialRating&startIndex=0&CollapseBoxSetItems=false&limit=500&UserId=xxxxx

Result is 

{
      "Name": "Sintel",
      "OriginalTitle": "Sintel",
      "ServerId": "xxxx",
      "Id": "131261",
      "DateCreated": "2020-04-27T15:31:54.0000000+00:00",
      "Container": "mp4",
      "SortName": "sintel",
      "MediaSources": [
        {
          "Protocol": "File",
          "Id": "ad834d6995788c8a7ec8c9e073a91c76",
          "Path": "F:\\FakeLibrary\\Films\\Sintel (Sintel) [2010] [SDp]\\Sintel (Sintel) [2010] [SDp] - Optimised.mp4",
          "Type": "Default",
          "Container": "mp4",
          "Size": 301056903,
          "Name": "Optimised",
          "IsRemote": false,
          "RunTimeTicks": 8880000000,
          "SupportsTranscoding": true,
          "SupportsDirectStream": true,
          "SupportsDirectPlay": true,
          "IsInfiniteStream": false,
          "RequiresOpening": false,
          "RequiresClosing": false,
          "RequiresLooping": false,
          "SupportsProbing": false,
          "MediaStreams": [
            {
              "Codec": "h264",
              "CodecTag": "avc1",
              "Language": "eng",
              "TimeBase": "1/12288",
              "CodecTimeBase": "1/48",
              "VideoRange": "SDR",
              "DisplayTitle": "720p H264",
              "DisplayLanguage": "English",
              "NalLengthSize": "4",
              "IsInterlaced": false,
              "IsAVC": true,
              "BitRate": 2511007,
              "BitDepth": 8,
              "RefFrames": 1,
              "IsDefault": true,
              "IsForced": false,
              "Height": 546,
              "Width": 1280,
              "AverageFrameRate": 24,
              "RealFrameRate": 24,
              "Profile": "Main",
              "Type": "Video",
              "AspectRatio": "960:409",
              "Index": 0,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File",
              "PixelFormat": "yuv420p",
              "Level": 40,
              "IsAnamorphic": true
            },
            {
              "Codec": "aac",
              "CodecTag": "mp4a",
              "Language": "eng",
              "TimeBase": "1/48000",
              "CodecTimeBase": "1/48000",
              "DisplayTitle": "English AAC stereo (Default)",
              "DisplayLanguage": "English",
              "IsInterlaced": false,
              "ChannelLayout": "stereo",
              "BitRate": 195812,
              "Channels": 2,
              "SampleRate": 48000,
              "IsDefault": true,
              "IsForced": false,
              "Profile": "LC",
              "Type": "Audio",
              "Index": 1,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File"
            }
          ],
          "Formats": [],
          "Bitrate": 2712224,
          "RequiredHttpHeaders": {},
          "ReadAtNativeFramerate": false,
          "DefaultAudioStreamIndex": 1
        }
      ],
      "ProductionLocations": [
        "Netherlands"
      ],
      "OfficialRating": "PG",
      "Overview": "A wandering warrior finds an unlikely friend in the form of a young dragon. The two develop a close bond, until one day the dragon is snatched away. She then sets out on a relentless quest to reclaim her friend, finding in the end that her quest exacts a far greater price than she had ever imagined.",
      "Genres": [
        "Animation",
        "Fantasy"
      ],
      "CommunityRating": 7.5,
      "RunTimeTicks": 8880000000,
      "ProductionYear": 2010,
      "RemoteTrailers": [
        {
          "Url": "https://www.youtube.com/watch?v=ac7KhViaVqc",
          "Name": "Sintel | first official trailer US (2010) 3D open movie project"
        }
      ],
      "ProviderIds": {
        "Tmdb": "45745",
        "Imdb": "tt1727587"
      },
      "IsFolder": false,
      "ParentId": "131078",
      "Type": "Movie",
      "People": [
        {
          "Name": "Halina Reijn",
          "Id": "21437",
          "Role": "Sintel (voice)",
          "Type": "Actor",
          "PrimaryImageTag": "2c1094f6666df52b6bc7d8eece9e0dc7"
        },
        {
          "Name": "Thom Hoffman",
          "Id": "21432",
          "Role": "Shaman (voice)",
          "Type": "Actor",
          "PrimaryImageTag": "e6d4383509adb82f1ce29c10e6ab0ca8"
        },
        {
          "Name": "Colin Levy",
          "Id": "21424",
          "Role": "Director",
          "Type": "Director",
          "PrimaryImageTag": "067ed4d99af72d5d619d87526ba7bb68"
        }
      ],
      "Studios": [
        {
          "Name": "Blender Foundation",
          "Id": 21401
        }
      ],
      "GenreItems": [
        {
          "Name": "Animation",
          "Id": 64817
        },
        {
          "Name": "Fantasy",
          "Id": 64828
        }
      ],
      "UserData": {
        "PlaybackPositionTicks": 0,
        "PlayCount": 0,
        "IsFavorite": true,
        "Played": false
      },
      "ImageTags": {
        "Primary": "245aa8af2a55988b4a3a620005d29be3",
        "Logo": "5f45794ad8f727e04232f28236229d5e",
        "Thumb": "a30724cf5860d8b7cb59ea6536e80eff"
      },
      "BackdropImageTags": [
        "597297fbf77362f9d021752e3a0f2594"
      ],
      "MediaType": "Video"
    }

While result of 

http://192.168.1.80:8096//Users/xxx/Items/131261

is

{
  "Name": "Sintel",
  "OriginalTitle": "Sintel",
  "ServerId": "xxx",
  "Id": "131261",
  "Etag": "bacd9f689f65d4e642d13ac806315de6",
  "DateCreated": "2020-04-27T15:31:54.0000000+00:00",
  "CanDelete": true,
  "CanDownload": true,
  "PresentationUniqueKey": "ec168942fb36d2d6bc30348720e5dffc",
  "SupportsSync": true,
  "Container": "mp4",
  "SortName": "sintel",
  "PremiereDate": "2010-09-29T22:00:00.0000000+00:00",
  "ExternalUrls": [
    {
      "Name": "IMDb",
      "Url": "https://www.imdb.com/title/tt1727587"
    },
    {
      "Name": "TheMovieDb",
      "Url": "https://www.themoviedb.org/movie/45745"
    },
    {
      "Name": "Trakt",
      "Url": "https://trakt.tv/movies/tt1727587"
    }
  ],
  "MediaSources": [
    {
      "Protocol": "File",
      "Id": "47be8a6cffda8891169aad087803b41e",
      "Path": "F:\\FakeLibrary\\Films\\Sintel (Sintel) [2010] [SDp]\\Sintel (Sintel) [2010] [SDp] - Original.mkv",
      "Type": "Grouping",
      "Container": "mkv",
      "Size": 1180090590,
      "Name": "Original",
      "IsRemote": false,
      "RunTimeTicks": 8880320000,
      "SupportsTranscoding": true,
      "SupportsDirectStream": true,
      "SupportsDirectPlay": true,
      "IsInfiniteStream": false,
      "RequiresOpening": false,
      "RequiresClosing": false,
      "RequiresLooping": false,
      "SupportsProbing": false,
      "MediaStreams": [
        {
          "Codec": "h264",
          "Language": "eng",
          "ColorSpace": "bt709",
          "TimeBase": "1/1000",
          "CodecTimeBase": "1/48",
          "VideoRange": "SDR",
          "DisplayTitle": "1080p H264",
          "DisplayLanguage": "English",
          "NalLengthSize": "4",
          "IsInterlaced": false,
          "IsAVC": true,
          "BitRate": 10631063,
          "BitDepth": 8,
          "RefFrames": 1,
          "IsDefault": false,
          "IsForced": false,
          "Height": 818,
          "Width": 1920,
          "AverageFrameRate": 24,
          "RealFrameRate": 24,
          "Profile": "High",
          "Type": "Video",
          "AspectRatio": "960:409",
          "Index": 0,
          "IsExternal": false,
          "IsTextSubtitleStream": false,
          "SupportsExternalStream": false,
          "Protocol": "File",
          "PixelFormat": "yuv420p",
          "Level": 40,
          "IsAnamorphic": false
        },
        {
          "Codec": "ac3",
          "Language": "eng",
          "TimeBase": "1/1000",
          "CodecTimeBase": "1/48000",
          "Title": "AC3 5.1 @ 640 Kbps",
          "DisplayTitle": "English Dolby Digital 5.1",
          "DisplayLanguage": "English",
          "IsInterlaced": false,
          "ChannelLayout": "5.1",
          "BitRate": 640000,
          "Channels": 6,
          "SampleRate": 48000,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Audio",
          "Index": 1,
          "IsExternal": false,
          "IsTextSubtitleStream": false,
          "SupportsExternalStream": false,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "ger",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "German (SUBRIP)",
          "DisplayLanguage": "German",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 2,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "eng",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "English (SUBRIP)",
          "DisplayLanguage": "English",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 3,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "spa",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "Spanish (SUBRIP)",
          "DisplayLanguage": "Spanish",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 4,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "fre",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "French (SUBRIP)",
          "DisplayLanguage": "French",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 5,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "ita",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "Italian (SUBRIP)",
          "DisplayLanguage": "Italian",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 6,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "dut",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "Dutch (SUBRIP)",
          "DisplayLanguage": "Dutch",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 7,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "pol",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "Polish (SUBRIP)",
          "DisplayLanguage": "Polish",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 8,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "por",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "Portuguese (SUBRIP)",
          "DisplayLanguage": "Portuguese",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 9,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "rus",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "Russian (SUBRIP)",
          "DisplayLanguage": "Russian",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 10,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        },
        {
          "Codec": "subrip",
          "Language": "vie",
          "TimeBase": "1/1000",
          "CodecTimeBase": "0/1",
          "DisplayTitle": "Vietnamese (SUBRIP)",
          "DisplayLanguage": "Vietnamese",
          "IsInterlaced": false,
          "IsDefault": false,
          "IsForced": false,
          "Type": "Subtitle",
          "Index": 11,
          "IsExternal": false,
          "IsTextSubtitleStream": true,
          "SupportsExternalStream": true,
          "Protocol": "File"
        }
      ],
      "Formats": [],
      "Bitrate": 10631063,
      "RequiredHttpHeaders": {},
      "ReadAtNativeFramerate": false,
      "DefaultAudioStreamIndex": 1
    },
    {
      "Protocol": "File",
      "Id": "ad834d6995788c8a7ec8c9e073a91c76",
      "Path": "F:\\FakeLibrary\\Films\\Sintel (Sintel) [2010] [SDp]\\Sintel (Sintel) [2010] [SDp] - Optimised.mp4",
      "Type": "Default",
      "Container": "mp4",
      "Size": 301056903,
      "Name": "Optimised",
      "IsRemote": false,
      "RunTimeTicks": 8880000000,
      "SupportsTranscoding": true,
      "SupportsDirectStream": true,
      "SupportsDirectPlay": true,
      "IsInfiniteStream": false,
      "RequiresOpening": false,
      "RequiresClosing": false,
      "RequiresLooping": false,
      "SupportsProbing": false,
      "MediaStreams": [
        {
          "Codec": "h264",
          "CodecTag": "avc1",
          "Language": "eng",
          "TimeBase": "1/12288",
          "CodecTimeBase": "1/48",
          "VideoRange": "SDR",
          "DisplayTitle": "720p H264",
          "DisplayLanguage": "English",
          "NalLengthSize": "4",
          "IsInterlaced": false,
          "IsAVC": true,
          "BitRate": 2511007,
          "BitDepth": 8,
          "RefFrames": 1,
          "IsDefault": true,
          "IsForced": false,
          "Height": 546,
          "Width": 1280,
          "AverageFrameRate": 24,
          "RealFrameRate": 24,
          "Profile": "Main",
          "Type": "Video",
          "AspectRatio": "960:409",
          "Index": 0,
          "IsExternal": false,
          "IsTextSubtitleStream": false,
          "SupportsExternalStream": false,
          "Protocol": "File",
          "PixelFormat": "yuv420p",
          "Level": 40,
          "IsAnamorphic": true
        },
        {
          "Codec": "aac",
          "CodecTag": "mp4a",
          "Language": "eng",
          "TimeBase": "1/48000",
          "CodecTimeBase": "1/48000",
          "DisplayTitle": "English AAC stereo (Default)",
          "DisplayLanguage": "English",
          "IsInterlaced": false,
          "ChannelLayout": "stereo",
          "BitRate": 195812,
          "Channels": 2,
          "SampleRate": 48000,
          "IsDefault": true,
          "IsForced": false,
          "Profile": "LC",
          "Type": "Audio",
          "Index": 1,
          "IsExternal": false,
          "IsTextSubtitleStream": false,
          "SupportsExternalStream": false,
          "Protocol": "File"
        }
      ],
      "Formats": [],
      "Bitrate": 2712224,
      "RequiredHttpHeaders": {},
      "ReadAtNativeFramerate": false,
      "DefaultAudioStreamIndex": 1
    }
  ],
  "ProductionLocations": [
    "Netherlands"
  ],
  "Path": "F:\\FakeLibrary\\Films\\Sintel (Sintel) [2010] [SDp]\\Sintel (Sintel) [2010] [SDp] - Optimised.mp4",
  "OfficialRating": "PG",
  "Overview": "A wandering warrior finds an unlikely friend in the form of a young dragon. The two develop a close bond, until one day the dragon is snatched away. She then sets out on a relentless quest to reclaim her friend, finding in the end that her quest exacts a far greater price than she had ever imagined.",
  "Taglines": [],
  "Genres": [
    "Animation",
    "Fantasy"
  ],
  "CommunityRating": 7.5,
  "RunTimeTicks": 8880000000,
  "PlayAccess": "Full",
  "ProductionYear": 2010,
  "RemoteTrailers": [
    {
      "Url": "https://www.youtube.com/watch?v=ac7KhViaVqc",
      "Name": "Sintel | first official trailer US (2010) 3D open movie project"
    }
  ],
  "ProviderIds": {
    "Tmdb": "45745",
    "Imdb": "tt1727587"
  },
  "IsFolder": false,
  "ParentId": "131078",
  "Type": "Movie",
  "People": [
    {
      "Name": "Halina Reijn",
      "Id": "21437",
      "Role": "Sintel (voice)",
      "Type": "Actor",
      "PrimaryImageTag": "2c1094f6666df52b6bc7d8eece9e0dc7"
    },
    {
      "Name": "Thom Hoffman",
      "Id": "21432",
      "Role": "Shaman (voice)",
      "Type": "Actor",
      "PrimaryImageTag": "e6d4383509adb82f1ce29c10e6ab0ca8"
    },
    {
      "Name": "Colin Levy",
      "Id": "21424",
      "Role": "Director",
      "Type": "Director",
      "PrimaryImageTag": "067ed4d99af72d5d619d87526ba7bb68"
    }
  ],
  "Studios": [
    {
      "Name": "Blender Foundation",
      "Id": 21401
    }
  ],
  "GenreItems": [
    {
      "Name": "Animation",
      "Id": 64817
    },
    {
      "Name": "Fantasy",
      "Id": 64828
    }
  ],
  "TagItems": [],
  "UserData": {
    "PlaybackPositionTicks": 0,
    "PlayCount": 0,
    "IsFavorite": true,
    "Played": false
  },
  "DisplayPreferencesId": "dbf7709c41faaa746463d67978eb863d",
  "Tags": [],
  "PrimaryImageAspectRatio": 0.6666666666666666,
  "MediaStreams": [
    {
      "Codec": "h264",
      "CodecTag": "avc1",
      "Language": "eng",
      "TimeBase": "1/12288",
      "CodecTimeBase": "1/48",
      "VideoRange": "SDR",
      "DisplayTitle": "720p H264",
      "DisplayLanguage": "English",
      "NalLengthSize": "4",
      "IsInterlaced": false,
      "IsAVC": true,
      "BitRate": 2511007,
      "BitDepth": 8,
      "RefFrames": 1,
      "IsDefault": true,
      "IsForced": false,
      "Height": 546,
      "Width": 1280,
      "AverageFrameRate": 24,
      "RealFrameRate": 24,
      "Profile": "Main",
      "Type": "Video",
      "AspectRatio": "960:409",
      "Index": 0,
      "IsExternal": false,
      "IsTextSubtitleStream": false,
      "SupportsExternalStream": false,
      "Protocol": "File",
      "PixelFormat": "yuv420p",
      "Level": 40,
      "IsAnamorphic": true
    },
    {
      "Codec": "aac",
      "CodecTag": "mp4a",
      "Language": "eng",
      "TimeBase": "1/48000",
      "CodecTimeBase": "1/48000",
      "DisplayTitle": "English AAC stereo (Default)",
      "DisplayLanguage": "English",
      "IsInterlaced": false,
      "ChannelLayout": "stereo",
      "BitRate": 195812,
      "Channels": 2,
      "SampleRate": 48000,
      "IsDefault": true,
      "IsForced": false,
      "Profile": "LC",
      "Type": "Audio",
      "Index": 1,
      "IsExternal": false,
      "IsTextSubtitleStream": false,
      "SupportsExternalStream": false,
      "Protocol": "File"
    }
  ],
  "ImageTags": {
    "Primary": "245aa8af2a55988b4a3a620005d29be3",
    "Logo": "5f45794ad8f727e04232f28236229d5e",
    "Thumb": "a30724cf5860d8b7cb59ea6536e80eff"
  },
  "BackdropImageTags": [
    "597297fbf77362f9d021752e3a0f2594"
  ],
  "Chapters": [
    {
      "StartPositionTicks": 0,
      "Name": "Chapter 1"
    },
    {
      "StartPositionTicks": 3000000000,
      "Name": "Chapter 2"
    },
    {
      "StartPositionTicks": 6000000000,
      "Name": "Chapter 3"
    }
  ],
  "MediaType": "Video",
  "LockedFields": [],
  "LockData": false,
  "Width": 1280,
  "Height": 546
}

Properly have both sources

Edited by Tolriq

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...