Rutube PartnerAPI (1.0)

Введение

Rutube PartnerAPI — набор методов, позволяющий вам организовать загрузку видео на платформу Rutube из своей системы.

Доступ к API

Доступ к API авторизации

Свяжитесь со своим менеджером Rutube для получения client_id и client_secret партнёра.

Доступ к API загрузки/управления видео

Для работы с персонализированным контентом, загрузки и редактирования видео необходима аутентификация и авторизация на основе JWT. JWT можно получить при помощи API авторизации.

Порядок вызовов API авторизации

  1. С помощью метода /api/v3/clients/auth/code и credentials client_id и client_secret, которые вы получили у вашего менеджера Rutube, выполните запрос одноразового code партнёра.
  2. Полученный code используйте вместе с логином и паролем от канала для вызова метода получения JWT /api/v3/clients/auth/login. В ответе вы получите пару access_token/refresh_token канала.
  3. Используйте access_token для обращения к API загрузки/управления видео.
  4. В случае истечения access_token используйте метод /api/v3/accounts/token и refresh_token для обновления пары токенов. Повторно авторизовываться с помощью client_id и client_secret не требуется.

Перед загрузкой видео

  1. Подготовьте видео-материал к загрузке на вашем FTP-сервере.
  2. Сохраните ссылку на загруженный файл.
  3. Выберите категорию видео из доступного списка категорий согласно ответу метода /api/video/category/

Авторизация

Группа методов по авторизации

Получение внешним партнером одноразового кода авторизации

Request Body schema: application/json
required

Тело запроса

client_id
string

Идентификатор партнера

client_secret
string

Секретный ключ партнера

Responses

Request samples

Content type
application/json
{
  • "client_id": "string",
  • "client_secret": "string"
}

Response samples

Content type
application/json
{
  • "code": "c4a4ae45-7e10-4743-b54c-d7599f260ea1"
}

Авторизация на аккаунт по одноразовому коду партнера

Request Body schema: application/json
required

Тело запроса

login
string

Почта или телефон

password
string

Пароль от аккаунта

code
string

Одноразовый код авторизации

Responses

Request samples

Content type
application/json
{
  • "login": "string",
  • "password": "string",
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJydXBhc3NfaWQiOjIxNTgzMTUwLCeweqweqweDg0OTkxMDYsInJlcXVlc3RfaWQiOiIzMDllMTc0NC1hNTllLTQxYW4NzIwNGRkMzgifQ.YHaGt74VC7g5noUgJB2BGtMxE8kr4ENR4kBqJUxkaiU",
  • "expires_in": 1209600,
  • "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJydXBhc3NfaWQiOjIxNTgzMTUwLCJleHAiOjE3ODg0OTkxMDYsInJlcXVlc3RfaWQiOiIzMDllMTc0NC1hNTllLTQxYW4NzIwNGRkMzgifQ.YHaGt74VC7g5noUgJB2BGtMxE8kr4ENR4kBqJUxkaiU"
}

Обновить access_token на основании refresh_token

cookie Parameters
refreshToken
string

Рефреш-токен в куках, обязательно если нет в теле запроса

Request Body schema: application/json

Тело запроса

refresh_token
string

Рефреш-токен в теле запроса, обязательно если нет в куках

Responses

Request samples

Content type
application/json
{
  • "refresh_token": "string"
}

Response samples

Content type
application/json
{
  • "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJydXBhc3NfaWQiOjIxNTgzMTUwLCeweqweqweDg0OTkxMDYsInJlcXVlc3RfaWQiOiIzMDllMTc0NC1hNTllLTQxYW4NzIwNGRkMzgifQ.YHaGt74VC7g5noUgJB2BGtMxE8kr4ENR4kBqJUxkaiU",
  • "expires_in": 1209600,
  • "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJydXBhc3NfaWQiOjIxNTgzMTUwLCJleHAiOjE3ODg0OTkxMDYsInJlcXVlc3RfaWQiOiIzMDllMTc0NC1hNTllLTQxYW4NzIwNGRkMzgifQ.YHaGt74VC7g5noUgJB2BGtMxE8kr4ENR4kBqJUxkaiU",
  • "is_grace_case": true
}

Видео

Группа методов по работе с видеофайлами/карточкой загруженного видео

Получить справочник категорий

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Загрузка видео по URL для партнёров

Authorizations:
BearerAuth
Request Body schema: application/json
required
author
integer

ID канала, в который загружается видео. При отсутствии поля id канала берется из авторизационного токена в запросе

url
required
string

Абсолютный URL для загрузки видео формата http, https, ftp на внешнее хранилище, где расположен загружаемый ролик. Ролик должен быть доступен для загрузки сервисам Rutube, и добавьте, если это необходимо, элементы авторизации в ссылку

callback_url
string

URL для уведомления о завершении загрузки

errback_url
string

URL для уведомления об ошибке загрузки

moder_callback_url
string

URL для уведомления модератора после загрузки

query_fields
Array of strings

Поля для запроса данных о видео в формате JSON. Поля, которые должны быть переданы в callback_url. Задаются в виде json-массива. Пример: query_fields=["id", "description"]. Если не указано - будут переданы все.

extra
string

Дополнительные данные в формате JSON для callback/errback. Поля, которые как есть будут добавляться к ответу, приходящему на callback_url или errback_url. Задаются в виде json строки. В callback или errback все поля, переданные в extra, будут находится в поле "session"

quality_report
boolean

Флаг для включения отчёта о качестве видео. Если задано, то уведомление на callback будет приходить по готовности каждого качества, а не единожды по доступности видео.

title
string
Default: "Без названия"

Название видео до 100 символов

description
string

Ваше описание этого видео до 5000 символов

is_hidden
boolean
Default: false

Флаг для скрытия видео. По умолчанию false

category
integer

Идентификатор категории. Получить список доступных категорий: https://rutube.ru/api/video/category/

protected
boolean
Default: false

Флаг защиты видео. По умолчанию false

object

Дополнительные параметры для конвертера в формате JSON, например, xml-разметка: converter_params=%7B%22editor_xml%22%3A%22ftp%3A%5C%2F%5C%2Frutube%3pass%4010.122.50.222%5C%2FPR291117-A.xml%22%7D

category_id
integer

Идентификатор категории для совместимости. Получить список доступных категорий: https://rutube.ru/api/video/category/

Responses

Request samples

Content type
application/json
{
  • "author": 0,
  • "url": "string",
  • "callback_url": "string",
  • "errback_url": "string",
  • "moder_callback_url": "string",
  • "query_fields": [
    ],
  • "extra": "string",
  • "quality_report": true,
  • "title": "Без названия",
  • "description": "string",
  • "is_hidden": false,
  • "category": 0,
  • "protected": false,
  • "converter_params": {
    },
  • "category_id": 0
}

Response samples

Content type
application/json
{
  • "video_id": "95ef778b7813674fab9f6dc9e43cc1fb",
  • "track_id": "19813210"
}

Получить информацию о видео

path Parameters
video_id
required
string

Идентификатор видео

query Parameters
fields
string

Дополнительные поля для включения в ответ

Responses

Response samples

Content type
application/json
{}

Обновить информацию о видео

Authorizations:
BearerAuth
path Parameters
video_id
required
string

Идентификатор видео

Request Body schema: application/json

Тело запроса

title
required
string

Ваше название видео до 100 символов

description
string

Ваше описание видео до 5000 символов

author
integer

id канала в rutube, на котором опубликовано видео

is_adult
boolean

Взрослый контент

category
required
integer

Идентификатор категории. Получить список доступных категорий: https://rutube.ru/api/video/category/

is_hidden
boolean

Скрытие ролика из публичного доступа

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "author": 0,
  • "is_adult": true,
  • "category": 0,
  • "is_hidden": true
}

Response samples

Content type
application/json
{}

Удаление видео

Authorizations:
BearerAuth
path Parameters
video_id
required
string

Идентификатор видео

Responses

Response samples

Content type
application/json
{
  • "details": "Invalid token"
}

Загрузка обложки видео

Authorizations:
BearerAuth
path Parameters
video_id
required
string

Идентификатор видео

Request Body schema:

Тело запроса

file
string <binary> non-empty

Файл изображения для обложки.

Responses

Request samples

Content type
No sample

Response samples