Партнёр должен вставить этот код к себе на страницу, для подключения Smart API:
<script language="JavaScript" type="text/javascript" src="/src/player_builder.min.js"></script>
<object class="TviglePlayer">
<param name="bgcolor" value="#000000"/>
<param name="width" value="720">
<param name="height" value="405">
<param name="id" value="875223">
<param name="playlistID" value="35044">
<param name="useAPI" value="true">
<param name="autoChangeVideo" value="true">
<param name="autoStart" value="true">
</object>
<script language="JavaScript" type="text/javascript" src="/src/player_builder.min.js"></script>
<object class="TviglePlayer">
...
<!-- eventHandler: String (необязательный) - Имя JS метода, который будет обрабатывать "события" из тикета VP-110 -->
<param name="eventHandler" value="Partner.eventHandler">
<!-- templateLoadHandler: String (необязательный) - Имя JS метода, который будет вызван в момент инициализации плеера -->
<param name="templateLoadHandler" value="Partner.onLoaded">
<!-- templateReadyHandler: String (необязательный) - Имя JS метода, который будет вызван в момент готовности плеера к проигрыванию -->
<param name="templateReadyHandler" value="Partner.onReady">
...
</object>
JavaScript
var PlayerProxy = function(player) {
this.player = undefined;
this.handlers = {
"current_video_change": function(id) {
console.warn("----now video id is", id);
},
"play": function(video) {
console.warn("----video playing");
},
"pause": function(video) {
console.warn("----video paused");
},
"on_progress": function(position) {
console.warn("----position eq", position);
}
};
};
//----------------------------------- METHODS
PlayerProxy.prototype.play = function() {
this.getPlayer().play();
};
PlayerProxy.prototype.pause = function() {
this.getPlayer().pause();
};
PlayerProxy.prototype.stop = function() {
this.getPlayer().stop();
};
PlayerProxy.prototype.next = function(autoplay) {
this.getPlayer().next(autoplay);
};
PlayerProxy.prototype.prev = function(autoplay) {
this.getPlayer().prev(autoplay);
};
PlayerProxy.prototype.setQuality = function(quality) {
this.getPlayer().setQuality(quality);
};
PlayerProxy.prototype.seek = function(position) {
this.getPlayer().seek(position);
};
PlayerProxy.prototype.getState = function() {
var self = this;
this.getPlayer().getState(function(state) {
var isPlaying = !!(state & self.states.STATE_PLAYING);
console.warn(isPlaying);
});
};
//-----------------------------------
PlayerProxy.prototype.getPlayer = function() {
return this.getPlayerObject().getModule(tvigle.api.modules.APIModules.VIDEO_PLAYER);
};
PlayerProxy.prototype.setPlayerObject = function(player) {
this.player = player;
};
PlayerProxy.prototype.getPlayerObject = function() {
return this.player;
};
PlayerProxy.prototype.getHandler = function(name) {
return this.handlers[name];
};
//----------------------------------- STATIC
PlayerProxy.getInstance = function() {
if (this.instance === undefined) {
this.instance = new PlayerProxy();
}
return this.instance;
};
Partner = (function(player) {
"use strict";
return {
/**
* Player was created
* @param {String} id Player ID
*/
"onLoaded": function(id) {
player.setPlayerObject(tvigle.api.getPlayer(id));
},
/**
* Player prepared to play
*/
"onReady": function() {
// Autoplay example
// player.play();
},
/**
* Event router
* @param event
*/
"eventHandler": function(event) {
var command = event['name'],
args = event['args'];
var method = player.getHandler(command);
if (typeof method === "function") {
method.apply(player, args);
} else if (window.console){
console.log("Function named " + command + "(" + args.length + " params) is not defined.");
}
}
};
this.states = {};
this.states.STATE_INITED = 1 << 0;
this.states.STATE_ACTIVATED = 1 << 1;
this.states.STATE_AD_SHOWING = 1 << 2;
this.states.STATE_BUFFERING = 1 << 3;
this.states.STATE_PLAYING = 1 << 4;
this.states.STATE_PAUSED = 1 << 5;
this.states.STATE_STOPPED = 1 << 6;
this.states.STATE_IN_SEEK = 1 << 7;
this.states.STATE_FULLSCREEN = 1 << 8;
this.states.STATE_FULLBROWSER = 1 << 9;
this.states.STATE_FITTED = 1 << 10;
this.states.STATE_CONTINUOUS_PLAY = 1 << 11;
this.states.STATE_FIT_AVAILABLE = this.states.STATE_FULLBROWSER | this.states.STATE_FULLSCREEN;
this.states.STATE_MIDDLE_ROLL_WAS = 1 << 12;
})(PlayerProxy.getInstance());
Методы доступные партнёру (Сеттеры)
loadVideoByID(id: Integer): void
play(): void
pause(): void
stop(): void
seek(time: Number): void
next([autoplay: Boolean]): void
prev([autoplay: Boolean]): void
setVolume(volume: Number): void
setQuality(quality: String): void (описание ниже, раздел "Качества видео")
fullscreen(): void
Методы доступные партнёру (Геттеры)
getVolume(callback: Function): void
getDuration(callback: Function): void
getVideoQueue(callback: Function): void
getCurrentVideo(callback: Function): void
getPosition(callback: Function): void
getState(callback: Function): void (описание ниже, раздел "Состояния плеера")
Состояния плеера Video Publisher
(1 << 0) - Плеер проинициализирован
(1 << 1) - Плеер готов к проигрыванию
(1 << 2) - Идёт показ рекламы (плеер заблокирован)
(1 << 3) - Идёт буферизация
(1 << 4) - Играет
(1 << 5) - На паузе
(1 << 6) - Был остановлен
(1 << 7) - Идёт поиск ключевого кадра во время выполнения метода seek
(1 << 8) - Плеер зафулскринен
(1 << 9) - Плеер зафулбраузен
(1 << 10) - Overlay
(1 << 11) - Проигрывание продолжается
Качества видео
HD240 - 240p качество
HD320 - 320p качество
HD480 - 480p качество
HD720 - 720p качество
HD1080 - 1080p качество
HD1440 - 1440p качество
{
"name": "Название видео",
"description": "Описание видео",
"show_ad": true,
"age_restrictions": "6+",
"publication_date": "%Y-%m-%d %H:%M",
"callback_url": "http://example.com/callback/",
"source_url" : "http://example.com/source.mp4",
"resources": :[
{
"quality":"240p",
"url":"http://www.tvigle.ru/1.avi"
},
{
"quality":"720p",
"url":"http://www.tvigle.ru/2.avi"
}
]
}
{
"type":"object",
"required":[
"name",
"description"
],
"properties":{
"name":{
"type":"string"
},
"description":{
"type":"string"
}
},
"show_ad":{
"type":"boolean"
},
"age_restrictions":{
"type":"string"
},
"publication_date":{
"type":"date-time"
},
"callback_url":{
"type":"string"
},
"source_url":{
"type":"string"
},
"resources":{
"type":"array",
"items":{
"type":"object",
"required":[
"quality",
"url"
],
"properties":{
"quality":"string",
"url":"string"
}
}
}
}
{
"embed_html": "<script language='JavaScript'
type='text/javascript'
src='/static/player/player_builder.min.js'></script>
<object class='TviglePlayer'>
<param name='bgcolor' value='#000000' />
<param name='height' value='405' />
<param name='width' value='702' />
<param name='id' value='1' />
<param name='useAPI' value='true' />
<param name='autoChangeVideo' value='false' />
</object>",
"duration": "0:47",
"id": 1,
"category": 5,
"errors": [],
"country_restrictions": [],
"age_restrictions": "18+",
"progress": 100,
"thumbnail": "http://photo.tvigle.ru/res/prt/c330f15b00e2d7499a04688ae5657e5d/40/33/000001284033/pub.jpg",
"resources": [
{
"status": "queued",
"progress": 0,
"errors": [],
"quality": "240p",
"id": 2
},
{
"status": "queued",
"progress": 0,
"errors": [],
"quality": "480p",
"id": 1
}
],
"status": "published",
"description": "",
"tags": [],
"show_ad": true,
"is_active": true,
"is_playable": true,
"publication_date": null,
"name": "\u041A\u0430\u043A\u043E\u0435-\u0442\u043E \u0438\u043C\u044F",
"created_at": "2013-06-29 10:19:43",
"aspect_ratio": "16:9",
"distribution": 1,
"freezeFrame": null
}
{
"total_count":3064,
"result":[
{
"status":"published",
"embed_html":"<iframe src='http://127.0.0.1:8000/video/5350456/?playerId=13&partnerId=1'
width='854'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"subtitle":null,
"description":"\u043f\u043e\u043f-\u043c\u0443\u0437\u044b\u043a\u0430 La Vtornik!",
"tags":[
"\u043f\u043e\u043f-\u043c\u0443\u0437\u044b\u043a\u0430",
"La Vtornik",
"\u043f\u043e\u043f"
],
"iframe_url":"http://127.0.0.1:8000/video/5350456/?playerId=13&partnerId=1",
"show_ad":true,
"embed_object":"<object class='TviglePlayer'>
<param name='id' value='5350456'>
<param name='adv_cat_id' value='6'>
<param name='partnerId' value='1'>
<param name='autoStart' value='true'>
<param name='forceFlashObject' value='true'>
<param name='wmode' value='opaque'>
<param name='playerId' value='13'>
<param name='width' value='854'>
<param name='height' value=''>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
<!--<param name='api_sign' value='play_token=111&expire=222&key=333'>-->
<!--<param name='trace' value='true'>-->
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='/static/player/player_builder.min.js'></script>",
"is_active":true,
"is_playable":true,
"duration_in_ms":201762,
"callback_url":null,
"errors":[],
"meta":{
"country_restrictions":[]
},
license": {
"date_from": "2017-03-20",
"date_to": "2018-03-20"
},
"duration":"3:21",
"publication_date":"2013-12-28 21:00:00",
"is_banned":false,
"freezeFrame":"//127.0.0.1:8000/res/2016/01/11/0f113cb6-ccb7-448d-83b0-32611fb2648f.png",
"partner_id":1,
"id":5350456,
"category":27774,
"rightholder":18799,
"country_restrictions":[],
"name":"\u0417\u0430\u0446\u0435\u043f\u0438\u043b\u0430",
"publication_start_date":"",
"age_restrictions":"12+",
"created_at":"2016-01-11 18:18:20",
"url":"/client/videos/5350456/",
"publication_end_date":"",
"aspect_ratio":null,
"progress":100,
"distribution":1,
"status_display":"\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d",
"thumbnail":"//127.0.0.1:8000/res/2016/01/11/18da8e2d-3f87-4bf8-bcc6-c14e917b2738.jpg",
"resources":[
{
"status":"finished",
"errors":[],
"format":"flv",
"progress":100,
"quality":"1080p",
"id":9632266
},
{
"status":"finished",
"errors":[],
"format":"mp4",
"progress":100,
"quality":"480p",
"id":9632263
}
],
"tv_id":null
}
]
}
{
"total_count":3064,
"result":[
{
"status":"published",
"embed_html":"<iframe src='http://127.0.0.1:8000/video/5350456/?playerId=13&partnerId=1'
width='854'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"subtitle":null,
"description":"\u043f\u043e\u043f-\u043c\u0443\u0437\u044b\u043a\u0430 La Vtornik!",
"tags":[
"\u043f\u043e\u043f-\u043c\u0443\u0437\u044b\u043a\u0430",
"La Vtornik",
"\u043f\u043e\u043f"
],
"iframe_url":"http://127.0.0.1:8000/video/5350456/?playerId=13&partnerId=1",
"show_ad":true,
"embed_object":"<object class='TviglePlayer'>
<param name='id' value='5350456'>
<param name='adv_cat_id' value='6'>
<param name='partnerId' value='1'>
<param name='autoStart' value='true'>
<param name='forceFlashObject' value='true'>
<param name='wmode' value='opaque'>
<param name='playerId' value='13'>
<param name='width' value='854'>
<param name='height' value=''>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
<!--<param name='api_sign' value='play_token=111&expire=222&key=333'>-->
<!--<param name='trace' value='true'>-->
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='/static/player/player_builder.min.js'></script>",
"is_active":true,
"is_playable":true,
"duration_in_ms":201762,
"callback_url":null,
"errors":[],
"meta":{
"country_restrictions":[]
},
"duration":"3:21",
"publication_date":"2013-12-28 21:00:00",
"is_banned":false,
"freezeFrame":"//127.0.0.1:8000/res/2016/01/11/0f113cb6-ccb7-448d-83b0-32611fb2648f.png",
"partner_id":1,
"id":5350456,
"category":27774,
"rightholder":18799,
"country_restrictions":[],
"name":"\u0417\u0430\u0446\u0435\u043f\u0438\u043b\u0430",
"publication_start_date":"",
"age_restrictions":"12+",
"created_at":"2016-01-11 18:18:20",
"url":"/client/videos/5350456/",
"publication_end_date":"",
"aspect_ratio":null,
"progress":100,
"distribution":1,
"status_display":"\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d",
"thumbnail":"//127.0.0.1:8000/res/2016/01/11/18da8e2d-3f87-4bf8-bcc6-c14e917b2738.jpg",
"resources":[
{
"status":"finished",
"errors":[],
"format":"flv",
"progress":100,
"quality":"1080p",
"id":9632266
},
{
"status":"finished",
"errors":[],
"format":"mp4",
"progress":100,
"quality":"480p",
"id":9632263
}
],
"tv_id":null
}
]
}
{
"status":"published",
"embed_html":"<iframe src='http://127.0.0.1:8000/video/5350456/?playerId=13&partnerId=1'
width='854'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"subtitle":null,
"description":"\u043f\u043e\u043f-\u043c\u0443\u0437\u044b\u043a\u0430 La Vtornik!",
"tags":[
"\u043f\u043e\u043f-\u043c\u0443\u0437\u044b\u043a\u0430",
"La Vtornik",
"\u043f\u043e\u043f"
],
"iframe_url":"http://127.0.0.1:8000/video/5350456/?playerId=13&partnerId=1",
"show_ad":true,
"embed_object":"<object class='TviglePlayer'>
<param name='id' value='5350456'>
<param name='adv_cat_id' value='6'>
<param name='partnerId' value='1'>
<param name='autoStart' value='true'>
<param name='forceFlashObject' value='true'>
<param name='wmode' value='opaque'>
<param name='playerId' value='13'>
<param name='width' value='854'>
<param name='height'value=''>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
<!--<param name='api_sign' value='play_token=111&expire=222&key=333'>-->
<!--<param name='trace' value='true'>-->
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='/static/player/player_builder.min.js'></script>",
"is_active":true,
"is_playable":true,
"duration_in_ms":201762,
"callback_url":null,
"errors":[],
"meta":{
"country_restrictions":[]
},
"duration":"3:21",
"publication_date":"2013-12-28 21:00:00",
"is_banned":false,
"freezeFrame":"//127.0.0.1:8000/res/2016/01/11/0f113cb6-ccb7-448d-83b0-32611fb2648f.png",
"partner_id":1,
"id":5350456,
"category":27774,
"rightholder":18799,
"country_restrictions":[],
"name":"\u0417\u0430\u0446\u0435\u043f\u0438\u043b\u0430",
"publication_start_date":"",
"age_restrictions":"12+",
"created_at":"2016-01-11 18:18:20",
"url":"/client/videos/5350456/",
"publication_end_date":"",
"aspect_ratio":null,
"progress":100,
"distribution":1,
"status_display":"\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d",
"thumbnail":"//127.0.0.1:8000/res/2016/01/11/18da8e2d-3f87-4bf8-bcc6-c14e917b2738.jpg",
"resources":[
{
"status":"finished",
"errors":[],
"format":"flv",
"progress":100,
"quality":"1080p",
"id":9632266
},
{
"status":"finished",
"errors":[],
"format":"mp4",
"progress":100,
"quality":"480p",
"id":9632263
}
],
"tv_id":null
}
{
"album":"",
"description":"Недавно уволенные друзья, которым уже за сорок...",
"film_studios":[],
"kinopoisk_id":null,
"url":"http://www.tvigle.ru/video/kadry-treiler/",
"season":null,
"tags":[
"Оуэн Уилсон",
"Винс Вон",
"The Internship",
"2013",
],
"original_name":"",
"persons":{
"producers":[],
"directors":[],
"writers":[],
"actors":[],
"composer":[],
"singers":[]
},
"release_year":null,
"awards":[],
"genries":[
"Комедия"
],
"series":null,
"countries":[],
"id":5147182,
"name":"Кадры Трейлер"
}
{
"name": "Название видео",
"description": "Описание видео",
"show_ad": true,
"age_restrictions": "6+",
"publication_date": "%Y-%m-%d %H:%M"
}
{
"type":"object",
"required":[
"name",
"description"
],
"properties":{
"name":{
"type":"string"
},
"description":{
"type":"string"
}
},
"show_ad":{
"type":"boolean"
},
"age_restrictions":{
"type":"string"
},
"publication_date":{
"type":"date-time"
}
}
{
"total_count":1,
"result":[
{
"embed_html":"<iframe src='http://cloud.tvigle.ru/playlist/1/?playerId=1&partnerId=1'
width='854'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"description":"",
"iframe_url":"http://cloud.tvigle.ru/playlist/1/?playerId=1&partnerId=1",
"embed_object":"<object class='TviglePlayer'>
<param name='playlistID' value='1'>
<param name='id' value=''>
<param name='adv_cat_id' value='1'>
<param name='partnerId' value='1'>
<param name='autoStart' value='true'>
<param name='forceFlashObject' value='true'>
<param name='wmode' value='opaque'>
<param name='playerId' value='1'>
<param name='width' value='854'>
<param name='height' value=''>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='//cloud.tvigle.ru/static/player/player_builder.min.js'></script>",
"is_active":true,
"number_of_videos":0,
"id":1,
"name":"123"
}
]
}
{
"description": "test_playlist_description",
"name": "test_playlist_name6"
}
{
"embed_html":"<iframe src='http://cloud.tvigle.ru/playlist/1/?playerId=1&partnerId=1'
width='854'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"description":"test_playlist_description",
"iframe_url":"http://cloud.tvigle.ru/playlist/1/?playerId=1&partnerId=1",
"embed_object":"<object class='TviglePlayer'>
<param name='playlistID' value='1'>
<param name='id' value=''>
<param name='adv_cat_id' value='1'>
<param name='partnerId' value='1'>
<param name='autoStart' value='true'>
<param name='forceFlashObject' value='true'>
<param name='wmode' value='opaque'>
<param name='playerId' value='1'>
<param name='width' value='854'>
<param name='height' value=''>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='//cloud.tvigle.ru/static/player/player_builder.min.js'></script>",
"is_active":true,
"number_of_videos":0,
"id":1,
"name":"test_playlist_name6"
}
{
"embed_html":"<iframe src='http://cloud.tvigle.ru/playlist/1/?playerId=1&partnerId=1'
width='854'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"description":"",
"iframe_url":"http://cloud.tvigle.ru/playlist/1/?playerId=1&partnerId=1",
"embed_object":"<object class='TviglePlayer'>
<param name='playlistID' value='1'>
<param name='id' value=''>
<param name='adv_cat_id' value='1'>
<param name='partnerId' value='1'>
<param name='autoStart' value='true'>
<param name='forceFlashObject' value='true'>
<param name='wmode' value='opaque'>
<param name='playerId' value='1'>
<param name='width' value='854'>
<param name='height' value=''>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='//cloud.tvigle.ru/static/player/player_builder.min.js'></script>",
"is_active":true,
"number_of_videos":0,
"id":1,
"name":"123"
}
Изменение PUT /api/playlists/{id}/
{
"description": "update2",
"name": "updated1"
}
{
"embed_html":"<iframe src='http://cloud.tvigle.ru/playlist/1/?playerId=1&partnerId=1'
width='854'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"description":"update2",
"iframe_url":"http://cloud.tvigle.ru/playlist/1/?playerId=1&partnerId=1",
"embed_object":"<object class='TviglePlayer'>
<param name='playlistID' value='1'>
<param name='id' value=''>
<param name='adv_cat_id' value='1'>
<param name='partnerId' value='1'>
<param name='autoStart' value='true'>
<param name='forceFlashObject' value='true'>
<param name='wmode' value='opaque'>
<param name='playerId' value='1'>
<param name='width' value='854'>
<param name='height' value=''>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='//cloud.tvigle.ru/static/player/player_builder.min.js'></script>",
"is_active":true,
"number_of_videos":0,
"id":1,
"name":"updated1"
}
Список видео GET /api/playlists/{id}/videos/
{
"total_count":1,
"result":[
{
"embed_html":"<iframe src='http://cloud.tvigle.ru/video/1/?playerId=1'
width='702'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"subtitle":null,
"callback_url":null,
"meta":{
"country_restrictions":[]
},
"duration":"2:44",
"partner_id":24,
"id":5144693,
"category":33295,
"errors":[],
"country_restrictions":[],
"age_restrictions":"0+",
"publication_end_date":"2015-11-20 12:58:03",
"progress":100,
"thumbnail":"//example.com/thumbnail.png",
"resources":[
{
"status":"finished",
"errors":[],
"format":"mp4",
"progress":100,
"quality":"240p",
"id":850898
},
{
"status":"finished",
"errors":[],
"format":"flv",
"progress":100,
"quality":"240p",
"id":850899
},
{
"status":"finished",
"errors":[],
"format":"flv",
"progress":100,
"quality":"480p",
"id":850900
},
{
"status":"finished",
"errors":[],
"format":"mp4",
"progress":100,
"quality":"480p",
"id":850901
}
],
"tv_id":null,
"status":"finished",
"description":"Описание",
"tags":[
"тег 1",
"тег 2",
],
"iframe_url":"http://cloud.tvigle.ru/video/1/?playerId=1",
"show_ad":true,
"embed_object":"<object class='TviglePlayer'>
<param name='id' value='1'>
<param name='adv_cat_id' value='1'>
<param name='partnerId' value='1'>
<param name='autoStart' value='true'>
<param name='forceFlashObject' value='true'>
<param name='wmode' value='opaque'>
<param name='playerId' value='1'>
<param name='width' value=''>
<param name='height' value=''>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
<!--<param name='api_sign' value='play_token=111&expire=222&key=333'>-->
<!--<param name='trace' value='true'>-->
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='//cloud.tvigle.ru/static/player/player_builder.min.js'></script>",
"is_active":true,
"is_playable":true,
"duration_in_ms":146680,
"status_display":"\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d",
"publication_date":"2013-02-20 15:40:00",
"is_banned":false,
"rightholder":1,
"name":"Название",
"publication_start_date":"",
"created_at":"2014-08-18 20:43:48",
"url":"/client/videos/1/",
aspect_ratio":null,
"distribution":1,
"freezeFrame":null,
"order":1
}
]
}
Удаление видео DELETE /api/playlists/{playlist_id}/videos/{video_id}/
{
"total_count": 11,
"result": [
{
"description": "description",
"has_children": false,
"is_active": true,
"id": 20114,
"name": "ttt",
"level": 0,
"url": "/client/categories/20114/",
"priority": 0,
"parent_id": null,
"number_of_videos": 0,
"thumbnail": ""
}
]
}
Список партнёрских GET /api/library/{?partner_id}{?parent_id}
{
"total_count": 11,
"result": [
{
"description": "description",
"has_children": false,
"is_active": true,
"id": 20114,
"name": "ttt",
"level": 0,
"url": "/client/categories/20114/",
"priority": 0,
"parent_id": null,
"number_of_videos": 0,
"thumbnail": ""
}
]
}
{
"description": "description",
"has_children": false,
"is_active": true,
"name": "ttt",
"url": "/client/categories/20115/",
"parent_id": null,
"thumbnail": ""
}
{
"description": "description",
"has_children": false,
"is_active": true,
"id": 20115,
"name": "ttt",
"level": 0,
"url": "/client/categories/20115/",
"priority": 0,
"parent_id": null,
"number_of_videos": 0,
"thumbnail": ""
}
{
"description": "desc2",
"name": "cat2",
"parent": 20103
}
{
"description": "desc2",
"has_children": false,
"is_active": true,
"id": 20115,
"name": "cat2",
"level": 0,
"url": "/client/categories/20115/",
"priority": 0,
"parent_id": null,
"number_of_videos": 0,
"thumbnail": ""
}
{
video_id:111
}
Список видео GET /api/library/{id}/videos/
{
"total_count":3064,
"result":[
{
"status":"published",
"embed_html":"<iframe src='http://127.0.0.1:8000/video/5350456/?playerId=13&partnerId=1'
width='854'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"subtitle":null,
"description":"\u043f\u043e\u043f-\u043c\u0443\u0437\u044b\u043a\u0430 La Vtornik!",
"tags":[
"\u043f\u043e\u043f-\u043c\u0443\u0437\u044b\u043a\u0430",
"La Vtornik",
"\u043f\u043e\u043f"
],
"iframe_url":"http://127.0.0.1:8000/video/5350456/?playerId=13&partnerId=1",
"show_ad":true,
"embed_object":"<object class='TviglePlayer'>
<param name='id' value='5350456'>
<param name='adv_cat_id' value='6'>
<param name='partnerId' value='1'>
<param name='autoStart' value='true'>
<param name='forceFlashObject' value='true'>
<param name='wmode' value='opaque'>
<param name='playerId' value='13'>
<param name='width' value='854'>
<param name='height' value=''>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
<!--<param name='api_sign' value='play_token=111&expire=222&key=333'>-->
<!--<param name='trace' value='true'>-->
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='/static/player/player_builder.min.js'></script>",
"is_active":true,
"is_playable":true,
"duration_in_ms":201762,
"callback_url":null,
"errors":[],
"meta":{
"country_restrictions":[]
},
"duration":"3:21",
"publication_date":"2013-12-28 21:00:00",
"is_banned":false,
"freezeFrame":"//127.0.0.1:8000/res/2016/01/11/0f113cb6-ccb7-448d-83b0-32611fb2648f.png",
"partner_id":1,
"id":5350456,
"category":27774,
"rightholder":18799,
"country_restrictions":[],
"name":"\u0417\u0430\u0446\u0435\u043f\u0438\u043b\u0430",
"publication_start_date":"",
"age_restrictions":"12+",
"created_at":"2016-01-11 18:18:20",
"url":"/client/videos/5350456/",
"publication_end_date":"",
"aspect_ratio":null,
"progress":100,
"distribution":1,
"status_display":"\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d",
"thumbnail":"//127.0.0.1:8000/res/2016/01/11/18da8e2d-3f87-4bf8-bcc6-c14e917b2738.jpg",
"resources":[
{
"status":"finished",
"errors":[],
"format":"flv",
"progress":100,
"quality":"1080p",
"id":9632266
},
{
"status":"finished",
"errors":[],
"format":"mp4",
"progress":100,
"quality":"480p",
"id":9632263
}
],
"tv_id":null
}
]
}
Добавление видео POST /api/videos/
{
"name":"…",
"resources":[
{
"quality":"240p",
"url":"https://dl.dropboxusercontent.com/u/589071/H264_test5_voice_mp4_480x360.mp4"
},
{
"quality":"720p",
"url":"https://dl.dropboxusercontent.com/u/589071/H264_test5_voice_mp4_480x360.mp4"
}
]
}
{
"status": "queued",
"embed_html": "<iframe src='http://127.0.0.1:8000/video/5236513/?partnerId=23'
width='702'
height='405'
frameborder='no'
scrolling='no'
webkitAllowFullScreen
mozallowfullscreen
allowfullscreen></iframe>",
"subtitle": null,
"description": "",
"tags": [],
"iframe_url": "http://127.0.0.1:8000/video/5236513/?partnerId=23",
"show_ad": true,
"embed_object": "<object class='TviglePlayer'>
<param name='id' value='5236513'>
<param name='partnerId' value='23'>
<param name='forceFlashObject' value='true'>
<param name='width' value='702'>
<param name='height' value='405'>
<param name='useAPI' value='true'>
<param name='autoChangeVideo' value='false'>
</object>
<script language='JavaScript'
type='text/javascript'
data-hang='false'
src='/static/player/player_builder.min.js'></script>",
"is_active": true,
"is_playable": false,
"duration_in_ms": null,
"callback_url": null,
"errors": [],
"duration": null,
"publication_date": null,
"is_banned": false,
"freezeFrame": null,
"partner_id": 23,
"id": 5236513,
"category": null,
"rightholder": 24,
"country_restrictions": [],
"name": "megatest",
"publication_start_date": "",
"age_restrictions": "0+",
"created_at": "2014-12-05 11:17:08",
"url": "/client/videos/5236513/",
"publication_end_date": "",
"aspect_ratio": null,
"progress": 0,
"distribution": 1,
"status_display": "в очереди",
"thumbnail": null,
"resources":
[
{
"status": "queued",
"errors": [],
"format": null,
"progress": 0,
"quality": "640p",
"id": 2913816
},
{
"status": "queued",
"errors": [],
"format": null,
"progress": 0,
"quality": "240p",
"id": 2913815
}
],
"tv_id": null
}
Добавление превью POST /api/videos/{id}/thumbnail/
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>Videos for Partner</title>
<link>http://127.0.0.1:8000</link>
<description></description>
<atom:link href="/api/rss/videos/" rel="self"></atom:link>
<language>ru</language>
<lastBuildDate>Wed, 13 Apr 2016 12:08:09 -0000</lastBuildDate>
<item>
<title>Название видео</title>
<link>http://127.0.0.1:8000/client/videos/id/</link>
<description>Описание видео</description>
<pubDate>Wed, 13 Apr 2016 12:08:09 -0000</pubDate>
<guid>id видео</guid>
<category>Категория видео</category>
</item>
</channel>
</rss>
{
"video":{
"description":"Описание видео",
"title":"Название видео",
"age_restrictions":"18+",
"id":1,
"freeze_frame":"//example.com/freeze_frame.png",
"thumbnail":"//example.com/thumbnail.png",
"duration":2916002,
"category_id":1,
"is_geo_blocked":false,
"resources":{
"mp4":{
"480p":{
"link":"//example.com/video_480.mp4",
"size":402070623
},
"360p":{
"link":"//example.com/video_360.mp4",
"size":284513502
}
},
"flv":{
"480p":{
"link":"//example.com/video_480.flv",
"size":402070623
},
"360p":{
"link":"//example.com/video_360.flv",
"size":284513502
}
}
},
"owner_id":1
}
}