Jump to content

emby API


mrmc

Recommended Posts

Starting integration of an Emby Client into MrMC for iOS/tvOS/FireOS and Nvidia Shield TV.

 

https://github.com/MediaBrowser/Emby/wiki seems stale and aimed at a local Emby server knowing the IP address.

 

For example, there is no info regarding emby pin connect or user selection. And (see below).

 

Grep'ing about on google, self.createPin shows two different usage. One uses  url: getConnectUrl('pin'), the other uses url: self.getUrl('Auth/Pin'). What's the difference ?

 

Thanks

Scott

Link to comment
Share on other sites

I see, use swagger, oh wait. it's been removed :)

 

Back to grep'ing others non-commented source code. I had hoped that the API docs would be better than Plex, lol.

Link to comment
Share on other sites

@@mrmc, I apologize. I will get you an answer on this (via updating docs). The reason the Emby Connect pin process is not currently documented is because it has not yet been inquired about with a third party app. The apps currently using Emby Connect are either Emby apps or are using api libraries written by us.

Link to comment
Share on other sites

Thanks for responding. For the backstory, MrMC is a fork/rebrand of XBMC/Kodi, formed from a few 'retired' Team XBMC developers, myself included, who did not agree with the direction it was going. Still in the top 5 for commits (davilla) and a major contributor and founder of XBMC/Kodi on iOS/ATV/Android platforms. Our focus for MrMC is embedded.  We did tvOS/iOS (Apple) about a year ago, fireOS (Amazon) about six months and recently, Nvidia Shield TV on GooglePlay.

 

One of the 1st things we did was strip out python/addons to remove the tainting that Kodi suffers from with all the piracy addons and 'fully loaded' Kodi boxes. Focused on local server playback and binary pvr (like TVHeadEnd). Back to the roots of XBMC, one might say. We added a native Plex client a few months back for direct play (just added transcode) and desire to do the same with a native Emby client. By native, I mean c/c++ based as the code base is pretty much c/c++.

 

We have been watching our user feedback for a native Emby client and that feedback has now reached critical mass. Time to walk the walk :)

  • Like 1
Link to comment
Share on other sites

ok, I'll join the thread to get notified on changes, I am working with davilla on MrMC project :)

 

@@Luke, one more thing since we are not that familiar with Emby, do all users need to use connect? or can the user elect to just use local emby server without linking it to connect feature? 

 

just thinking on how to present the log in feature to users.. "log in using connect" vs "search for local server" .... and how the listing of the content would vary in each case.

 

we can be found on support@@mrmc.tv if its easier to communicate via mail.

 

many thanks for your assistance

 

amet

Link to comment
Share on other sites

Connect is completely optional.  Most of the apps will use UDP to discover local servers and then present them as options along with the option of either manually adding a server or using Connect.  If a local server cannot be found, then it will default to trying to use Connect but, even from that screen, the user can choose to manually enter a server address instead.

 

The best model to look at would be Theater.

Link to comment
Share on other sites

@@mrmc

@@amet

 

I have a bit more availability now so please let me know of any questions you have, and I will get them answered (in the form of doc updates). Thanks !

Link to comment
Share on other sites

  • 2 weeks later...

Our Native Emby Client is progressing nicely. One question. In https://github.com/MediaBrowser/Emby/wiki/Browsing-the-Library

 

 

When you request a single item using the /Users/{UserId}/Items/{Id} api, you will get back the entire item. When requesting lists of items, the data coming back will be much smaller in order to make it easier to retrieve large result sets.

 

 

Ok, for a single item, one can add additional fields using "Fields=". Is there a method to exclude fields that we might not care about ? 

Link to comment
Share on other sites

Ok, for a single item, one can add additional fields using "Fields=". Is there a method to exclude fields that we might not care about ? 

 

For a single item the "Fields" parameter will have no effect.  Everything comes back.  There is no option right now to pare this down.

 

The Fields parameter applies to list results.

Link to comment
Share on other sites

Only the fields that are almost always needed are returned.  Others have to be specified in the Fields parameter to be included.

Link to comment
Share on other sites

Yea Fields is generally a performance optimization, so for fetching a single item it hasn't really been needed so that's why that endpoint doesn't have that param at this point.

Link to comment
Share on other sites

Hi,

 

I get this returned when I list TvShows(http://192.168.1.200:8096/Users/{userID}/Items?Fields=Etag&ParentID={parentID}&IncludeItemTypes=Series)... its not returning total number of episodes :(

 

is there a Field that should be included and that I am missing?

 

thanks!

      "UserData": {
        "UnplayedItemCount": 0,
        "PlaybackPositionTicks": 0,
        "PlayCount": 0,
        "IsFavorite": false,
        "Played": true,
        "Key": "6102227e-8c91-9126-952a-65a7370ab556"
      },
Link to comment
Share on other sites

Also, you are asking for Series so are you really looking for a count of episodes? 

Link to comment
Share on other sites

    {
      "Name": "'Allo 'Allo!",
      "ServerId": "fe89ef71afe147f8a8b658838849987c",
      "Id": "6102227e8c919126952a65a7370ab556",
      "PremiereDate": "1982-12-28T20:00:00.0000000Z",
      "OfficialRating": "TV-PG",
      "Overview": "In this spoof of World War II, René Artois runs a café in German-occupied France. He always seems to have his hands full: He's having affairs with most of his waitresses, he's keeping his wife happy, he's trying to please the German soldiers who frequent his café, and he's running a major underground operation for the Resistance.",
      "Genres": [
        "Comedy"
      ],
      "CommunityRating": 8.6,
      "RunTimeTicks": 17999998976,
      "PlayAccess": "Full",
      "ProductionYear": 1982,
      "IsFolder": true,
      "Type": "Series",
      "LocalTrailerCount": 0,
      "UserData": {
        "UnplayedItemCount": 0,
        "PlaybackPositionTicks": 0,
        "PlayCount": 0,
        "IsFavorite": false,
        "Played": true,
        "Key": "6102227e-8c91-9126-952a-65a7370ab556"
      },
      "ChildCount": 10,
      "Status": "Ended",
      "AirDays": [],
      "ImageTags": {
        "Primary": "97194b7897738c6077e0008ced7d6e0f",
        "Banner": "b614d96aba7e7b7b627a76270e05c482",
        "Logo": "689a69b0bf40f96bf0aa785ab1c62978",
        "Thumb": "c673c44a3925fc86dd2737bd90fc019b"
      },
      "BackdropImageTags": [
        "156c3178d2a9ca439039dab2a0146410"
      ],
      "LocationType": "FileSystem",
      "EndDate": "1992-12-13T20:00:00.0000000Z"
    },

"ChildCount": 10 refers to number of seasons, 'UnplayedItemCount' is 0 as all episodes are watched, what I am after is total count or playedCount 

 

thanks!

Link to comment
Share on other sites

thanks for the reply, unfortunately that didnt help.. still only seeing number of seasons and number of unplayed episodes :(

Link to comment
Share on other sites

chef

You could drill a little further and loop through each season for episode info...

 

Dunno...

Link to comment
Share on other sites

looks like "RecursiveItemCount" did the job... thanks all

 

EDIT: spoke too soon, RecursiveItemCount - ChildCount will give episode count

Edited by amet
Link to comment
Share on other sites

Angelblue05

@@amet

 

What exactly are you looking to do? Because the api /Shows/{show id}/Episodes will give you that info. You could even set a limit if you don't want episode info and still get the total number of episodes for that show.

Edited by Angelblue05
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...