Видео контент

Типы видео контента

Видео контент условно разделен на типы:
  • movie - Фильмы

  • serial - Сериалы

  • 3D - 3D Фильмы

  • concert - Концерты

  • documovie - Документальные фильмы

  • docuserial - Документальные сериалы

  • tvshow - ТВ Шоу

Запрос:

GET https://api.service-kp.com/v1/types

Ответ:

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        'id': 'movie',
        'title': 'Фильмы',
    },
    {
        'id': 'serial',
        'title': 'Сериалы'
    }
]

Жанры

Типы жанров:
  • movie - жанры типов видео контента movie, serial, 3D (Фильмов и Сериалов)

  • music - жанры типов видео контента concert (Концерты)

  • docu - жанры типов видео контента documovie, docuserial (Документальные фильмы и сериалы)

Жанры, как и контент, разделены по типам. Видео контент с типом movie, serial, 3d может принадлежать только жанрам с типом movie и т.д.

Запрос:

GET https://api.service-kp.com/v1/genres
Параметры запроса:
  • [type] - фильтр по типу жанров, по умолчанию возвращаются все жанры. Указать можно только один из нижеперечисленных

    • movie - Обощенный тип

    • docu - Обобщенный тип

    • music - Обобщенный тип

    • tvshow - Обобщенный тип

    • movie

    • documovie

    • serial

    • docuserial

    • tvshow

    • concert

    • 3d

    • 4k

Ответ:

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        'id': 1,
        'title': 'Комедия',
        'type': 'movie'
    },
    {
        'id':10,
        'title': 'Катастрофа',
        'type': 'docu'
    }
    {
        'id': 13,
        'title': Rock,
        'type': music
    }
]

Страны

Запрос:

GET https://api.service-kp.com/v1/countries

Ответ:

HTTP/1.1 200 OK
Content-Type: application/js

[
    {
        'id': 1,
        'title': 'США',
    }
]

Видео контент

Запрос:

GET https://api.service-kp.com/v1/items
Параметры запроса:
  • [type] - Типы видео контента

  • [title] - Поиск по заголовку, минимум 3 символа. Выборка по типу LIKE ‘$ASD’

  • [genre] - id жанра. Для множественного поиска список через запятую.

  • [country] - id страны. Для множественного поиска список через запятую.

  • [year] - Год. Для поиска в промежутке year1-year2

  • [finished] - 0/1. Статус сериала, завершен/снимается.

  • [actor] - Имена актеров чере запятую или +(плюс), “Actor1,Actor2+Actor3” - ищет (Actor1 OR (Actor2 AND Actor3))

  • [director] - Имена режисеров чере запятую или +(плюс), “Actor1,Actor2+Actor3” - ищет (Actor1 OR (Actor2 AND Actor3))

  • [letter] - Поиск по первой букве в названиях(рус,анг) фильма

  • [conditions] - Массив простых условий для фильтра. Доступные поля как и в сортировке. year <= 100. Объединение условий через AND

  • [force] - Массив для пропуска пользовательских настроек фильтрации
    • quality - Пропускаем проверку на сомнительное качество

    • advert - Пропускаем проверку на контент с рекламой

    • erotic - Пропускаем проверку на эротический контент

  • [sort] - Сортировка, по умолчанию ‘updated-‘. Без знака ‘-‘ сортируется по возрастанию(ASC), со знаком ‘-‘(минус) по убыванию(DESC). Можно указать можество полей через запятую,.

    • id

    • year

    • title

    • created

    • updated

    • rating

    • views

    • watchers

  • [quality] - Массив идентификаторов качеств

Ответ:

HTTP/1.1 200 OK
Content-Type: application/js

{
    'items':[
        {
            'id': 1,
            'title': 'Название / Оригинальное название',
            'type': 'movie', // тип контента
            'subtype': 'multi', // Подтип контента, бывают многосерийные фильмы, концерты
            'year': 2006,
            'cast': 'Актёр 1, Актёр 2',
            'director': 'Режиссёр 1, Режиссёр 2',
            'voice': 'Любительский одноголосый, Оригинал',
            'duration': [
                'average': 123, // Средняя продолжительность для сериалов, полная для фильмов
                'total': 123 //Общая продолжительность фильма, сериала
            ],
            'langs': 2, //Количество аудио дорожек
            'ac3': 0, // Присутствуют или нет AC-3 аудио
            'subtitles': 3, // Количество субтитров
            'quality': 1080, // Качество фильма, для сериалов берется наибольшее количество серий с определенным качеством
            'genres': [
                {
                    'id': 1,
                    'title': 'Комедия'
                },
                {
                    'id': 2,
                    'title': 'Ужасы'
                }
            ],
            'countries': [
                {
                    'id': 1,
                    'title': 'США'
                }
            ],
            'plot': 'Описание фильма',
            'tracklist': [
                {
                    'artist' => 'Исполнитель',
                    'title' => 'Название композиции',
                    'url' => 'ссылка на аудио файл',
                }
            ],
            'imdb': 123,
            'imdb_rating': 123,
            'imdb_votes': 123,
            'kinopoisk': 123,
            'kinopoisk_rating': 123,
            'kinopoisk_votes': 123,
            'rating': 456,
            'views': 15,
            'comments': 5,
            'finished' : false, // Для сериалов: true - окончен, false - снимается
            'advert' : true, // Присутствуют посторонние вставки рекламы
            'in_watchlist': true, // Подписан ли пользователь на сериал
            'subscribed': true, // Подписан ли пользователь на сериал, alias in_watchlist
            'posters': [
                'small': 'http://kino.pub/media/poster/item/small/1.jpg',
                'medium': 'http://kino.pub/media/poster/item/medium/1.jpg';
                'big': 'http://kino.pub/media/poster/item/big/1.jpg';
            ],
            'trailer': {
                'id': 'udNj459jn',
                'url': 'http://www.youtube.com/watch?v=udNj459jn',
            }
        }
    ],
    'pagination': {
        'total': 1,
        'current':1,
        'perpage':1
    }
}

Похожие видео

Запрос:

GET https://api.service-kp.com/v1/items/similar
Параметры запроса:
  • id - Идентификатор item для которого проивзодится поиск похожих

Ответ::

Список видео

Список медиа-контента

Запрос:

GET https://api.service-kp.com/v1/items/<item-id>
Параметры запроса:
  • <s>[exclude_info]</s> - 1 исключить из ответа секцию item. Опция удалена

  • [nolinks] - 1 исключает ссылки на видео (значение по умолчания - 0). У больших сериалов ссылки занимают львиную долю объема ответа причем большинство из этих ссылок не используется в рамках 1 запроса. В следующей версии значение по умолчанию станет 1, а через версию параметр станет недоступным и ссылки нужно будет всегда получать в отдельном запросе.

Ответ для типов movie, documovie, concert:

HTTP/1.1 200 OK
Content-Type: application/js

{
    'item': {
        // Набор данных из "https://api.service-kp.com/v1/items". Отсутствует, если exclude_info=1
        videos: [
            {
                'title': 'Название видео',
                'thumbnail': 'http://kino.pub/media/thumbnail/12345.jpg',
                'duration': 1234, //Время в секундах
                'watched' : 1, // Статус просмотра эпизода: -1 не смотрели вообще, 0 - начали смотреть, 1 - просмотрели
                'watching' : {
                    'status': -1, // Статус просмотра эпизода: -1 не смотрели вообще, 0 - начали смотреть, 1 - просмотрели
                    'time': 1234  // Время просмотра в секундах
                },
                'tracks': '1,2,3,4' // Номера аудио-дорожек
                'subtitles': [
                    {
                        'lang': 'eng',
                        'shift': 0, // Смещение относительно видео-потока
                        'embed': true, // Доступно в файле-исходнике, вшиты в него отдельным стримом
                        'url': 'http://url/to/file.srt',
                    }
                ],
                "audios": [
                   {
                       "id": 15510,
                       "index": 1,
                       "codec": "aac",
                       "channels": 2,
                       "lang": "ukr",
                       "type": {
                           "id": 2,
                           "title": "Многоголосый",
                           "short_title": "MVO"
                       },
                       "author": {
                           "id": 7,
                           "title": "Дохалов",
                           "short_title": null
                       }
                   },
                   {
                       "id": 15504,
                       "index": 2,
                       "codec": "aac",
                       "channels": 2,
                       "lang": "rus",
                       "type": {
                           "id": 2,
                           "title": "Многоголосый",
                           "short_title": "MVO"
                       },
                       "author": {
                           "id": 1,
                           "title": "Видеосервис",
                           "short_title": null
                       }
                   },
                   {
                       "id": 15505,
                       "index": 3,
                       "codec": "aac",
                       "channels": 2,
                       "lang": "rus",
                       "type": {
                           "id": 2,
                           "title": "Многоголосый",
                           "short_title": "MVO"
                       },
                       "author": {
                           "id": 2,
                           "title": "BD CEE",
                           "short_title": null
                       }
                   },
                   {
                       "id": 15508,
                       "index": 4,
                       "codec": "aac",
                       "channels": 2,
                       "lang": "rus",
                       "type": {
                           "id": 5,
                           "title": "Авторский",
                           "short_title": "AVO"
                       },
                       "author": {
                           "id": 4,
                           "title": "Гаврилов",
                           "short_title": null
                       }
                   },
                   {
                       "id": 15512,
                       "index": 10,
                       "codec": "ac3",
                       "channels": 6,
                       "lang": "rus",
                       "type": {
                           "id": 2,
                           "title": "Многоголосый",
                           "short_title": "MVO"
                       },
                       "author": {
                           "id": 1,
                           "title": "Видеосервис",
                           "short_title": null
                       }
                   }
                ],
                'files': [
                    {
                        'w': 720,
                        'h': 306,
                        'quality': '420p',
                        'url': {
                            'http': 'http://url/to/http/stream.mp4',
                            'hls': 'http://url/to/hls/stream/playlist.m3u8'
                        },
                    },
                    {
                        'w': 960,
                        'h': 480,
                        'quality': '720p'
                        'url': {
                            'http': 'http://url/to/http/stream.mp4',
                            'hls': 'http://url/to/hls/stream/playlist.m3u8'
                        },
                    }
                ]
            }
        ]
    },
}

Ответ для типов serial, docuserial:

HTTP/1.1 200 OK
Content-Type: application/js

{
    'item': {
        // Набор данных из "https://api.service-kp.com/v1/items". Отсутствует, если exclude_info=1
        seasons: [
            {
                'title': 'Название сезона',
                'number': 1,
                'episodes': [
                    {
                        'title': 'Название видео',
                        'thumbnail': 'http://kino.pub/media/thumbnail/12345.jpg',
                        'duration': 1234, //Время в секундах
                        'audios': [],
                        'files': [
                            {
                                'w': 720,
                                'h': 306,
                                'quality': '420p',
                                'url': {
                                    'http': 'http://url/to/http/stream.mp4',
                                    'hls': 'http://url/to/hls/stream/playlist.m3u8'
                                },
                            },
                            {
                                'w': 960,
                                'h': 480,
                                'quality': '720p'
                                'url': {
                                    'http': 'http://url/to/http/stream.mp4',
                                    'hls': 'http://url/to/hls/stream/playlist.m3u8'
                                },
                            }
                        ]
                    }
                ]
            }
        ]
    },
}

Ссылки на субтитры и видео-файлы для media

Внимание, поле status больше не используется в успешных ответах.

Запрос:

GET https://api.service-kp.com/v1/items/media-links?mid=<media_id>
Параметры запроса:
  • mid - Идентификатор media

Ответ:

HTTP/1.1 200 OK
Content-Type: application/js

    {
            "files": [
                    {
                            "codec": "h264",
                            "w": 1920,
                            "h": 1080,
                            "quality": "1080p",
                            "quality_id": 3,
                            "file": "/b/8c/diBAgF24FkaNBwPpB.mp4",
                            "urls": {
                                    "http": "https://host/token/file.mp4",
                                    "hls": "https://host/token/file.mp4",
                                    "hls4": "https://host/token/file.mp4",
                                    "hls2": "https://host/token/file.mp4"
                            }
                    },
                    {
                            "codec": "h264",
                            "w": 1280,
                            "h": 720,
                            "quality": "720p",
                            "quality_id": 2,
                            "file": "/7/b3/5qx0TBPotyBf0nsrZ.mp4",
                            "urls": {
                                    "http": "https://host/token/file.mp4",
                                    "hls": "https://host/token/file.mp4",
                                    "hls4": "https://host/token/file.mp4",
                                    "hls2": "https://host/token/file.mp4"
                            }
                    },
            ],
            "subtitles": [
                    {
                            "lang": "eng",
                            "shift": 0,
                            "embed": true,
                            "file": "/a/71/29725.srt",
                            "url": "https://host/token/file.srt"
                    },
                    {
                            "lang": "rus",
                            "shift": 0,
                            "embed": true,
                            "file": "/2/2a/29859.srt",
                            "url": "https://host/token/file.srt"
                    }
            ]
    }

Голосование за видео

Запрос:

GET https://api.service-kp.com/v1/items/vote?id=111&like=1
Параметры запроса:
  • id - идентификатор item

  • like - 1: нравится, 0: не нравится

Ответ:

HTTP/1.1 200 OK
Content-Type: application/js

    {
    "voted": true, // засчитался ли голос
    "total": "5", // всего голосов
    "positive": "5", // позитивных голосов
    "negative": "0", // негативных голосов
    "rating": 5 // подсчитанный рейтинг: позитивные минус негативные
    }

Комментарии для фильма/эпизода

Запрос:

GET https://api.service-kp.com/v1/items/comments?id=<item_id>
Параметры запроса:
  • id - Идентификатор фильма/сериала/etc

Ответ:

HTTP/1.1 200 OK
Content-Type: application/js

{
    "status":200,
    "item" : {
        "id":1235,
        "title":"Книга крови /  Book of Blood"
    },
    "comments":[
       {
           "id":1,
           "depth":0,
           "unread":false,
           "deleted":false,
           "message":"comment message",
           "created":1234234234,
           "rating":"0",
           "user":{
               "id":123,
               "name":"UserName",
               "avatar":"http://gravatar.com/avatar/asdasdasdas"
            }
        },
     ]
 }

Трейлер к контенту

Запрос:

GET https://api.service-kp.com/v1/items/trailer?[id=123 | sid=l_5JsdfkjN34]

Ответ:

HTTP/1.1 200 OK
Content-Type: application/js

[
    {
        'status': 200,
        'trailer': {
            'id': 'l_54Jsdfkn',
            'url': 'http://youtube.com/watch?v=l_54Jsdfkn',
            'files': [
                {
                    'url': 'https://url.to.file',
                    'quality': 360,
                    'width: 480,
                    'height': 360,
                },
            ],
        }
    }
]

Shortcut - свежие видео

Запрос:

GET https://api.service-kp.com/v1/items/fresh
Параметры запроса:
Ответ::

Видео контент

Shortcut - горячие видео

Запрос:

GET https://api.service-kp.com/v1/items/hot
Параметры запроса:
Ответ::

Видео контент