3. Introdução
Plataforma flexível:
Virtual hosting (videos.sapo.pt, mudasti.sapo.pt)
User based templates
Escalável
Facilmente integrável com outros sites (pftv.sapo.pt,
sic.sapo.pt)
Uso exclusivo de Software Livre
Lighttpd || Apache + PHP + PEAR + Smarty + MySQL
mpeg + mencoder + mplayer
Memcache
4. Arquitectura da aplicação
SAPO
RSS SOAP MAIL ...
SMARTY
Broker
M
E
Multimédia API
L M
O C
G A
S C
Multimédia Framework H
E
Media Encoder
Database
Stormap
5. Arquitectura hardware
SAPO Videos Stormap
File/
Upload Redirec
Web
streaming
server tor
Frontend
server
File
Vídeo
Stormap
Mysql
Server
encoder
Mysql
Stormap
6. APIs
Smarty
Uso interno
Em estudo a abertura ao público
Mail
Apenas permite upload
RSS
SOAP
7. APIs - RSS
Feeds
http://services.sapo.pt/videos/RSS/Channel/user/id
Retorna o rss da playlist
http://services.sapo.pt/videos/RSS/Query
Parâmetros GET
user - Pesquisa por utilizador
related - Vídeos relacionados
tag - Pesquisa por tag
search - Pesquisa livre
order - Ordenação de resultados
limit - Numero de resultados
8. APIs - RSS
Utilização dos parâmetros
Todos os parâmetros são opcionais. Por omissão são
apresentados os vídeos mais recentes
O parâmetro user pode ser conjugado com qualquer
outro parâmetro
Os parâmetros related, tag e search não podem ser
combinados entre si
O parâmetro related recebe um identificador único do
video. (http://videos.sapo.pt/Zr2FE21z73uQKB0l13
identificador é Zr2FE21z73uQKB0l13)
9. APIs - RSS
Utilização dos parâmetros (continuação)
O parâmetro order permite ordenar os resultados por
views - Mais vistos
date - Mais recentes (Default)
rate - Melhor rating
Não pode ser conjugado com o parâmetro related,
pois os resultados deste vêm sempre ordenados por
relevância
O limit limita o números de resultados
10. APIs - RSS
item
title
![CDATA[ SAPO Codebits ]]
/title
description
![CDATA[ html ... /html ]]
/description
synopse
![CDATA[ O SAPO vai promover um encontro de 3 dias com programadores
para ajudar a desenvolver e a revelar novos talentos nacionais. ]]
/synopse
videoURLhttp://videos.sapo.pt/KznvtNMZ2fN3llthmKFM/videoURL
views731/views
rate3/rate
time00:04:00/time
media:content url=quot;http://videos.sapo.pt/KznvtNMZ2fN3llthmKFM/pic/120x90quot;
type=quot;image/jpegquot; height=quot;90quot; width=quot;120quot; /
pubDateSun, 21 Oct 2007 16:07:16 +0000/pubDate
linkhttp://videos.sapo.pt/KznvtNMZ2fN3llthmKFM/link
/item
11. APIs - SOAP
Autenticação
Todos os métodos são autenticados com a conta SAPO
Vídeos, através de SOAP Headers
Métodos
AddVideo * NotifyComment *
AddVideoPost GetUserInfo *
CreateUser *
EditVideo
CheckVideo GetEncodeProfilesForUser
DeleteVideo GetEncodeParameters
AddVideoToPlaylist Query
RemoveVideoFromPlaylist
* Apenas para uso interno.
12. APIs - SOAP
AddVideoPost
Permite criar um novo vídeo na plataforma e permiti o
upload deste por POST posteriormente.
De modo a fazer o POST do ficheiro é necessário obter um
Token no BUS com o randname do vídeo como parâmetro
ExtraInfo
O post deverá conter os seguintes campos:
token: Token obtido a partir do BUS
content_file: ficheiro a fazer upload
redir: redirect para o qual a janela de form deve ir após
o POST (opcional, no caso de não ser passado este
parâmetro é devolvido o resultado em XML; caso
contrario é passado o resultado no parâmetro error do
redir)
13. APIs - SOAP
Após o upload podem ser passados os seguintes valores
no parâmetro error do redirect:
INVALID_TOKEN
USED_TOKEN
NO_FILE
FILE_TYPE
LIMIT_TIME
SUCCESS
14. APIs - SOAP
Exemplo de um form para POST do vídeo:
form action=quot;http://upload01.videos.sapo.pt/upload_token.htmlquot; method=quot;postquot;
enctype=quot;multipart/form-dataquot;
input type=quot;filequot; name=quot;content_filequot;
input type=quot;hiddenquot; name=quot;redirquot; value=quot;http://videos.sapo.ptquot;
input type=quot;hiddenquot; name=quot;tokenquot; value=quot;TOKEN VALUEquot;
input type=quot;submitquot;
/form