Skip to content
Area

Media server

24 addresses. Not promised — they belong to the internals and can change with any release. If you need something to stay put, use the promised nineteen.

24 addresses

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

FieldType
idnumber required
providerstring required
account_idstring required
usernamestring or null

Response 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

FieldType
providerstring required
urlstring required
usernamestring required
passwordstring required

Response

FieldType
userUserPublic required
server_namestring required
server_urlstring required
reachableboolean required
warningstring or null

Response 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",
    "is_betreiber": "boolean",
    "auto_approve": "boolean",
    "auto_approve_movies": "boolean | null",
    "auto_approve_series": "boolean | null",
    "effective_auto_approve": "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

FieldType
poll_tokenstring required

Response

FieldType
statusstring required
serverslist of ServerOption
shared_hiddennumber

Response 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

FieldType
poll_tokenstring required
machine_idstring required

Response

FieldType
userUserPublic required
server_namestring required
server_urlstring required
reachableboolean required
warningstring or null

Response 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",
    "is_betreiber": "boolean",
    "auto_approve": "boolean",
    "auto_approve_movies": "boolean | null",
    "auto_approve_series": "boolean | null",
    "effective_auto_approve": "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

FieldType
providerstring

Response

FieldType
poll_tokenstring required
codestring required
auth_urlstring required

Response 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 query
bestaetigtboolean 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 query

Response

FieldType
verknuepftnumber required
gefaehrdetlist of BetroffenesKonto required

Response shape

{
  "verknuepft": "number",
  "gefaehrdet": [
    {
      "id": "number",
      "username": "string",
      "display_name": "string | null"
    }
  ]
}

GET /api/admin/mediaserver/connection/pruefen may change

Does the server still accept the stored access

Asks the connected server for its account list, the thing Nexview needs administrator rights for. zustand is ok, abgelehnt when the server answers 401 or 403, or nicht_erreichbar when it does not answer at all. A rejected access is renewed by connecting the same server again: only the stored access is replaced, the connection and linked accounts stay. Administrators only.

Fields and shape

Parameters

providerstring query required

Response

FieldType
providerstring required
zustandstring required
meldungobject or null

Response shape

{
  "provider": "string",
  "zustand": "string",
  "meldung": "object | 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 query

Response

FieldType
countnumber required
updated_attimestamp (ISO 8601) or null

Response 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 query

Response

FieldType
countnumber required
updated_attimestamp (ISO 8601) or null

Response shape

{
  "count": "number",
  "updated_at": "ISO 8601 | null"
}

POST /api/admin/mediaserver/{provider}/import may change

Take over accounts from this media server

Creates a Nexview account and the media-server link in one step, so the person can sign in with the server straight away. Quotas apply to newly created accounts only; an account that is merely linked keeps its own. A blocked identity is refused unless the request says so explicitly, in which case the block is lifted. Administrators only.

Fields and shape

Parameters

providerstring path required

Request body

FieldType
wuenschelist of app__routers__mediaserver__ImportWunsch required
filmenumber
seriennumber
speicher_gbnumber
aktivboolean

Response

FieldType
angelegtnumber required
verknuepftnumber required
aufgehobennumber
abgelehntobject required

Response shape

{
  "angelegt": "number",
  "verknuepft": "number",
  "aufgehoben": "number",
  "abgelehnt": "object"
}

GET /api/admin/mediaserver/{provider}/import-kandidaten may change

Accounts on this media server

Everyone the server knows, alongside what Nexview already has for them. Reads only: whether an account is taken over, and whether it belongs to an existing Nexview account, is the operator's decision. Administrators only.

Fields and shape

Parameters

providerstring path required

Response

FieldType
providerstring required
kandidatenlist of ImportKandidat required
zuordenbarlist of ImportZuordenbar required

Response shape

{
  "provider": "string",
  "kandidaten": [
    {
      "account_id": "string",
      "username": "string",
      "email": "string | null",
      "schon_verknuepft": "boolean",
      "gehoert_zu": "string | null",
      "gesperrt": "boolean"
    }
  ],
  "zuordenbar": [
    {
      "user_id": "number",
      "username": "string",
      "verknuepft_mit": [
        "string"
      ]
    }
  ]
}

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

FieldType
providerstring required
usernamestring required
passwordstring required

Response

FieldType
statusstring required
userUserPublic or null

Response 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",
    "is_betreiber": "boolean",
    "auto_approve": "boolean",
    "auto_approve_movies": "boolean | null",
    "auto_approve_series": "boolean | null",
    "effective_auto_approve": "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

FieldType
poll_tokenstring required

Response

FieldType
statusstring required
userUserPublic or null

Response 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",
    "is_betreiber": "boolean",
    "auto_approve": "boolean",
    "auto_approve_movies": "boolean | null",
    "auto_approve_series": "boolean | null",
    "effective_auto_approve": "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

FieldType
poll_tokenstring required
codestring required
auth_urlstring required

Response 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

FieldType
providerstring required
usernamestring required
passwordstring required

Response

FieldType
statusstring required
tokensTokenPair or null

Response 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

FieldType
poll_tokenstring required

Response

FieldType
statusstring required
tokensTokenPair or null

Response 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

FieldType
poll_tokenstring required
codestring required
auth_urlstring required

Response 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

FieldType
poll_tokenstring required

Response

FieldType
statusstring
connectedboolean required
linkedboolean required

Response 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

FieldType
poll_tokenstring required
codestring required
auth_urlstring required

Response 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

FieldType
movieslist of MediaItem required
serieslist of MediaItem required
unmatchednumber required

Response 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"
      ],
      "genre_ids": [
        "number"
      ],
      "runtime_minutes": "number | 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"
      ],
      "genre_ids": [
        "number"
      ],
      "runtime_minutes": "number | 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

FieldType
statusstring
connectedboolean required
linkedboolean required

Response shape

{
  "status": "string",
  "connected": "boolean",
  "linked": "boolean"
}