Media server
21 addresses. Not promised — they belong to the internals and can change with any release. If you need something to stay put, use the promised thirteen.
GET
/api/admin/mediaserver/blocks
may change
Blocked media-server accounts
Media-server accounts that are barred from signing in to Nexview. Administrators only.
Fields and shape
Response
idnumber requiredproviderstring requiredaccount_idstring requiredusernamestring or nullResponse shape
[
{
"id": "number",
"provider": "string",
"account_id": "string",
"username": "string | null"
}
]
DELETE
/api/admin/mediaserver/blocks/{block_id}
may change
Lift a block
This media-server account may sign in again afterwards.
Fields and shape
Parameters
block_idnumber path required
POST
/api/admin/mediaserver/connect/password
may change
Connect a server with username and password
For servers that offer no broker flow. The counterpart to start/poll/select, where somebody confirms in a browser window instead.
Fields and shape
Request body
providerstring requiredurlstring requiredusernamestring requiredpasswordstring requiredResponse
userUserPublic requiredserver_namestring requiredserver_urlstring requiredreachableboolean requiredwarningstring or nullResponse shape
{
"user": {
"id": "number",
"username": "string",
"role": "admin | approver | user | child",
"display_name": "string | null",
"email": "string | null",
"email_verified": "boolean",
"language": "string",
"theme": "string",
"is_active": "boolean",
"auto_approve": "boolean",
"auto_approve_movies": "boolean | null",
"auto_approve_series": "boolean | null",
"effective_auto_approve": "boolean",
"effective_auto_approve_movies": "boolean"
},
"server_name": "string",
"server_url": "string",
"reachable": "boolean",
"warning": "string | null"
}
POST
/api/admin/mediaserver/connect/poll
may change
Check whether the sign-in was confirmed
Once confirmed, returns the servers to choose from. The operation stays open on purpose: the provider's token is held by the broker until a server has actually been selected.
Fields and shape
Request body
poll_tokenstring requiredResponse
statusstring requiredserverslist of ServerOptionshared_hiddennumberResponse shape
{
"status": "string",
"servers": [
{
"machine_id": "string",
"name": "string",
"url": "string",
"owned": "boolean"
}
],
"shared_hidden": "number"
}
POST
/api/admin/mediaserver/connect/select
may change
Take a server into use
Adopts the chosen server and links the calling account to it in the same step.
Fields and shape
Request body
poll_tokenstring requiredmachine_idstring requiredResponse
userUserPublic requiredserver_namestring requiredserver_urlstring requiredreachableboolean requiredwarningstring or nullResponse shape
{
"user": {
"id": "number",
"username": "string",
"role": "admin | approver | user | child",
"display_name": "string | null",
"email": "string | null",
"email_verified": "boolean",
"language": "string",
"theme": "string",
"is_active": "boolean",
"auto_approve": "boolean",
"auto_approve_movies": "boolean | null",
"auto_approve_series": "boolean | null",
"effective_auto_approve": "boolean",
"effective_auto_approve_movies": "boolean"
},
"server_name": "string",
"server_url": "string",
"reachable": "boolean",
"warning": "string | null"
}
POST
/api/admin/mediaserver/connect/start
may change
Start signing in with the provider
Begins the broker flow. No server is chosen yet - that happens after confirmation.
Fields and shape
Request body
providerstringResponse
poll_tokenstring requiredcodestring requiredauth_urlstring requiredResponse shape
{
"poll_token": "string",
"code": "string",
"auth_url": "string"
}
DELETE
/api/admin/mediaserver/connection
may change
Disconnect the media server
The users' links stay in place: reconnect the same server later and everything is still there. Use the consequences endpoint first to see who this would affect.
Fields and shape
Parameters
providerstring or null querybestaetigtboolean query
GET
/api/admin/mediaserver/connection/folgen
may change
Who a disconnect would affect
Who would be affected - before the click, not after. Anyone who signs in through the media server and has no password of their own would be locked out.
Fields and shape
Parameters
providerstring or null queryResponse
verknuepftnumber requiredgefaehrdetlist of BetroffenesKonto requiredResponse shape
{
"verknuepft": "number",
"gefaehrdet": [
{
"id": "number",
"username": "string",
"display_name": "string | null"
}
]
}
GET
/api/admin/mediaserver/library
may change
State of the library comparison
Per provider when one is named. The card sits on the page of one server; without provider it would show a total that belongs to no server in particular.
Fields and shape
Parameters
providerstring or null queryResponse
countnumber requiredupdated_attimestamp (ISO 8601) or nullResponse shape
{
"count": "number",
"updated_at": "ISO 8601 | null"
}
POST
/api/admin/mediaserver/library/refresh
may change
Compare the library now
In normal operation this happens in the background. The button is for the moment right after connecting - and so there is any way at all to see whether the connection works.
Fields and shape
Parameters
providerstring or null queryResponse
countnumber requiredupdated_attimestamp (ISO 8601) or nullResponse shape
{
"count": "number",
"updated_at": "ISO 8601 | null"
}
DELETE
/api/auth/mediaserver/link
may change
Unlink your own media-server account
provider unlinks exactly that provider. Without it, all of them go - the way it worked when there was only one.
Fields and shape
Parameters
providerstring or null queryResponse
idnumber requiredusernamestring requiredroleadmin | approver | user | child requireddisplay_namestring or null requiredemailstring or null requiredemail_verifiedboolean requiredlanguagestring requiredthemestring requiredis_activeboolean requiredauto_approveboolean requiredauto_approve_moviesboolean or null requiredauto_approve_seriesboolean or null requiredeffective_auto_approveboolean requiredeffective_auto_approve_moviesboolean requiredeffective_auto_approve_seriesboolean requiredcan_approveboolean requiredquota_movies_limitnumber requiredquota_series_limitnumber requiredstorage_limit_gbnumberquota_reset_attimestamp (ISO 8601) or null requiredblocked_movie_profileslist of number requiredblocked_series_profileslist of number requiredcan_request_uhd_moviesboolean requiredcan_request_uhd_seriesboolean requiredauto_approve_uhdboolean requiredeffective_auto_approve_uhdboolean requiredblocked_movie_uhd_profileslist of number requiredblocked_series_uhd_profileslist of number requiredavatar_urlstring or null requiredcreated_attimestamp (ISO 8601) requiredlast_login_attimestamp (ISO 8601) or null requiredmail_download_completeboolean requiredmail_request_pendingboolean requiredmail_request_decidedboolean requiredmail_feedbackboolean requiredmail_ticketboolean requiredmail_watchboolean requiredmail_user_importedboolean requiredmail_mediaserver_reconnectboolean requiredmail_storageboolean requiredmail_child_wishboolean requiredmail_cleanupboolean requiredwatchlist_connectedboolean requiredwatchlist_token_invalidbooleanmediaserver_providerstring or null requiredmediaserver_usernamestring or null requiredmediaserver_linkedboolean requiredmediaserver_accountslist of VerknuepftesKontohas_passwordboolean requireddiscover_regionstring or null requiredagenumber or null requiredrating_regionstring or null requiredhide_unratedboolean requiredcan_manage_childrenbooleanparent_idnumber or nullResponse shape
{
"id": "number",
"username": "string",
"role": "admin | approver | user | child",
"display_name": "string | null",
"email": "string | null",
"email_verified": "boolean",
"language": "string",
"theme": "string",
"is_active": "boolean",
"auto_approve": "boolean",
"auto_approve_movies": "boolean | null",
"auto_approve_series": "boolean | null",
"effective_auto_approve": "boolean",
"effective_auto_approve_movies": "boolean"
}
POST
/api/auth/mediaserver/link/password
may change
Link a media-server account with a password
Attaches a media-server account to the Nexview account you are already signed in to.
Fields and shape
Request body
providerstring requiredusernamestring requiredpasswordstring requiredResponse
statusstring requireduserUserPublic or nullResponse shape
{
"status": "string",
"user": {
"id": "number",
"username": "string",
"role": "admin | approver | user | child",
"display_name": "string | null",
"email": "string | null",
"email_verified": "boolean",
"language": "string",
"theme": "string",
"is_active": "boolean",
"auto_approve": "boolean",
"auto_approve_movies": "boolean | null",
"auto_approve_series": "boolean | null",
"effective_auto_approve": "boolean",
"effective_auto_approve_movies": "boolean"
}
}
POST
/api/auth/mediaserver/link/poll
may change
Check whether the link was confirmed
Polls the broker; once the user has confirmed in the provider's window, the link is made.
Fields and shape
Request body
poll_tokenstring requiredResponse
statusstring requireduserUserPublic or nullResponse shape
{
"status": "string",
"user": {
"id": "number",
"username": "string",
"role": "admin | approver | user | child",
"display_name": "string | null",
"email": "string | null",
"email_verified": "boolean",
"language": "string",
"theme": "string",
"is_active": "boolean",
"auto_approve": "boolean",
"auto_approve_movies": "boolean | null",
"auto_approve_series": "boolean | null",
"effective_auto_approve": "boolean",
"effective_auto_approve_movies": "boolean"
}
}
POST
/api/auth/mediaserver/link/start
may change
Start linking a media-server account
Opens the broker flow for attaching a media-server account to the account you are signed in to.
Fields and shape
Response
poll_tokenstring requiredcodestring requiredauth_urlstring requiredResponse shape
{
"poll_token": "string",
"code": "string",
"auth_url": "string"
}
POST
/api/auth/mediaserver/login/password
may change
Sign in with media-server credentials
Signs in to Nexview using the username and password of the media server.
Fields and shape
Request body
providerstring requiredusernamestring requiredpasswordstring requiredResponse
statusstring requiredtokensTokenPair or nullResponse shape
{
"status": "string",
"tokens": {
"access_token": "string",
"token_type": "string",
"expires_in": "number"
}
}
POST
/api/auth/mediaserver/login/poll
may change
Check whether the sign-in was confirmed
Polls the broker; once confirmed, returns Nexview tokens for the linked account.
Fields and shape
Request body
poll_tokenstring requiredResponse
statusstring requiredtokensTokenPair or nullResponse shape
{
"status": "string",
"tokens": {
"access_token": "string",
"token_type": "string",
"expires_in": "number"
}
}
POST
/api/auth/mediaserver/login/start
may change
Start signing in via the media server
Opens the broker flow for signing in to Nexview with a media-server account.
Fields and shape
Response
poll_tokenstring requiredcodestring requiredauth_urlstring requiredResponse shape
{
"poll_token": "string",
"code": "string",
"auth_url": "string"
}
POST
/api/watchlist/connect/poll
may change
Check whether the watchlist link was confirmed
Stores the personal access once confirmed. It has to be the same account that is already linked - otherwise somebody could hang a stranger's watchlist on their own profile.
Fields and shape
Request body
poll_tokenstring requiredResponse
statusstringconnectedboolean requiredlinkedboolean requiredResponse shape
{
"status": "string",
"connected": "boolean",
"linked": "boolean"
}
POST
/api/watchlist/connect/start
may change
Start linking a watchlist
Opens the provider flow for granting Nexview access to a personal watchlist.
Fields and shape
Response
poll_tokenstring requiredcodestring requiredauth_urlstring requiredResponse shape
{
"poll_token": "string",
"code": "string",
"auth_url": "string"
}
GET
/api/watchlist/plex
may change
Your Plex watchlist
What is on the linked watchlist, and which of it is already here.
Fields and shape
Response
movieslist of MediaItem requiredserieslist of MediaItem requiredunmatchednumber requiredResponse shape
{
"movies": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
],
"series": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
],
"unmatched": "number"
}
GET
/api/watchlist/status
may change
Is a watchlist available
Whether a personal access exists and whether an account is linked.
Fields and shape
Response
statusstringconnectedboolean requiredlinkedboolean requiredResponse shape
{
"status": "string",
"connected": "boolean",
"linked": "boolean"
}