Movies

Download a movie's file to a server

POST/movies/{id}/ingest/

write Change: creates or edits. Scopes

Copies the movie's file from a link (method: url) or a bucket object (method: s3, s3_key, and storage for another bucket than the VOD one) onto a server that keeps movies and episodes. It runs in the background: the answer (202) is the transfer, listed on GET /vod/jobs/.

Path parameters

  • idstring (uuid)required

    The movie's id.

Body

  • serverstring (uuid)required

    Node that will hold the file.

  • methodstring

    Default: "url"

  • urlstring

    Direct HTTP(S) source. For object storage the panel presigns first.

  • s3_keystring

    Object key, when method is s3.

  • storagestring (uuid)can be null

    Bucket (Settings → Storage) for method s3; the VOD bucket when absent.

Response

202 OK

  • idstring (uuid)requiredread-only
  • media_filestring (uuid)requiredread-only
  • titleobjectrequiredread-onlycan be null

    The title behind this job, for an operator-legible queue.

    kind is the title's model (movie, episode) and id its key, so the queue can link to the right page. Null while the file exists but no catalogue entry points at it. Reached through the media file's reverse one-to-one; the list view selects those relations so this costs no query per row.

  • serverstring (uuid)requiredread-only
  • server_namestringrequiredread-only
  • methodstringrequiredread-only
  • source_refanyrequiredread-only

    Method-specific locator: the URL to pull, the watch-folder path, the bucket and key of an object, the peer node for a replication. An object is recorded by its key and signed only when the job is sent to the node — a queued job can wait longer than any signed URL lives — and the node receives an ordinary HTTPS URL, so it needs no cloud SDK and object storage is just a URL pull.

  • statestringrequiredread-only
  • phasestringrequiredread-only

    What the node is doing right now: waiting for a free slot, downloading, uploading, probing, publishing.

  • progress_pctintegerrequiredread-only
  • bytes_doneintegerrequiredread-only
  • bytes_totalintegerrequiredread-only
  • errorstringrequiredread-only
  • attemptsintegerrequiredread-only
  • created_atstring (date-time)requiredread-only
  • started_atstring (date-time)requiredread-onlycan be null
  • finished_atstring (date-time)requiredread-onlycan be null

Errors

  • 400 Something sent is not valid. Each field that is wrong is named with what is wrong.
  • 401 No credential, or one that is wrong, expired or revoked.
  • 403 The account, or the key's or app's scopes, may not do this.
  • 404 Nothing with this id, or nothing the account can see.
  • 429 Slow down: wait the seconds in the Retry-After header, then try again.

What each error means