Jump to content

Search the Community

Showing results for tags 'API'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • 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 Mobile
    • Android TV / Fire TV
    • Emby Theater
    • iOS
    • Apple TV
    • Kodi
    • Raspberry Pi
    • Roku
    • Samsung Smart TV
    • Sony PlayStation
    • LG Smart TV
    • Web App
    • Windows Media Center
    • Plugins
  • Language-specific support
    • Arabic
    • Dutch
    • French
    • German
    • Italian
    • Portuguese
    • Russian
    • Spanish
    • Swedish
  • Community Contributions
    • Ember for Emby
    • Fan Art & Videos
    • Tools and Utilities
    • Web App CSS
  • Other
    • Non-Emby General Discussion
    • Developer API
    • Hardware
    • Media Clubs
    • Legacy Support


  • Emby Blog

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...

  1. roblav96

    TVDB Updates Endpoint Forbidden

    The endpoint https://thetvdb.com/api/Updates.php which is called during the post-scan task TvdbPrescanTask returns a 403 Forbidden.
  2. TLDR How does the server tell a client to re-render library content? A few example use-cases are: client searches for library media, server dynamically adds media to library, client never receives library updates until they type the next word client views a library item, server dynamically downloads subtitles for library item, client never receives subtitle updates until they press back and view the library item again Things I've tried: POST /Library/Media/Updated only downloads metadata for parameters in the request body POST /Sessions/{Id}/Message/LibraryChanged command but the clients never receive a websocket message, the only time I've witnesses the client receive a LibraryChanged message is a full minute after a library scan is completed, would be nice to manually send this command immediately after the library scan Issues I've come across: Roku clients never receive updates of any kind from the server, most likely related to using roku's native remote control api which is restricted to same subnet ip addresses
  3. Poppabear

    More /Collections Endpoints

    I'm noticing that the Collections endpoints are fairly limited I would like to see: GET /Collections that obviously retrieves all collection resources. GET /Collections/{id} that retrieves a single collection resource. Those are the most important that are missing. Thanks in advance
  4. easez88

    Error Accessing App

    Hello, I'm putting this in general because I don't know where it belongs. I cannot access emby from the IOS app remotely. Other apps, such as apple and android TV connect with no problem. I can connect through web browsers with no problem as well. So even though I am using nginx. I'm pretty sure that I'm missing something in my configuration, but I am not sure what it is. I also cannot access the app when I go to https://app.emby.media and enter my external domain. in the console I get the error "Access-Control-Allow-Origin cannot contain more than one origin" I also see this error if I click on the API button in the dashboard. Does anyone have any idea how to correct this?
  5. Request: curl -X "POST" "http://localhost:8096/emby/System/Ping" Response: HTTP/1.1 200 OK Date: Sat, 15 Jun 2019 18:16:25 GMT Connection: close Content-Length: 11 Server: h2o-dev Access-Control-Allow-Headers: Accept, Accept-Language, Authorization, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-MD5, Content-Range, Content-Type, Date, Host, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, OriginToken, Pragma, Range, Slug, Transfer-Encoding, Want-Digest, X-MediaBrowser-Token, X-Emby-Token, X-Emby-Authorization Access-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS Access-Control-Allow-Origin: * Content-Type: application/json; charset=utf-8 Emby Server The response header Content-Type incorrectly defines the body type, text/plain. No biggie, just thought I'd send it
  6. ginjaninja

    Help with using api from unity

    Can anyone help with this please? I am learning Unity and the emby api, and diving in well past the deep end.. I am getting a 400 bad response when trying to use "/emby/Users/AuthenticateByName" when i manually use the same headers and json data on the http://swagger.emby.media page, i get a successful response. from that i understand i need to set a header and post some json data i can get a successful response in Unity from simpler api methods like /System/Info which dont require posting json and setting headers. anyone out there got a unity app to work on the api? that could a post a unity example on using /emby/Users/AuthenticateByName sucessfully (or something similar with headers and json? using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; public class EmbyAPIComp : MonoBehaviour { [System.Serializable] public class MyClass { string Username = "MyUsername"; string Pw = "Mypassword"; } static MyClass myObject = new MyClass(); string json = JsonUtility.ToJson(myObject); IEnumerator AuthenticateCoroutine() { using (UnityWebRequest www = UnityWebRequest.Put("", json)) { www.method = UnityWebRequest.kHttpVerbPOST; www.SetRequestHeader("X-Emby-Authorization" , "Emby UserId='91d851f075f44ae59bc499bc4ebb54e6', Client='Android', Device='Samsung Galaxy SIII', DeviceId='NickskApp', Version=''"); www.SetRequestHeader("accept" , "application/json"); www.SetRequestHeader("Content-Type" , "application/json"); yield return www.SendWebRequest(); if(www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { Debug.Log(www.responseCode); } } } thanks for your help
  7. matty87a

    Refresh TV Guide via API?

    Hi, Sorry if this has been covered but I can't find anything in the swagger UI or on my check through the forum. Is it possible to trigger the Refresh Guide task via API?
  8. soloam

    No Access to The Emby API -Error

    Hello, I tried to access the emby API by the API button on the Admin Pannel, I I'm redirected to http://swagger.emby.media but I get a error Failed to load API definition. Errors Hide Fetch errorNot Found https://xxxxx.xxxxxxxxxx.com/emby/openapi What I'm missing? Thank You
  9. Checked the WebSocket wiki page. It shows to connect to a WebSocket you will require an API key and device ID I'm trying to get the device ID as soon as any user logs in to the server. Till now I got no response after WebSocket connection. here's my python code websocket.enableTrace(True) host = "xxx.xx.xx.xx" port = 8096 api_key = "xxxxxx" device_id = "xxxx" ws = websocket.create_connection("ws://{}:{}/embywebsocket?api_key={}&deviceId={}".format(host, port, api_key, device_id)) result = ws.recv() print('Result: {}'.format(result)) result = ws.recv() print('Result: {}'.format(result)) # Trying something from community... ws.send(json.dumps([json.dumps({'msg': 'connect', 'version': '1', 'support': ['1', 'pre2', 'pre1']})])) result = ws.recv() print('Result: {}'.format(result)) Result: --- request header --- GET /embywebsocket?api_key=xxxxxxxx&deviceId=a7650139abe6b220 HTTP/1.1 Upgrade: websocket Connection: Upgrade Host: xxx.xx.xx.xx:8096 Origin: http://xxx.xx.xx.xx:8096 Sec-WebSocket-Key: mHuOCG3yyL41uB7gk7fK8g== Sec-WebSocket-Version: 13 ----------------------- --- response header --- HTTP/1.1 101 Switching Protocols Connection: Upgrade Upgrade: websocket Sec-WebSocket-Accept: Ta03Qfon0bEHLCQKG+0BtGNZXjQ= ----------------------- send: b'\x8a\x80\x93\tf\xe1' send: b'\x8a\x80\x13\xf8qB' send: b'\x8a\x80\xa3\xf3\xa1b' send: b'\x8a\x80\xa9\x87\xad\x9e' send: b'\x8a\x80@\x19\xa7\xa7' These send messages came after some time of no response. These are not proper Hex codes. IDK what they are. Requesting EMBY gurus to help me on this. I think I don't even know much about WebSockets
  10. Hi Admin I have created the user through api /Users/New it worked fine but when we login the created user it will auto login . My question is how the set password for new user through API Thanks in Advance
  11. when I updated the user on my local using api http://localhost:8096/emby/Users/{userid} Then it will return "Object reference not set to an instance of an object." I don't know what happen here. Please Help Thanks
  12. As seen in this post: https://www.themoviedb.org/talk/5119221d760ee36c642af4ad , there's a new update to the API engine where now they can tell apart PT-PT from PT-BR (usually was only PT) I just tested that it works perfectly in new API, as seen below. Movie: Die Hard 2 PT (only one until yesterday): https://api.themoviedb.org/3/movie/1573?api_key=##YOUR_API_HERE##&language=pt PT-PT (now official PT for Portugal) : https://api.themoviedb.org/3/movie/1573?api_key=##YOUR_API_HERE##&language=pt-PT {"adult":false,"backdrop_path":"/kywkOlRpYtfVlar41R1s8lO46vD.jpg","belongs_to_collection":{"id":1570,"name":"Duro de Matar - Coletânea","poster_path": "/mbJHXe0fooS9ukOZsZ4PmDQnjcw.jpg","backdrop_path":"/5kHVblr87FUScuab1PVSsK692IL.jpg"},"budget":70000000,"genres":[{"id":28,"name":"Ação"},{"id":53, "name":"Thriller"}],"homepage":"","id":1573,"imdb_id":"tt0099423","original_language":"en","original_title":"Die Hard 2","overview":"Terroristas assumem o controle do aeroporto de Washington, visando libertar um preso político (Franco Nero) que está sendo extraditado, e ameaçam destruir várias aeronaves se as exigências deles não forem cumpridas. Mas a esposa (Bonnie Bedelia) de John McClane (Bruce Willis) está em um dos aviões, assim ele resolve enfrentar a quadrilha sozinho.","popularity":2.824351,"poster_path":"/2vHKly0sePRowvOGZbQL5PuhwHn.jpg","production_companies":[{"name": "Twentieth Century Fox Film Corporation","id":306},{"name":"Gordon Company","id":1073},{"name":"Silver Pictures","id":1885}],"production_countries": [{"iso_3166_1":"US","name":"United States of America"}],"release_date":"1990-07-02","revenue":240031094,"runtime":124,"spoken_languages":[{"iso_639_1": "en","name":"English"},{"iso_639_1":"es","name":"Español"}],"status":"Released","tagline":"John McClane está de volta na hora e no lugar errados.", "title":"Assalto ao Aeroporto","video":false,"vote_average":6.4,"vote_count":1045} PT-BR (item with Brazilian info): https://api.themoviedb.org/3/movie/1573?api_key=##YOUR_API_HERE##&language=pt-BR {"adult":false,"backdrop_path":"/kywkOlRpYtfVlar41R1s8lO46vD.jpg","belongs_to_collection":{"id":1570,"name":"Duro de Matar (Coleção)","poster_path": "/mbJHXe0fooS9ukOZsZ4PmDQnjcw.jpg","backdrop_path":"/5kHVblr87FUScuab1PVSsK692IL.jpg"},"budget":70000000,"genres":[{"id":28,"name":"Ação"},{"id":53, "name":"Thriller"}],"homepage":"","id":1573,"imdb_id":"tt0099423","original_language":"en","original_title":"Die Hard 2","overview":"Terroristas assumem o controle do aeroporto de Washington, visando libertar um preso político (Franco Nero) que está sendo extraditado, e ameaçam destruir várias aeronaves se as exigências deles não forem cumpridas. Mas a esposa (Bonnie Bedelia) de John McClane (Bruce Willis), um detetive de Nova York, se encontra em um dos aviões, assim o marido resolve enfrentar a quadrilha.","popularity":2.824351,"poster_path":"/2vHKly0sePRowvOGZbQL5PuhwHn.jpg", "production_companies":[{"name":"Twentieth Century Fox Film Corporation","id":306},{"name":"Gordon Company","id":1073},{"name":"Silver Pictures","id": 1885}],"production_countries":[{"iso_3166_1":"US","name":"United States of America"}],"release_date":"1990-07-02","revenue":240031094,"runtime":0, "spoken_languages":[{"iso_639_1":"en","name":"English"},{"iso_639_1":"es","name":"Español"}],"status":"Released","tagline":"","title":"Duro de Matar 2", "video":false,"vote_average":6.4,"vote_count":1045} As they created the PT-BR database from scratch, there will be movies/series missing... but users are adding they in a daily basis, and with the correct info! PLEASE make Emby query correctly pt-BR from TMDB after this update. I`m tired of getting movie names from Portugal. ps: I tried to color the title difference inside the boxes above, but it hasn`t worked. So please note the TITLE difference between them.
  13. can someone help me please with this issue
  14. Hi, i try to change the RemoteClientBitrateLimit via the API. I like to use /System/Configuration/{Key}, but what is the key name for RemoteClientBitrateLimit? If I try$apikey i get: Configuration with key RemoteClientBitrateLimit not found.
  15. It would be nice to have a way to programmatically manipulate Emby, e. g. Add, modify libraries Add, modify collections Add, modify metadata This could be achieved using a JSON/REST API for example.
  16. Hey guys, I stumbled upon your awesome piece of software about a month ago. Since then I am working my way up to a complete automated build. Right now I would like to understand how the POST request works. I am trying my hardest since two days to be able to update the whitelisted IP-Addresses using nodejs. When I copy the complete json using Postman everything works just fine. But when I try to get the json from the server and just reupload it (for testing purposes) it resets my settings on the server (success code 204). It may be a simple http error that I am unable to see. Here is my nodejs playground so far. const request = require('request'); var obj request('http://localhost:8096/emby/System/Configuration?api_key=5058514e6c2443a9b03cbcbcf308f06f', (err, res, body) => { if (err) { return console.log(err); } var inbetween = JSON.parse(body); obj = inbetween; }); JSON.stringify(obj); var options = { uri: 'http://localhost:8096/emby/System/Configuration?api_key=5058514e6c2443a9b03cbcbcf308f06f', method: 'POST', json : obj }; console.log(obj); request(options, function (error, response, body) { if (!error && response.statusCode == 204) { console.log(body.id) // Print the shortened url. } console.log(response.statusCode); // console.log(body); }); If you need some server logs just say so. Eltonmaster
  17. joggs

    Log of breaking changes

    Hi, Do we have a log over breaking changes for each release (dev and prod)? If not, we should. Either in a release log connected to the release in some way or a new post in this forum at the same time as the server update is published. It requires a little bit of extra administration, but the win for the app and plugin developers are bigger in my opinion. I just experienced this scenario: My emby application that communicates with the rest api all of a sudden started to thow exceptions. After some searching I see that the serialization of the json responses to the automatically generated entity classes, based on the json response, was broken. This means that something has changed in the json response that I receive from the server, and this time in the usersession response object. After regenerating the usersession entity class, everything works again. I rather read about all breaking changes for a release instead of testing all features in my application and see if anything breaks. Again, I know you have a lot to do, so it is undestandable if you don't want to add more things to the admin part of a release. Keep up the good work! Joggs
  18. I seem to be having a weird issue with issuing API keys after a fresh install of It seems that API keys are somehow not persistent and are only valid for one-time use. After creating an API key, I am able to successfully use it once, but if I try again it fails and the API key had disappeared from the API key list immediately after the first successful use. For some context: I'm in the process of upgrading from Warden jail plugins to iocage jails. Everything seems to be running as normal and I am just trying to connect Sonarr and a custom written web interface that use API keys. I'm currently on FreeNAS 11.2-STABLE train with a fresh 11.2-Release FreeBSD iocage jail, with Emby installed with the new FreeBSD pkg. I don't see a reason for it to be a FreeNAS/FreeBSD issue so I am posting on General topics. On my previous Warden Plugin Jail, originally created on FreeNAS train 9.10.2-U4 and running, in the context of API keys, worked perfectly fine and normal. After the fresh install of, I did do a restore of users, settings, etc. from with the Emby backup & restore plugin. Attached is my log. Last thing I did was create an API key and use it for one http post and now it no longer shows on the API list. The http post was done through my web interface, I attempted to login via AuthenticationByName with user Guest and was successful. Log.txt
  19. jf23

    [Emby API] Logout User

    good afternoon, i havent found this on swagger nor by searching the forum. is there a API Command to logout a User to force him to re-authenticate? appreciate any comments jf
  20. Guest

    last.fm addon gone?

    I just did a reset of my whole system and reinstalled emby 3.0.5786 and recognized that the last.fm scrobbler plugin was completely gone from the catalog. I know that they pretty much messed up their API, but are there chances that scrobbling music from emby will come back anytime?
  21. develguebil

    API Interface with Power Query

    Hi, I wonder whether there is a way to interface with Emby using Power Query? I current run a few Power Queries against Radarr and Sonarr to help me maintain and control my library but it would be really helpful if I could do the same with Emby. I have had a look at various topics and I have tried a number of different things but I am no further forward. Thanks
  22. LouisMylle

    Login through API

    Hello, I'm searching for a solution to log in to the web-based client without entering credentials. Is there any possibility to login with variables in the url like an API and the userid? (Or through a POST/GET request) I've read the API wiki but I'm not getting any further.. Regards, Louis Mylle
  23. Very similar to this thread and this thread which was marked complete but never really rectified... I've unfortunately got the same problem. In short: I can authenticate without a problem (with the Emby API) I can retrieve the active Sessions but when i try to post to the browser based one I have open using: http://<emby host>/Sessions/<my emby browser session>/Command/DisplayMessage It successfully posts (returns a 204) and triggers a modal popup box with none of the content i passed in with the post. I also even passed in TimeoutMs which is supposed to over-ride the Modal setting. Emby is actioning the DisplayMessage correctly but it isn't parsing the payload as part of the POST Now according to this wiki page it states: To which it also states: I am definitely posting the application/json properly in the header along with all of the other required entries (X-Emby-Authorization and X-MediaBrowser-Token). I also assume this because I can query for active sessions in addition to actioning the Message itself. { "Arguments": { "Header": "Test Header", "Text": "My Test Message Body", "TimeoutMs" : 10000, } } I tried without the Arguments too since googling seems to turn up results of people polling Emby that way. But this yields the same result (a successful post, a successful event driven popup on the browser side, but no content - see attached screenshot): { "Header": "Test Header", "Text": "My Test Message Body", "TimeoutMs" : 10000, } I was just curious what I'm doing wrong here? My goal is to integrate this with Apprise which powers my NZBGet and SABNzbd plugins. I attached a screenshot of the Emby instance I'm connected too (via the browser) and what the pop-ups look like after it spawns. I tried to highlight in the Firefox inspector where i believe the text is supposed to go. I'm using a simple docker container based on emby/embyserver:latest (documented here). I'm wondering if it's just a lack of documentation or a small over-sight on me? Any help would be fantastic!
  24. I've started having a problem with my Emby - I can't say 100% it started in but that the version I have installed when when I first noticed I can no longer get my python sync script (source is available on GitHub) to register with Emby as a sync destination. I don't get any error messages, but when I try and use the WebUI to sync any media I just get told I have no sync providers installed and am directed to install FolderSync. I'm posting the following JSON to "" {"PlayableMediaTypes":["Audio","Video"],"SupportsPersistentIdentifier":true,"SupportsMediaControl":false,"SupportsOfflineAccess":true,"SupportsSync":true,"SupportsContentUploading":false,"DeviceProfile":{"MaxStreamingBitrate":176551724,"MaxStaticBitrate":100000000,"MusicStreamingTranscodingBitrate":192000,"DirectPlayProfiles":[{"Container":"mp4,m4v","Type":"Video","VideoCodec":"h264","AudioCodec":"mp3,aac"},{"Container":"mkv","Type":"Video","VideoCodec":"h264","AudioCodec":"mp3,aac"},{"Container":"mov","Type":"Video","VideoCodec":"h264","AudioCodec":"mp3,aac"},{"Container":"opus","Type":"Audio"},{"Container":"mp3","Type":"Audio"},{"Container":"aac","Type":"Audio"},{"Container":"m4a","AudioCodec":"aac","Type":"Audio"},{"Container":"webma,webm","Type":"Audio"},{"Container":"wav","Type":"Audio"},{"Container":"webm","Type":"Video"},{"Container":"m4v,3gp,ts,mpegts,mov,xvid,vob,mkv,wmv,asf,ogm,ogv,m2v,avi,mpg,mpeg,mp4,webm,wtv","Type":"Video","AudioCodec":"aac,aac_latm,mp2,mp3,ac3,wma,dca,dts,pcm,PCM_S16LE,PCM_S24LE,opus,flac"},{"Container":"aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a","Type":"Audio"}],"TranscodingProfiles":[{"Container":"opus","Type":"Audio","AudioCodec":"opus","Context":"Streaming","Protocol":"http","MaxAudioChannels":"2"},{"Container":"opus","Type":"Audio","AudioCodec":"opus","Context":"Static","Protocol":"http","MaxAudioChannels":"2"},{"Container":"mp3","Type":"Audio","AudioCodec":"mp3","Context":"Streaming","Protocol":"http","MaxAudioChannels":"2"},{"Container":"mp3","Type":"Audio","AudioCodec":"mp3","Context":"Static","Protocol":"http","MaxAudioChannels":"2"},{"Container":"aac","Type":"Audio","AudioCodec":"aac","Context":"Streaming","Protocol":"http","MaxAudioChannels":"2"},{"Container":"aac","Type":"Audio","AudioCodec":"aac","Context":"Static","Protocol":"http","MaxAudioChannels":"2"},{"Container":"wav","Type":"Audio","AudioCodec":"wav","Context":"Streaming","Protocol":"http","MaxAudioChannels":"2"},{"Container":"wav","Type":"Audio","AudioCodec":"wav","Context":"Static","Protocol":"http","MaxAudioChannels":"2"},{"Container":"mkv","Type":"Video","AudioCodec":"mp3,aac,ac3","VideoCodec":"h264","Context":"Streaming","MaxAudioChannels":"2","CopyTimestamps":false},{"Container":"ts","Type":"Video","AudioCodec":"aac,mp3,ac3","VideoCodec":"h264","Context":"Streaming","Protocol":"hls","MaxAudioChannels":"2","EnableSplittingOnNonKeyFrames":false},{"Container":"webm","Type":"Video","AudioCodec":"vorbis","VideoCodec":"vpx","Context":"Streaming","Protocol":"http","MaxAudioChannels":"2"},{"Container":"mp4","Type":"Video","AudioCodec":"mp3,aac,ac3","VideoCodec":"h264","Context":"Streaming","Protocol":"http","MaxAudioChannels":"2"},{"Container":"mp4","Type":"Video","AudioCodec":"mp3,aac,ac3","VideoCodec":"h264","Context":"Static","Protocol":"http"}],"ContainerProfiles":[],"CodecProfiles":[{"Type":"Video","Container":"avi","Conditions":[{"Condition":"NotEqual","Property":"CodecTag","Value":"xvid"}]},{"Type":"Video","Codec":"h264","Conditions":[{"Condition":"EqualsAny","Property":"VideoProfile","Value":"high|main|baseline|constrained baseline"},{"Condition":"LessThanEqual","Property":"VideoLevel","Value":"41"}]},{"Type":"Audio","Conditions":[{"Condition":"LessThanEqual","Property":"AudioChannels","Value":"2"}]}],"SubtitleProfiles":[{"Format":"srt","Method":"External"},{"Format":"ssa","Method":"External"},{"Format":"ass","Method":"External"},{"Format":"srt","Method":"Embed"},{"Format":"subrip","Method":"Embed"},{"Format":"ass","Method":"Embed"},{"Format":"ssa","Method":"Embed"},{"Format":"dvb_teletext","Method":"Embed"},{"Format":"dvb_subtitle","Method":"Embed"},{"Format":"dvbsub","Method":"Embed"},{"Format":"pgs","Method":"Embed"},{"Format":"pgssub","Method":"Embed"},{"Format":"dvdsub","Method":"Embed"},{"Format":"vtt","Method":"Embed"},{"Format":"sub","Method":"Embed"},{"Format":"idx","Method":"Embed"},{"Format":"smi","Method":"Embed"}],"ResponseProfiles":[{"Type":"Video","Container":"m4v","MimeType":"video/mp4"},{"Type":"Video","Container":"mov","MimeType":"video/webm"}],"MaxStaticMusicBitrate":null}} Has there been any changes to the way syncing works in the Emby Web UI, or have I done something wrong?
  • Create New...