Jump to content

3.6 api breaking changes


Luke

Recommended Posts

Angelblue05

@@Luke

 

Server event regarding ItemsRemoved, something is off.

 

I've added a movie, then removed it. Here is what I get for events, that lead to the wrong entry.

03:14:08.601 T:8020  NOTICE: EMBY.entrypoint.service -> [ LibraryChanged ] {u'FoldersAddedTo': [u'26256', u'45963'], u'CollectionFolders': [u'0c41907140d802bb58430fed7e2cd79e', u'7e64e319657a9516ec78490da03edccb', u'bce6ab2f862d8111846735d20a46b29a', u'4514ec850e5ad0c47b58444e17b6346c', u'9713ca41539b6bcc9215a8bbed2b1b32', u'f137a2dd21bbc1b99aa5c0f6bf02a805', u'165db2549e77c71dacef0e83a95cc5de', u'a329cda1727467c08a8f1493195d32d3', u'f1ffda17fff72a19997ec7e667bb8d3c', u'122ca211c46006b344d85950f9ed4368', u'485ba1a1719b13876716412eb1915bb0', u'6b1bca533a3fc6ea9955ffe3d16d7d07', u'52f1cc5cfe5ba8c9452cebe7bca9e026', u'6309155661afe2b1a2750be5d21f4fdf', u'2c2260660d232253be35f46fcf43b95b', u'9d7ad6afe9afa2dab1a2f6e00ad28fa6', u'48af3bb0f5988d3cd867a245b7ef32d1', u'1071671e7bffa0532e930debee501d2e'], u'ItemsRemoved': [], u'ItemsUpdated': [u'45964'], u'FoldersRemovedFrom': [], u'ItemsAdded': [u'45963', u'45964'], u'IsEmpty': False}
03:14:08.602 T:8020  NOTICE: EMBY.library -> ---[ updated:2 ]
03:14:09.613 T:4388  NOTICE: EMBY.library -> -->[ q:download/3262004940304 ]
03:14:10.661 T:12708  NOTICE: EMBY.downloader -> --<[ q:download/3262004940304 ]
03:14:11.616 T:4388  NOTICE: EMBY.library -> -->[ q:updated/Movie/3262004940304 ]
03:14:11.675 T:20732  NOTICE: EMBY.objects.movies -> ADD movie [1/11408/856] 45964: About Time <--- notice the id

I removed About time, this is the event I received.

03:19:28.062 T:8020  NOTICE: EMBY.entrypoint.service -> [ LibraryChanged ] {u'FoldersAddedTo': [u'26256', u'45965'], u'CollectionFolders': [u'0c41907140d802bb58430fed7e2cd79e', u'7e64e319657a9516ec78490da03edccb', u'bce6ab2f862d8111846735d20a46b29a', u'4514ec850e5ad0c47b58444e17b6346c', u'9713ca41539b6bcc9215a8bbed2b1b32', u'f137a2dd21bbc1b99aa5c0f6bf02a805', u'165db2549e77c71dacef0e83a95cc5de', u'a329cda1727467c08a8f1493195d32d3', u'f1ffda17fff72a19997ec7e667bb8d3c', u'122ca211c46006b344d85950f9ed4368', u'485ba1a1719b13876716412eb1915bb0', u'6b1bca533a3fc6ea9955ffe3d16d7d07', u'52f1cc5cfe5ba8c9452cebe7bca9e026', u'6309155661afe2b1a2750be5d21f4fdf', u'2c2260660d232253be35f46fcf43b95b', u'9d7ad6afe9afa2dab1a2f6e00ad28fa6', u'48af3bb0f5988d3cd867a245b7ef32d1', u'1071671e7bffa0532e930debee501d2e'], u'ItemsRemoved': [u'45963'], u'ItemsUpdated': [u'45966'], u'FoldersRemovedFrom': [u'26256'], u'ItemsAdded': [u'45965', u'45966'], u'IsEmpty': False}
03:19:28.062 T:8020  NOTICE: EMBY.library -> ---[ updated:2 ]
03:19:28.062 T:8020  NOTICE: EMBY.library -> ---[ removed:1 ]
03:19:29.757 T:4388  NOTICE: EMBY.library -> -->[ q:download/3262018950144 ]
03:19:29.759 T:4388  NOTICE: EMBY.library -> -->[ q:sort/3262018951208 ]
03:19:29.763 T:19224  NOTICE: EMBY.library -> Could not find media 45963 in the emby database. <--- Wrong id?
Link to comment
Share on other sites

Angelblue05

@@Luke

 

Emby returns the wrong id to be removed. It created the movie entry, then I removed it and it sent the wrong id via librarychanged event. Looks to be one number short, so it created 45964 and when removed, Emby said the id was 45963, which is wrong.

Edited by Angelblue05
Link to comment
Share on other sites

I think it's just because the parent folder is what was detected as being deleted first. this is something that could have happened before though, and i think it's just being noticed now for the first time.

  • Like 1
Link to comment
Share on other sites

Are you storing parentid references clientside? I'm not sure about adjusting the message. The problem is two-fold, first being that the LibraryChanged sends out too much info as it is. Second being, it's a notification based on an event that has already happened, so the data of all the child references is no longer there to include in the message. So that would require reworking. I think if you get a notification about a folder being deleted, since you have the parentId references client-side, you have enough information to make sure the right data gets deleted.

Link to comment
Share on other sites

Angelblue05

@@Luke

 

Boxsets... How do you determine in the webapp that it should display videos? This doesn't seem right, type Movie, .isFolder false. That breaks everything.

{
      u'Genres': [
        u'Horror',
        u'Sci-Fi',
        u'Thriller',
        u'Action'
      ],
      u'MediaStreams': [
        
      ],
      u'LocationType': u'FileSystem',
      u'OfficialRating': u'R',
      u'Etag': u'543b6ca4c9f21c87d81daf7a932499c0',
      u'ServerId': u'b1ef1940b1964e2188f00b73611d53fd',
      u'ProductionLocations': [
        
      ],
      u'Type': u'Movie',
      u'IsFolder': False,
      u'PremiereDate': u'1979-05-25T05:00:00.0000000+00:00',
      u'ProductionYear': 1979,
      u'Path': u'C:\\Users\\Corruption\\AppData\\Roaming\\Emby-Server\\data\\collections\\Alien Collection [boxset]',
      u'BackdropImageTags': [
        u'7f7a06cf19d32d48601ca9d9e3a72594'
      ],
      u'Name': u'Alien Collection',
      u'MediaType': u'Video',
      u'Taglines': [
        
      ],
      u'UserData': {
        u'IsFavorite': False,
        u'PlayCount': 0,
        u'PlaybackPositionTicks': 0,
        u'Key': u'04592f44-6660-f58c-a949-8161c3b4600d',
        u'Played': False
      },
      u'Studios': [
        {
          u'Name': u'Twentieth Century Fox Film Corporation',
          u'Id': 24
        },
        {
          u'Name': u'Brandywine Productions',
          u'Id': 27079
        },
        {
          u'Name': u'Twentieth Century-Fox Productions',
          u'Id': 27184
        }
      ],
      u'Overview': u'A science fiction horror film franchise, focusing on Lieutenant Ellen Ripley (Sigourney Weaver) and her battle with an extraterrestrial life-form, commonly referred to as "the Alien". Produced by 20th Century Fox, the series started with the 1979 film Alien, then Aliens in 1986, Alien\xb3 in 1992, and Alien: Resurrection in 1997.',
      u'DateCreated': u'2016-09-06T11:35:44.0000000+00:00',
      u'ImageTags': {
        u'Logo': u'db13325a73003fad9016f8712914855a',
        u'Primary': u'750860d4f25931d2e7c2b77a7c6fafa3',
        u'Thumb': u'9aecfa24867257137d8fe56c4a5e2c5e'
      },
      u'GenreItems': [
        {
          u'Name': u'Action',
          u'Id': 16879
        },
        {
          u'Name': u'Sci-Fi',
          u'Id': 16893
        },
        {
          u'Name': u'Thriller',
          u'Id': 16895
        },
        {
          u'Name': u'Horror',
          u'Id': 17473
        }
      ],
      u'Id': u'42301'
    },
Edited by Angelblue05
Link to comment
Share on other sites

Angelblue05

That's not going to work. I pull the movie listing with CollapseBoxSetItems set to true. It returns the boxsets as a video/movie, isfolder false. No way of knowing at that point that it's a boxset, so I can't set the proper property. Kodi just tries to play the boxset, obviously it fails with error 500 from the server.

Link to comment
Share on other sites

Angelblue05

The issue is I can't get to that point. I pull the movie listing which returns as post #47. I can't pull movies within boxsets because there's no way of knowing it's a boxset. Look at post 47 (that's also what is returned in the webapp). Boxsets with Type Movie and isFolder false.

Edited by Angelblue05
Link to comment
Share on other sites

I'm having a hard time understanding this. Let's look at it this way. At what point along the way do your queries start to differ from the web app?

Link to comment
Share on other sites

PenkethBoy

@@Angelblue05

 

or use the IncludeItemTypes=Movie for the library and you will only get movies

 

or use the IncludeItemTypes=Movie,Boxset and check the "Type" property of the item - they will be either Movie or BoxSet

{
                      "Name":  "12 Strong",
                      "ServerId":  "393d783c30484015a24645f7844060b4",
                      "Id":  "194",
                      "Container":  "mp4",
                      "PremiereDate":  "2018-01-16T00:00:00.0000000+00:00",
                      "CriticRating":  54,
                      "OfficialRating":  "GB-15",
                      "CommunityRating":  6.6,
                      "RunTimeTicks":  77919789056,
                      "ProductionYear":  2018,
                      "IsFolder":  false,
                      "Type":  "Movie",
                      "LocalTrailerCount":  1,
                      "UserData":  {
                                       "PlaybackPositionTicks":  0,
                                       "PlayCount":  0,
                                       "IsFavorite":  false,
                                       "Played":  false,
                                       "Key":  "429351"
                                   },
                      "SpecialFeatureCount":  0,
                      "ImageTags":  {
                                        "Primary":  "ddc49ac4337178e0347825a8a5d97ae4",
                                        "Art":  "edf28f36bc50194274c2774f82bca547",
                                        "Banner":  "ec21bc4dd008dcd20c76734cb7250c31",
                                        "Disc":  "bec2268986317a3db21ff4e8462b809a",
                                        "Logo":  "a795d06a994507c56007a6c6f856257e",
                                        "Thumb":  "b5906ce90c1c4644e882504391c93896"
                                    },
                      "BackdropImageTags":  [
                                                "4d3576165b29051b7193eeeda1064068",
                                                "e10e222fcdcc978c5316f51cedce81b4",
                                                "8f47bb41aeaef050357f7595d11db74f",
                                                "f9fd090e2da59bdb2168ea56655180a0",
                                                "52fd87a2c47f27ec01c5ab4412462698",
                                                "25c10fd290f9949d960e2a42303ffc3a",
                                                "9b525ee16b8907212576fb3bd0a7f397",
                                                "fc0c0f3c292e9e67358c55826a7e655b",
                                                "bc8a5d25219f1c8a0f3298b0bc228c82",
                                                "be6694d28758f75f63b15c4b0391c9a0"
                                            ],
                      "LocationType":  "FileSystem",
                      "MediaType":  "Video"
                  },
                  {
                      "Name":  "Star Wars Collection",
                      "ServerId":  "393d783c30484015a24645f7844060b4",
                      "Id":  "149",
                      "PremiereDate":  "1999-05-18T23:00:00.0000000+00:00",
                      "OfficialRating":  "GB-U",
                      "ProductionYear":  1999,
                      "IsFolder":  true,
                      "Type":  "BoxSet",
                      "LocalTrailerCount":  0,
                      "UserData":  {

looks like IsFolder works as well

Edited by PenkethBoy
  • Like 1
Link to comment
Share on other sites

Angelblue05

Thanks, I was missing the Boxset type.

 

@@Luke

 

I was call this, like the web app. When calling with IncludeItemTypes only Movie, it also returns Boxsets, but the Boxsets items is returned as Type Movie and IsFolder False. That's why I had issues. I hope you understand now :)

{'IncludeItemTypes': u'Movie', 'IsMissing': False, 'ImageTypeLimit': 1, 'Limit': None, 'Recursive': True, 'ParentId': u'f137a2dd21bbc1b99aa5c0f6bf02a805', 'Fields': 'DateCreated,EpisodeCount,SeasonCount,Path,Genres,Studios,Taglines,MediaStreams,Overview,Etag,ProductionLocations,Width,Height,RecursiveItemCount,ChildCount', 'SortOrder': 'Ascending', 'IsVirtualUnaired': False, 'SortBy': 'SortName'}

It returns all my movies and boxsets included. But my boxsets items look like this. I had no way to knowing it's a Boxsets.

{
      u'Genres': [
        u'Horror',
        u'Sci-Fi',
        u'Thriller',
        u'Action'
      ],
      u'MediaStreams': [
        
      ],
      u'LocationType': u'FileSystem',
      u'OfficialRating': u'R',
      u'Etag': u'543b6ca4c9f21c87d81daf7a932499c0',
      u'ServerId': u'b1ef1940b1964e2188f00b73611d53fd',
      u'ProductionLocations': [
        
      ],
      u'Type': u'Movie', <------------------------------------------- WRONG
      u'IsFolder': False, <------------------------------------------- WRONG
      u'PremiereDate': u'1979-05-25T05:00:00.0000000+00:00',
      u'ProductionYear': 1979,
      u'Path': u'C:\\Users\\Corruption\\AppData\\Roaming\\Emby-Server\\data\\collections\\Alien Collection [boxset]',
      u'BackdropImageTags': [
        u'7f7a06cf19d32d48601ca9d9e3a72594'
      ],
      u'Name': u'Alien Collection',
      u'MediaType': u'Video', <------------------------------------------- WRONG
      u'Taglines': [
        
      ],
      u'UserData': {
        u'IsFavorite': False,
        u'PlayCount': 0,
        u'PlaybackPositionTicks': 0,
        u'Key': u'04592f44-6660-f58c-a949-8161c3b4600d',
        u'Played': False
      },
      u'Studios': [
        {
          u'Name': u'Twentieth Century Fox Film Corporation',
          u'Id': 24
        },
        {
          u'Name': u'Brandywine Productions',
          u'Id': 27079
        },
        {
          u'Name': u'Twentieth Century-Fox Productions',
          u'Id': 27184
        }
      ],
      u'Overview': u'A science fiction horror film franchise, focusing on Lieutenant Ellen Ripley (Sigourney Weaver) and her battle with an extraterrestrial life-form, commonly referred to as "the Alien". Produced by 20th Century Fox, the series started with the 1979 film Alien, then Aliens in 1986, Alien\xb3 in 1992, and Alien: Resurrection in 1997.',
      u'DateCreated': u'2016-09-06T11:35:44.0000000+00:00',
      u'ImageTags': {
        u'Logo': u'db13325a73003fad9016f8712914855a',
        u'Primary': u'750860d4f25931d2e7c2b77a7c6fafa3',
        u'Thumb': u'9aecfa24867257137d8fe56c4a5e2c5e'
      },
      u'GenreItems': [
        {
          u'Name': u'Action',
          u'Id': 16879
        },
        {
          u'Name': u'Sci-Fi',
          u'Id': 16893
        },
        {
          u'Name': u'Thriller',
          u'Id': 16895
        },
        {
          u'Name': u'Horror',
          u'Id': 17473
        }
      ],
      u'Id': u'42301'
    },
Edited by Angelblue05
Link to comment
Share on other sites

Angelblue05

Including the Boxset Type in my query, allowed Boxsets to return as Boxsets instead of Movie Type. So thanks for that, that resolved my issue.

 

@@PenkethBoy

 

Yea, but if you call with only IncludeItemType Movie then you'll see what I see, that your boxsets are Type Movie and isFolder is set to False. Or just access the webapp, that's what I based this on. You'll see the response from the server when accessing your regular movies, which also display boxsets as playable.

 

5b9ada885aea2_boxsets.jpg

Edited by Angelblue05
Link to comment
Share on other sites

PenkethBoy

I guess you are getting that data via your plugin as the file format is different to the JSON returned via the web api

 

also the web api does honour the movie or boxset item type 

 

One question - whats the "u" in 'IncludeItemTypes': u'Movie', or is it some artifact of this forum

 

perhaps its affecting the query

  • Like 1
Link to comment
Share on other sites

PenkethBoy

@@Angelblue05

 

Interesting your results are very different to mine

 

thats not what i get with below which will bring back all movies and boxset for a user

 

$embyServerUrl + "/emby/users/" + $User.User.Id + "/items?Recursive=true&IncludeItemTypes=Movie,Boxset" + "&api_key=" + $User.AccessToken

 

the returned JSON is as i posted above

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...