Segunda-feira, 9 de Março de 2009
O SAPO disponibiliza um Web Service com a programação de TV (incluindo actualmente todos os canais da oferta MEO).
Para consultar a lista de canais incluidos no sistema basta invocar o serviço em http://services.sapo.pt/EPG/GetChannelList.
A resposta será semelhante a:
<GetChannelListResponse xmlns="http://services.sapo.pt/Metadata/EPG">
<GetChannelListResult>
<Channel>
<Name>RTP1</Name>
<Sigla>RTP1</Sigla>
</Channel>
<Channel>
<Name>RTP2</Name>
<Sigla>RTP2</Sigla>
</Channel>
...
</GetChannelListResult>
</GetChannelListResponse>
Após termos a lista de canais podemos aceder à programação para um canal específico dentro de um intervalo temporal.
Para acedermos à programação do canal RTP2, por exemplo, usamos o serviço em http://services.sapo.pt/EPG/GetChannelByDateInterval.
O resultado será algo como:
<GetChannelByDateIntervalResponse xmlns="http://services.sapo.pt/Metadata/EPG">
<GetChannelByDateIntervalResult>
<Name>RTP2</Name>
<Sigla>RTP2</Sigla>
<Programs>
<Program>
<Id>1600303</Id>
<Title>Os Simpsons T17</Title>
<Description>Homer trabalha como inspector de segurança na fábrica nuclear local; Marge tenta manter a paz na família; Bart é um rapaz endiabrado de 10 anos; Lisa, com 8, é inteligente, toca saxofone e segue a dieta vegetariana; e a bebé Maggie manifesta as emoções sugando desesperadamente a chucha.</Description>
...
<StartTime>2009-03-08 20:00:00</StartTime>
<Duration>3600</Duration>
<EndTime>2009-03-08 21:00:00</EndTime>
</Program>
</Programs>
</GetChannelByDateIntervalResult>
</GetChannelByDateIntervalResponse>
Também podemos aceder a informação mais detalhada sobre um programa acedendo directamente ao mesmo (usando o identificador Id dentro de Program): http://services.sapo.pt/EPG/GetProgramById?programId=1600303.
A descrição do serviço e dos seus métodos encontra-se disponível em http://services.sapo.pt/Metadata/Service/EPG.
De
João a 14 de Março de 2009 às 21:53
E para quem quiser da ZON, verdadeiro formato XMLTV a funcionar em todas as plataformas abertas e algumas fechadas que usam este DTD, tem aqui um recurso que existe faz anos http://zon.xmltv.tekever.eu/epg.xml
Boas:
Ontem depois de jantar estive a testar este web service e gostei. Rápido, simples e com um xml bem formatado.
2 notas:
1-Seria interessante obter horário em que um determinado programa vai para o ar nos próximos dias. Por exemplo o Programa Fatima da SIC http://services.sapo.pt/EPG/GetProgramById?programId=1618919 só informa a próxima vez que o programa vai para o ar mas poderia informar nos próximos 7 dias todas as emissões do programa. Talvez aceitar limites de data na pesquisa so programa.
2-Penso existerem erros na programação. Por exemplo:
http://services.sapo.pt/EPG/GetChannelByDateInterval?channelSigla=sicr&startDate=2009-03-18+00%3A00%3A00&endDate=2009-03-18+23%3A59%3A59
aqui o programa do Zé Pedro começa às 10:00 e termina às 15:35 não me parece que seja real.
No geral gosto e parece-me bem mais prático que o formato xmltv mas também cria uma dependência grande do servidor do sapo.
De miguel a 30 de Novembro de 2009 às 00:55
Alguem me sabe dizer como uso o xml? tentei usar o index que eles dao, tirei o comment de "GetChannelByDateInterval" mas n sai nada :p
o index é este: http://services.sapo.pt/CodeGeneration/PHP?wsdlUrl=http://services.sapo.pt/Metadata/Contract/EPG
cumpts
De higuita a 7 de Dezembro de 2010 às 02:07
Criei um pedido no xmltv para criar um grabber usando este webservice para criar um ficheiro xmltv para usar em centenas de aplicações e dispositivos já existentes e este foi o resultado:
http ://wiki xmltv .org index.php /Portugal
tenho usado nas ultimas semanas e funciona bem, apenas detecto um bug , mas é do webservice ...
o grabber usa o http :/ services.sapo.pt EPG /GetChannelListByDateInterval
para listar a programação de todos os canais, mas o resultado e que vários canais nem
sequer aparecem listados, por exemplo:
http :/ services.sapo.pt EPG /GetChannelListByDateInterval?channelSiglas=RTP1%2CRTP2%2CSIC%2CTVI%2CSICN%2CRTPN%2CSICM%2CSICR%2CRTPM%2CRTPA%2CRTPAC%2CRTPMD%2CSPTV1%2CSPTV2%2CSPTV3%2CEURSP%2CEURS2%2CEURSN%2CSLB%2CESPN%2CCART%2CMOTOR%2CESPNA%2CSAIL%2CPFC%2CRMTV%2CBARCA%2CMUTV%2CCHELS%2CINTER%2CDISNY%2CPANDA%2CBABYT%2CJJAM%2CTVC1%2CTVC2%2CTVC3%2CHOLLW%2CTCM%2CMGM%2CSONY%2CAXN%2CFOX%2CFNEXT%2CFOXCR%2CMTV%2CFUEL%2CANIMX%2CZONER%2CGLOBO%2CEURCH%2CT%26L%2CTVREC%2CLUXSD%2CDISCV%2CODISS%2CNGC%2CNGWIL%2CHIST%2CBIOG%2CTRAV%2CMCM%20T%2CMCM%20P%2CTRACE%2CVH1%2CNGMUS%2CAFRO%2CC-MUS%2CMEZZO%2CEURN%2CCNN%2CSKYN%2CFNEWS%2CBBC%20W%2CALJAZ%2CFR24I%2CTVE24%2CARTV%2CM6%2CFR24F%2CCNBC%2CBLOOM%2CTVGAL%2CTVEI%2CCUBAV%2CTV5%2CBBC%20E%2CDW-TV%2CM%20NOV%2CM%20POR%2CM%20POP%2CM%20DIS%2CM%20FNK%2CM%20ALT%2CM%20BRA%2CM%20ROM%2CM%20J%26B%2CM%20CLS%2CM%20AMB%2CM%20INF%2CNGHD%2CLUXHD%2CEURHD%2CHUST%2CBLUE%2CJUKE%2CDEMO%2CPLAY%2CVENUS%2CSPORT%20TV1%2CWINE%2CCCLUB%2CSTYLE%2CAXNHD%2CSPTHD%2CPOKER%2CBVAHD%2CMAGZ%2CDVR%2CTRAIL%2CVKIDS%2CVMAGZ%2CVIDEO%2CJOGOS%2CCANAL%2CCMAGZ%2CFOXHD%2CFX%2CFLIFE%2CQ%2CRTP1HD%2CINTER%2B%2CKSIC%2CSPIHD%2CPORTO%2CTVI24%2CSportTV%2CFASH%2CSPTVG%2CTBRAV%2CCA%C7AV%2CSPGHD%2CTVC%2CSYFHD%2CSYFY%2CFTVHD%2CFLN%2CTPA%2C1RUSS%2CRUSST%2CPROTV%2CBNT%2CPHCNE%2CSETAS%2CMAX%2CSABTV%2CMEO3D%2CRTP%20H%2CSIC%20H%2CTVI%20H%2CSICNH&startDate=2010-12-13%2010:00:00&endDate=2010-12-13%2015:00:00
retorna um XML valido, mas a TVI24, SIFY,PORTO nem sequer aparecem
na lista. Se alterar as datas e horas, o mesmo resultado. Se reduzir
a lista de canais um pouco, começam a aparecer os canais em falta.
Ou seja, parece-me que este webservice está a atingir algum
limite no numero de canais pedidos. Dado que não existe nenhuma
indicação para qualquer limite, parece-me ser um bug .
dado que não preciso da lista total, acabei por reduzir a lista de canais e para a lista que uso, parece perfeito.
Obrigado
Comentar post