Playlists
As playlists possuim a programação e ordem em que os conteúdos vão ser exibidos no 4YouSee Player.
As playlists possuim os seguintes parámetros:
items
: É um dos itens mais importantes da playlist. Juntos,items
esequence
definem o que será reproduzido e a ordem. Cada item permitido tem um esquema específico que eles são:
media
{
"type": "media",
"id": 1
}
carousel
{
"type": "carousel",
"id": 1,
"items": []
}
subPlaylist
{
"type": "subPlaylist",
"id": 73,
"name": "Playlist Teste",
"sequence": [ 0 ],
"items": [
{
"type": "media",
"id": 80,
"name": "imagen_oficial_evento_",
"file": "i_80.png",
"durationInSeconds": 15,
"categories": [
{
"id": 2,
"name": "Conteudos Verticais"
}
]
}
]
}
news
{
"type": "news",
"durationInSeconds": 10
}
layout
{
"type": "layout",
"id": 2
}
videowall
é uma grade composta por uma matriz de uma ou duas dimensões que representa a posição de cada tela em que cada vídeo será executado. É necessário que todos os itens da grade sejam uma mídia do tipo vídeo e com a mesma duração.
O campo abortIfError
informa ao Player se o videowall deve ser abortado em caso de erro.
O campo ignoreLayout
informa ao Player se o videowall deve ser ignorado no layout atual.
{
"type": "videowall",
"abortIfError": false,
"ignoreLayout": false,
"grid": [
[
{
"type": "media",
"name": "conteudo teste 1",
"id": 4,
"durationInSeconds": 20,
"categories": [
{
"id": 27,
"name": "random_"
}
]
},
{
"type": "media",
"name": "conteudo teste 2",
"id": 15,
"durationInSeconds": 20,
"categories": [
{
"id": 27,
"name": "random_"
}
]
}
],
[
{
"type": "media",
"name": "conteudo teste 3",
"id": 36,
"durationInSeconds": 20,
"categories": [
{
"id": 27,
"name": "random_"
}
]
},
{
"type": "media",
"name": "conteudo teste 4",
"id": 44,
"durationInSeconds": 20,
"categories": [
{
"id": 27,
"name": "random_"
}
]
}
]
]
}
No exemplo acima, o Video wall tem formato 2x2 com 4 telas.
Os itens numa playlist não podem ser repetidos, exceto videoWall.
sequence
Uma lista de inteiros com a sequencia de itens começando com ‘0'. Todos os itens listados em itens devem ser representados na sequência.
Por exemplo: Se a lista de itens contém 4 elementos, os valores possíveis para a sequência são 0
, 1
, 2
e 3
. A posição do item na sequência pode ser repetida quantas vezes forem necessárias para compor a ordem da lista de reprodução.
// (...)
"items": [
{
//(Some item with index 0)
},
{
//(Another item with index 1)
},
{
//(Another item with index 2)
},
{
//(Another item with index 3)
}
],
"sequence" [
0,1,2,3,1,2,1,0,0
]
//(...)
GET
Obtem a lista de todas as playlists
endpoint: https://api.4yousee.com.br/v1/playlists
import requests
url = "https://api.4yousee.com.br/v1/playlists"
payload={}
headers = {
'Secret-Token': '2848d026950a961c15b3518901a54741'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
Resposta com todas as playlists
POST
Cria uma nova playlist
endpoint: https://api.4yousee.com.br/v1/playlists
import requests
import json
url = "https://api.4yousee.com.br/v1/playlists"
payload = json.dumps({
"name": "Playlist Created via API",
"isSubPlaylist": False,
"category": None,
"items": [
{
"type": "layout",
"id": 1
},
{
"type": "videowall",
"abortIfError": False,
"ignoreLayout": False,
"grid": [
[
{
"type": "media",
"id": 4
},
{
"type": "media",
"id": 1
}
],
[
{
"type": "media",
"id": 2
},
{
"type": "media",
"id": 4
}
]
]
},
{
"type": "media",
"id": 5
},
{
"type": "news"
}
],
"sequence": [
0,
1,
2,
3
]
})
headers = {
'Content-Type': 'application/json',
'Secret-Token': '2848d026950a961c15b3518901a54741'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Playlists Individuais
GET
Obtem o detalhe de uma playlist
endpoint: https://api.4yousee.com.br/v1/playlists/{playlistId}
import requests
url = "https://api.4yousee.com.br/v1/playlists/2"
payload={}
headers = {
'Secret-Token': '2848d026950a961c15b3518901a54741'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
Resposta para visualizar uma playlist
{
"id": 1,
"name": "Contenido Vertical",
"durationInSeconds": 246,
"isSubPlaylist": false,
"category": null,
"items": [
{
"type": "media",
"id": 66,
"name": "gran impacto digimedios vertical 30s",
"file": "i_66.mp4",
"durationInSeconds": 30,
"categories": [
{
"id": 2,
"name": "Contenidos Verticales"
}
]
},
{
"type": "carousel",
"id": 9,
"name": "Festival Perro Caliente",
"items": []
},
{
"type": "media",
"id": 80,
"name": "imagen_oficial_evento_festival_del_perro_caliente",
"file": "i_80.png",
"durationInSeconds": 15,
"categories": [
{
"id": 2,
"name": "Contenidos Verticales"
}
]
},
{
"type": "media",
"id": 69,
"name": "contenido actualizado colors digimedios vertical 30s",
"file": "i_69.mp4",
"durationInSeconds": 30,
"categories": [
{
"id": 2,
"name": "Contenidos Verticales"
}
]
},
{
"type": "media",
"id": 99,
"name": "Noticia museo del carnaval",
"file": "i_99.mp4",
"durationInSeconds": 15,
"categories": [
{
"id": 2,
"name": "Contenidos Verticales"
}
]
},
{
"type": "media",
"id": 100,
"name": "nueva_plaza_de_la_paz",
"file": "i_100.mp4",
"durationInSeconds": 22,
"categories": [
{
"id": 2,
"name": "Contenidos Verticales"
}
],
"contentSchedule": {
"endDate": "2019-12-30"
}
},
{
"type": "media",
"id": 102,
"name": "Último día perro caliente",
"file": "i_102.mp4",
"durationInSeconds": 10,
"categories": [
{
"id": 2,
"name": "Contenidos Verticales"
}
],
"contentSchedule": {
"endDate": "2019-12-22"
}
},
{
"type": "media",
"id": 101,
"name": "puente pumarejo",
"file": "i_101.mp4",
"durationInSeconds": 31,
"categories": [
{
"id": 2,
"name": "Contenidos Verticales"
}
]
}
],
"sequence": [
0,
1,
2,
3,
4,
5,
3,
6,
7,
0,
2
]
}
PUT
Altera uma playlist existente.
endpoint: https://api.4yousee.com.br/v1/playlists/{playlistId}
import requests
import json
url = "https://api.4yousee.com.br/v1/playlists/38"
payload = json.dumps({
"name": "Playlist Created via API",
"isSubPlaylist": False,
"category": None,
"items": [
{
"type": "videowall",
"abortIfError": False,
"ignoreLayout": False,
"grid": [
[
{
"type": "media",
"id": 4
},
{
"type": "media",
"id": 1
}
],
[
{
"type": "media",
"id": 2
},
{
"type": "media",
"id": 4
}
]
]
},
{
"type": "media",
"id": 5
}
],
"sequence": [
0,
1
]
})
headers = {
'Content-Type': 'application/json',
'Secret-Token': '2848d026950a961c15b3518901a54741'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text)
Resposta ao alterar uma playlist
{
"id": 38,
"name": "Playlist Created via API",
"durationInSeconds": 36,
"isSubPlaylist": false,
"category": null,
"items": [
{
"type": "videoWall",
"abortIfError": false,
"ignoreLayout": false,
"grid": [
[
{
"id": 4,
"name": "4YouSee Analyse",
"file": "i_4.mp4",
"durationInSeconds": 10,
"contentSchedule": {
"startDate": "2021-02-01"
}
},
{
"id": 1,
"name": "4YouSee Play",
"file": "i_1.mp4",
"durationInSeconds": 10,
"contentSchedule": {
"times": [
{
"startTime": "11:00",
"endTime": "19:00",
"weekDays": [
0,
1,
2,
3,
4,
5,
6
]
}
]
}
}
],
[
{
"id": 2,
"name": "4YouSee Manage",
"file": "i_2.mp4",
"durationInSeconds": 10,
"contentSchedule": {
"startDate": "2021-02-02",
"endDate": "2021-06-05",
"times": [
{
"startTime": "05:00",
"endTime": "21:00",
"weekDays": [
0,
2,
3,
4,
6
]
}
]
}
},
{
"id": 4,
"name": "4YouSee Analyse",
"file": "i_4.mp4",
"durationInSeconds": 10,
"contentSchedule": {
"startDate": "2021-02-01"
}
}
]
]
},
{
"type": "media",
"id": 5,
"name": "Walking",
"file": "i_5.mp4",
"durationInSeconds": 26,
"contentSchedule": {
"times": [
{
"startTime": "00:00",
"endTime": "23:59",
"weekDays": [
0,
2,
4,
6
]
}
]
}
}
],
"sequence": [
0,
1
]
}
DEL
Exclui uma playlist.
endpoint: https://api.4yousee.com.br/v1/playlists/{playlistId}
import requests
url = "https://api.4yousee.com.br/v1/playlists/"
payload={}
headers = {
'Secret-Token': '2848d026950a961c15b3518901a54741'
}
response = requests.request("DELETE", url, headers=headers, data=payload)
print(response.text)
Resposta ao deletar uma playlist
O status_code
da exclusão realizada com sucesso é 204