Skip navigation

Playback protection

DRM and privacy domains.

Drm

Get auth

GET https://api.kinescope.io/v1/drm/auth

Returns the DRM auth configuration (URL, headers) currently used for license requests.

Responses
{
  "data": {
    "url": "https://example.io/auth/kinescope",
    "username": "",
    "password": "",
    "created_at": "2021-11-10T10:33:43.359069Z",
    "updated_at": null
  }
}
{
  "error": {
    "code": 400404,
    "message": "not found"
  }
}

Update auth

PUT https://api.kinescope.io/v1/drm/auth

Updates the DRM license auth configuration.

FieldTypeDescription
urlstringAuth endpoint. Kinescope sends it a POST request with a JSON body (id, ip, type, token, user_agent) on every DRM license request, with no retries.
usernamestringUsername for auth endpoint. If set, requests to url carry the Authorization: Basic header with username and password; if not set, the header isn't sent.
passwordstringPassword
strictboolStrict mode. true: a DRM license is issued only when url responds with HTTP 200; any other code, no response within 5 seconds, or an unavailable url denies playback. false: only HTTP 403 denies playback; any other code, no response within 5 seconds, or an unavailable url doesn't block playback. The response body is ignored.
Request body (json)
{
  "url": "https://example.io/auth/kinescope",
  "username": "",
  "password": "",
  "strict": true
}
Responses
{
  "data": {
    "url": "https://example.io/auth/kinescope",
    "username": "",
    "password": "",
    "created_at": "2021-11-10T10:33:43.359069Z",
    "updated_at": null
  }
}

Delete auth

DELETE https://api.kinescope.io/v1/drm/auth

Removes the DRM license auth configuration. DRM must be reconfigured before use.

Responses
{
  "data": {
    "success": true
  }
}

On project

Get auth

GET https://api.kinescope.io/v1/drm/auth/:project_id

Returns the DRM auth configuration (URL, headers) currently used for license requests.

Responses
{
  "data": {
    "url": "https://example.io/auth/kinescope",
    "username": "",
    "password": "",
    "created_at": "2021-11-10T10:33:43.359069Z",
    "updated_at": null
  }
}
{
  "error": {
    "code": 400404,
    "message": "not found"
  }
}

Update auth

PUT https://api.kinescope.io/v1/drm/auth/:project_id

Updates the DRM license auth configuration.

FieldTypeDescription
urlstringAuth endpoint. Kinescope sends it a POST request with a JSON body (id, ip, type, token, user_agent) on every DRM license request, with no retries.
usernamestringUsername for auth endpoint. If set, requests to url carry the Authorization: Basic header with username and password; if not set, the header isn't sent.
passwordstringPassword
strictboolStrict mode. true: a DRM license is issued only when url responds with HTTP 200; any other code, no response within 5 seconds, or an unavailable url denies playback. false: only HTTP 403 denies playback; any other code, no response within 5 seconds, or an unavailable url doesn't block playback. The response body is ignored.
Request body (json)
{
  "url": "https://example.io/auth/kinescope",
  "username": "",
  "password": "",
  "strict": false
}
Responses
{
  "data": {
    "url": "https://example.io/auth/kinescope",
    "username": "",
    "password": "",
    "created_at": "2021-11-10T10:33:43.359069Z",
    "updated_at": null
  }
}

Delete auth

DELETE https://api.kinescope.io/v1/drm/auth/:project_id

Removes the DRM license auth configuration. DRM must be reconfigured before use.

Responses
{
  "data": {
    "success": true
  }
}

Privacy domains

Create domain

POST https://api.kinescope.io/v1/privacy-domains

Creates a new privacy domain. Returns the newly created object on success.

Request body (json)
{
  "domain": "test.ru"
}

Get domains

GET https://api.kinescope.io/v1/privacy-domains

Returns a list of privacy domains. Results are paginated and can be filtered via query parameters.

Responses
{
  "meta": {
    "offset": 0,
    "limit": 10,
    "total": 22,
    "total_count": 0,
    "order": {
      "created_at": "asc"
    },
    "parent_id": null
  },
  "data": [
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "edbyte.ru",
      "created_by_user_name": "Example User",
      "created_at": "2021-08-09T08:56:36.632808Z",
      "updated_at": null,
      "archived_at": null,
      "media_count": 0
    },
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "newwwww",
      "created_by_user_name": "Example User",
      "created_at": "2021-10-09T17:34:03.51782Z",
      "updated_at": null,
      "archived_at": null,
      "media_count": 0
    },
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "www.example.com",
      "created_by_user_name": "Example User",
      "created_at": "2021-11-23T15:38:15.360147Z",
      "updated_at": null,
      "archived_at": null,
      "media_count": 0
    },
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "example-shop.com",
      "created_by_user_name": "Example User",
      "created_at": "2021-12-30T10:59:19.447503Z",
      "updated_at": "2022-03-23T10:55:36.938605Z",
      "archived_at": null,
      "media_count": 0
    },
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "blog.example.com",
      "created_by_user_name": "Example User",
      "created_at": "2021-12-30T11:03:22.627174Z",
      "updated_at": null,
      "archived_at": null,
      "media_count": 0
    },
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "kinescope.io",
      "created_by_user_name": "Example User",
      "created_at": "2022-05-02T13:13:09.277207Z",
      "updated_at": null,
      "archived_at": null,
      "media_count": 1
    },
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "iframely.com",
      "created_by_user_name": "Example User",
      "created_at": "2022-05-02T13:27:50.013863Z",
      "updated_at": null,
      "archived_at": null,
      "media_count": 0
    },
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "antitreningi.ru",
      "created_by_user_name": "Example User",
      "created_at": "2022-05-02T13:27:50.013863Z",
      "updated_at": null,
      "archived_at": null,
      "media_count": 3
    },
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "*.iframely.com",
      "created_by_user_name": "Example User",
      "created_at": "2022-05-02T13:29:54.470445Z",
      "updated_at": null,
      "archived_at": null,
      "media_count": 1
    },
    {
      "id": "<UUID>",
      "workspace_id": "<UUID>",
      "domain": "druzh.ru",
      "created_by_user_name": "Example User",
      "created_at": "2022-06-06T19:33:22.540944Z",
      "updated_at": null,
      "archived_at": null,
      "media_count": 2
    }
  ]
}

Update domain

PUT https://api.kinescope.io/v1/privacy-domains/:domain_id

Updates the specified privacy domain. Only fields provided in the request body are changed; others are left unchanged.

Request body (json)
{
  "domain": "test.ru",
  "archived": true
}

Delete domain

DELETE https://api.kinescope.io/v1/privacy-domains/:domain_id

Permanently deletes the privacy domain. This action cannot be undone.