Zum Inhalt springen
Bereich

Medienserver

24 Adressen. Ohne Zusage — sie gehören zum Innenteil der Anwendung und können sich mit jeder Fassung ändern. Wer sich auf etwas verlassen muss, nimmt die zugesagten neunzehn.

24 Adressen

GET /api/admin/mediaserver/blocks may change

Blocked media-server accounts

Media-server accounts that are barred from signing in to Nexview. Administrators only.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
providerText Pflicht
account_idText Pflicht
usernameText oder null

Aufbau der Antwort

[
  {
    "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.

Felder und Aufbau

Parameter

block_idZahl path Pflicht

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.

Felder und Aufbau

Anfragekörper

FeldArt
providerText Pflicht
urlText Pflicht
usernameText Pflicht
passwordText Pflicht

Antwort

FeldArt
userUserPublic Pflicht
server_nameText Pflicht
server_urlText Pflicht
reachableja/nein Pflicht
warningText oder null

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Anfragekörper

FeldArt
poll_tokenText Pflicht

Antwort

FeldArt
statusText Pflicht
serversListe von ServerOption
shared_hiddenZahl

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Anfragekörper

FeldArt
poll_tokenText Pflicht
machine_idText Pflicht

Antwort

FeldArt
userUserPublic Pflicht
server_nameText Pflicht
server_urlText Pflicht
reachableja/nein Pflicht
warningText oder null

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Anfragekörper

FeldArt
providerText

Antwort

FeldArt
poll_tokenText Pflicht
codeText Pflicht
auth_urlText Pflicht

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Parameter

providerText oder null query
bestaetigtja/nein 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.

Felder und Aufbau

Parameter

providerText oder null query

Antwort

FeldArt
verknuepftZahl Pflicht
gefaehrdetListe von BetroffenesKonto Pflicht

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Parameter

providerText query Pflicht

Antwort

FeldArt
providerText Pflicht
zustandText Pflicht
meldungObjekt oder null

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Parameter

providerText oder null query

Antwort

FeldArt
countZahl Pflicht
updated_atZeitpunkt (ISO 8601) oder null

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Parameter

providerText oder null query

Antwort

FeldArt
countZahl Pflicht
updated_atZeitpunkt (ISO 8601) oder null

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Parameter

providerText path Pflicht

Anfragekörper

FeldArt
wuenscheListe von app__routers__mediaserver__ImportWunsch Pflicht
filmeZahl
serienZahl
speicher_gbZahl
aktivja/nein

Antwort

FeldArt
angelegtZahl Pflicht
verknuepftZahl Pflicht
aufgehobenZahl
abgelehntObjekt Pflicht

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Parameter

providerText path Pflicht

Antwort

FeldArt
providerText Pflicht
kandidatenListe von ImportKandidat Pflicht
zuordenbarListe von ImportZuordenbar Pflicht

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Anfragekörper

FeldArt
providerText Pflicht
usernameText Pflicht
passwordText Pflicht

Antwort

FeldArt
statusText Pflicht
userUserPublic oder null

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Anfragekörper

FeldArt
poll_tokenText Pflicht

Antwort

FeldArt
statusText Pflicht
userUserPublic oder null

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Antwort

FeldArt
poll_tokenText Pflicht
codeText Pflicht
auth_urlText Pflicht

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Anfragekörper

FeldArt
providerText Pflicht
usernameText Pflicht
passwordText Pflicht

Antwort

FeldArt
statusText Pflicht
tokensTokenPair oder null

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Anfragekörper

FeldArt
poll_tokenText Pflicht

Antwort

FeldArt
statusText Pflicht
tokensTokenPair oder null

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Antwort

FeldArt
poll_tokenText Pflicht
codeText Pflicht
auth_urlText Pflicht

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Anfragekörper

FeldArt
poll_tokenText Pflicht

Antwort

FeldArt
statusText
connectedja/nein Pflicht
linkedja/nein Pflicht

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Antwort

FeldArt
poll_tokenText Pflicht
codeText Pflicht
auth_urlText Pflicht

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Antwort

FeldArt
moviesListe von MediaItem Pflicht
seriesListe von MediaItem Pflicht
unmatchedZahl Pflicht

Aufbau der Antwort

{
  "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.

Felder und Aufbau

Antwort

FeldArt
statusText
connectedja/nein Pflicht
linkedja/nein Pflicht

Aufbau der Antwort

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