SAPO Vídeos Novembro de 2007 Vítor Rodrigues Daniel Santos
Introdução SAPO Vídeos User generated content Conteúdos exclusivos Parceiros Múltiplos interfaces Web Mobile SOAP RSS
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 ffmpeg + mencoder + mplayer Memcache
Arquitectura da aplicação SMARTY RSS SOAP SAPO Broker MAIL... L O G S Multimédia API Multimédia Framework M E M C A C H E Database Media Encoder Stormap
Arquitectura hardware SAPO Videos Stormap Web Frontend Upload server Redirec tor File/ streaming server Mysql Vídeo encoder Stormap File Server Mysql Stormap
APIs Smarty Uso interno Em estudo a abertura ao público Mail Apenas permite upload RSS SOAP
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
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/zr2fe21z73uffqkb0l13 identificador é Zr2FE21z73uffQKB0l13)
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
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> <videourl>http://videos.sapo.pt/kznvtnmz2fn3llthmkfm</videourl> <views>731</views> <rate>3</rate> <time>00:04:00</time> <media:content url="http://videos.sapo.pt/kznvtnmz2fn3llthmkfm/pic/120x90" type="image/jpeg" height="90" width="120" /> <pubdate>sun, 21 Oct 2007 16:07:16 +0000</pubDate> <link>http://videos.sapo.pt/kznvtnmz2fn3llthmkfm</link> </item>
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 * AddVideoPost EditVideo CheckVideo DeleteVideo AddVideoToPlaylist RemoveVideoFromPlaylist * Apenas para uso interno. NotifyComment * GetUserInfo * CreateUser * GetEncodeProfilesForUser GetEncodeParameters Query
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)
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
APIs - SOAP Exemplo de um form para POST do vídeo: <form action="http://upload01.videos.sapo.pt/upload_token.html" method="post" enctype="multipart/form-data"> <input type="file" name="content_file"> <input type="hidden" name="redir" value="http://videos.sapo.pt"> <input type="hidden" name="token" value="token VALUE"> <input type="submit"> </form>