XBMC Gotham, UPnP e Smart TV

Olá a todos,

Um amigo e leitor deste blog pediu-me ajuda relacionada com o XBMC após comprar uma Smart Tv da Samsung. Basicamente, ele pretendia reproduzir o conteúdo multimédia do XBMC (instalado no seu MacBook) na sua nova Smart TV sem dispor de nenhum outro dispositivo externo conectado à TV e obviamente sem conectar o computador à televisão com um cabo HDMI.

Seria tudo muito fácil se ele ligasse o computador à TV por HDMI mas...parece que aparentemente existem alguns problemas com o output de áudio por HDMI no OSX dos MacBooks. Confirmam? Sabem de alguma solução? Tenho de confiar na palavra do meu amigo, uma vez que não tenho nenhum Mac.

Posta de parte essa possibilidade, lembrei-me do All-Share da Samsung, um serviço compatível com grande parte dos modelos mais recentes da Samsung e que permite partilhar fotos, vídeos e música entre dispositivos compatíveis na rede doméstica. O All-Share não é mais do que o nome que a Samsung atribui ao padrão industrial DLNA (Domestic Living Network Alliance), sendo este um padrão que derivou do UPnP (Universal Plug and Play) tornando-o mais restritivo ao nível dos formatos multimédia compatíveis e incluindo protecções DRM e protecções anti-cópia. 

Gostava de saber por que motivo este tipo de empresas insiste em criar novos nomes para serviços que são na realidade padrões industriais (industry standards) como se de um novo serviço se tratasse. Outro exemplo é o HDMI-CEC (industry standard para o protocolo que permite controlar dispositivos por HDMI - exemplo: o procolo que vos permite utilizar o comando da tv para controlar o XBMC na Raspberry PI) cujo nome na Samsung é Anynet (ou Anynet+). Trata-se certamente de uma jogada de marketing mas, com tantas denominações para serviços que deveriam ser padronizados, apenas confundem o público alvo.

O XBMC 12.0 (Frodo) suporta partilha a partilha das bibliotecas (Video, Áudio, Fotos)  e permite ser controlado por UPnP. Caso tenham criado pastas para a vossa "media" no XBMC (por exemplo Vídeos -> Ficheiros -> Adicionar Vídeos), tenham ambos os serviços activos em:

Sistema --> Definições --> Serviços --> UPnP

e a vossa TV estiver ligada à rede doméstica, deverão conseguir aceder à vossa biblioteca do XBMC na televisão. Para acederem (Samsung TV!) carreguem no telecomando em "CONTENT" e naveguem até "Meus Conteúdos".





O XBMC cria um "UPnP server" que pode ser acedido na vossa televisão (UPnP client). Esta é uma boa forma de acederem à vossa colecção multimédia se não tiverem nenhum dispositivo com XBMC para conectarem à TV e tiverem uma TV relativamente recente (procurem pelo nome do padrão DLNA para a Marca da vossa TV).

Parece que afinal....não era bem isto que o meu amigo pretendia. Ele procurava uma forma de enviar conteúdo obtido por stream para a sua TV: por exemplo, utilizando os addons. Não pretendia uma biblioteca estática mas uma opção do tipo "AirPlay" disponível para qualquer conteúdo multimédia que seria "enviado" pelos menus do XBMC.

Fiz uma pequena pesquisa pelo fórum do XBMC e descobri que esta será uma das novas opções disponíveis no XBMC 13.0 Gotham. Na verdade, é uma opção que já se encontra disponível nas nightly builds do XBMC (versão de desenvolvimento MAIS INSTÁVEL e actualizada muito regularmente). Para instruções de instalação desta versão extremamente instável do XBMC vejam este link.

No menu das definições dos serviços UPnP do XBMC Gotham existe uma nova função "Procurar reprodutores UPnP remotos". Esta função permite que qualquer ficheiro multimédia seja enviado do XBMC para um dispositivo UPnP.



Qualquer ficheiro multimédia terá por defeito uma opção "Reproduzir com" no seu menu de contexto. Nos addons, caso o developper não tenha retirado as opções padrão do menu de contexto dos ficheiros multimédia do XBMC esta também estará disponível. 



E na TV o vídeo é reproduzido:


O Player é controlado no XBMC....



Relativamente aos Addons, foi difícil encontrar um que tivesse o menu de contexto padrão. No WT a opção não está disponível (trabalha fightnight), na TV Portuguesa não consegui reproduzir nenhum dos vídeos (devido ao protocolo rtmp?) e na RTP Play a TV não conseguiu reproduzir o tipo de ficheiro. Não sei se será uma questão relativa à DLNA ou se será devido à antiguidade da minha TV (LED TV não Smart TV), cuja última firmware disponível é de 2011. Abaixo o resultado obtido com uma emissão com a RTP Play:



Não consegui reproduzir nenhum ficheiro localizado fora da minha rede doméstica (inclusive o ficheiro de vídeo que reproduzi inicialmente se colocado no meu servidor). Mas...a minha TV não é SMART e não tem aplicações para reproduzir conteúdo alojado na Internet. Gostava que tentassem com as vossas SmartTV's e que colocassem os resultados obtidos nos comentários!

Caso não funcione, é caso para dizer que fiz uma boa escolha ao não optar por comprar uma SMART TV quando tive possibilidade (poupei entre 100 a 150 euros optando por este modelo idêntico sem funções "smart") e que, aquilo que a torna SMART é o XBMC num HTPC próprio (que com a chegada da Raspberry PI se tornou acessível a todos). Uma "Smart-TV low-cost" mais "Smart" que as Smarts!

Até breve,

Miguel


2 Comments:

Promocodes InMotion - 10% de Desconto

Olá a todos!

A InMotion resolveu mais uma presentar os leitores do A Minha Casa Digital com mais 25 vouchers de 10% de desconto para compras superiores a 45 Euros e com oferta dos portes de envio!

É uma deixazinha que permite que compres o Raspberry Pi, Arduino, etc... com um pequeno desconto!

Todos os códigos são válidos até final de Agosto.

Peço-vos que há medida que forem utilizando os promocodes indiquem p.f. nos comentários o promocode utilizado.

Agora não derretam o subsídio de férias todo p.f! :)

T9DMW65C
Q5ZXACRF
KPARQ6VU
TGTS559B
V2R7YHDK
A685T4D2
9JHZNX5E
FYHTF2KG
EMBQ8DCY
3BPZXKHM
YM4MEWKR
YUALYB5Z
4ZWE8S8L
88CYJ7DB
FFXDV68C
PTWY33PT
YLAYLZ9C
LMLYFT9D
BH8RQTTK
Q465JYGE
GKRQYPGR
TXHSMAQE
V3GHPCYZ
YNPQR22G
VFE3G79T

8 Comments:

Forum de novo online

Olá a todos!


O nosso forum está de novo online e funcional, com todos os dados previamente colocados.

Aguardo o vosso feedback, caso existam problemas.

Obrigado.

3 Comments:

Forum todo apagado :(

Olá a todos,

O nosso forum sofreu de um ataque... Apagaram todo o conteúdo.

Como só agora cheguei a casa, vou ainda ver o que posso fazer...

:(

1 Comments:

Integração Browser-XBMC

Olá a todos,

Quantas vezes não vos aconteceu encontrarem um determinado vídeo no youtube (enquanto navegam na internet através do vosso portátil) cuja duração é tão longa que seria muito mais apetecível assistirem ao vídeo na vossa tv? Ou quantas vezes não ficaram já frustrados por demorarem tanto tempo a encontrar um determinado vídeo através dos menus do XBMC? Seria óptimo se conseguíssemos enviar esse vídeo para o nosso XBMC, instalado numa Apple TV2 ou numa Raspberry Pi por exemplo, através do nosso portátil... um pouco ao estilo AirPlay.

Talvez muitos de vós não conheçam, mas o XBMC por ser open-source, tem disponíveis diversas ferramentas que permitem integrá-lo com outros serviços.
Os plugins para os browsers mais utilizados (Firefox e Chrome) são um bom exemplo disso mesmo.

Para o Google Chrome:
https://chrome.google.com/webstore/detail/play-to-xbmc/fncjhcjfnnooidlkijollckpakkebden

Para o Firefox:
https://addons.mozilla.org/pt-PT/firefox/addon/send-to-xbmc/

No caso do Chrome, o plugin ficará disponível junto à barra de endereços (o icon da televisão no topo direito):


Este plugin, "Play To XBMC", permite também que controlem o vosso media center como se de um comando se tratasse. Como fazem através do vosso smartphone, ou através da web interface.

No caso do Firefox, este ficará incorporado na página do youtube:


Não se esqueçam de configurar cada um dos plugins com os dados da plataforma onde têm instalado o XBMC: o IP de rede, a porta e user/password (se estiver definido).
Logicamente, para que ambos os plugins funcionem, é necessário que a Web Interface esteja activa na plataforma XBMC (em Sistema, Serviços).

Infelizmente, estes plugins apenas funcionam com alguns vídeos como por exemplo: youtube, dailymotion, vimeo, etc. Não consegui encontrar uma solução semelhante para outros sites com vídeos incorporados..
A minha ideia era encontrar um plugin (semelhante aos que existem para download de vídeos) que enviasse o endereço final para o XBMC, independentemente do site em que nos encontramos.
Se conhecerem alternativas, coloquem nos comentários!

Espero que a dica seja útil.
Continuação de um bom fim de semana,

Miguel

4 Comments:

Projecto PrivateEyePi - Sistema de alarme com Raspberry PI

No site oficial da Raspberry PI Foundation dá-se a conhecer o recente projecto PrivateEyePi, um sistema open-source, configurável e programável de alarme. O autor do projecto, apresenta de forma detalhada todas as partes necessárias, os esquemas de ligação e o código necessário. 

Podem ser utilizados sensores de movimento ou interruptores anexados às portas da habitação (ou ambos). Estão também disponíveis instruções para adicionar o famoso módulo de câmara da Raspberry PI Foundation ao sistema.

Outro ponto importante é o facto de também ser possível implementar um sensor de temperatura (idêntico ao que já foi aqui apresentado com Arduino) de forma a monitorizar a temperatura de casa enquanto estamos fora.

Todos estes dados podem ser acedidos através do computador ou do smartphone.

A solução de alarme para todos, tecnologia caseira e de baixo custo, com instruções tão detalhadas que qualquer inciante ou utilizador com conhecimento mínimo de electrónica pode construir.


Não deixem de visitar o site oficial do projecto: Aqui.




4 Comments:

Boxee comprada pela Samsung

Olá a todos!

É uma noticia que não me surpreende, a Boxee vai integrar a equipa Samsung.

Durante bastante tempo usei o Boxee como mediacenter, tinha tudo de bom, pois era um XBMC customizado, com uma vertente social interessante, mas depois deixaram de desenvolver conteúdos multi-plataforma  para integrarem produtos próprios. Admito que gostava tanto do produto, que estive para comprar uma Boxee Boxe by D-Link.

Sinceramente espero que uma vez que o projecto inicial não foi avante da forma que eu gostaria, que pelo menos desenvolvam uma TV Samsung capaz de fazer coisas inacreditáveis! Fico a aguardar!


0 Comments:

Lycamobile - Acaba com um tarifário de sucesso

Olá a todos!

Entramos no mês de Julho e o esperado acontece, a Lycamobile termina com o fantástico tarifário que fez com que muita gente mudasse de operador, ou acrescentasse um serviço adicional, tudo isto em poucos meses de existência.

O pior de tudo é que terminaram na minha opinião com o grande ponto a favor da Lycamobile, a Internet Ilimitada em tempo e com 5GB de tráfego, apesar do restante tarifário ser muito interessante, 8 Cent. para todas as redes em Portugal, chamadas gratuitas entre Lycamobiles e 3000 SMS para todas as redes sem custos adicionais.

Curiosamente passam para um tarifário que é completamente o contrário do inicialmente proposto, a Internet passou a 9 cêntimos por MB, o que para os 5 GB anteriormente fornecidos dá uns assustadores 460 Euros!! :), ou seja 1GB custam 92 Euros! :)
Acho que nem vale a pena abordar o resto, pois o meu e maior interesse de todos fica por aqui, quando o meu estourar o plafond, é para retirar e colocar de novo o Vodafone!

Fica a imagem com os custos atuais do tarifário.


2 Comments:

XBMC - O teu primeiro addon - 5 - Função de pesquisa


Olá a todos! Espero que estes tutoriais vos estejam a motivar o suficiente para começarem a desenvolver o vosso primeiro addon.

O último post desta sequência de tutoriais de desenvolvimento terminou com um novo desafio/nova temática a abordar: As funções de pesquisa.



Definir e implantar uma função de pesquisa

Apesar de "à primeira vista" esta parecer uma das funcionalidades mais difíceis de concretizar, na maioria dos casos, esta é na realidade uma das funções mais fáceis de construir. Não esquecer que nesta fase do tutorial, temos já a função listar_vídeos definida, a qual recebe como argumento um determinado endereço url onde se encontram listados os vídeos.
Devemos em primeiro lugar, adicionar uma nova entrada ao menu inicial (CATEGORIES()) que "aponte" o XBMC para um novo modo que ainda não esteja definido. Uma vez nesse modo, o XBMC chamará a função de pesquisa.
Apesar de no tutorial 2 ter suprimido o modo 2 (e este estar livre de momento), definiremos a função de pesquisa no modo 3 para não complicar!
A função CATEGORIES() ficará então definida desta forma:


   
def CATEGORIES():
 addDir('VIDEOS','http://www.maisfutebol.iol.pt/videos',1,addonfolder + artfolder + 'tv.png')
 addDir('PESQUISAR','http://www.maisfutebol.iol.pt/videos',3,addonfolder + artfolder + 'tv.png')

Por outro lado, na parte final do addon.py (em modos), definam o modo 3 a chamar uma determinada função (neste caso pesquisa()).



 
elif mode==3:
        print ""
        pesquisa()

Importa, neste momento perceber o que acontece quando fazemos uma pesquisa no site. No vosso browser, abram o site de vídeos do maisfutebol e pesquisem por uma palavra totalmente aleatória. A título de exemplo, procurei por Cardozo :)

A pesquisar:

Resultados:

Atentem no endereço que ficou definido após a pesquisa: http://www.maisfutebol.iol.pt/videos.html?q=Cardozo

Experimentem alterar essa variável passada através do endereço por outra palavra à vossa escolha:



E agora atentem no nome do primeiro vídeo e olhem para o código fonte.


Estas entradas parecem-vos familiares? É isso mesmo...são idênticas à da função listar_videos(url). É fácil perceber como vamos fazer isto...

Definimos uma função pesquisa() que nos permita escrever um parâmetro de pesquisa no teclado do XBMC e que com esse valor defina um novo url ('http://www.maisfutebol.iol.pt/videos?q=' + parametro_de_pesquisa). Uma vez definido esse novo url, chamamos a função listar vídeos com esse url!

Para facilitar a vossa compreensão desta função, comentei todas as linhas de código (tudo o que começar por # não é executado pelo python e assume apenas valor informativo). A parte que importa, é a que está definida a partir de url = (...); deverá ser esta a parte que deverão alterar para um novo addon. 
É importante também referir que forçamos a variável parameto_pesquisa a ser adicionada ao endereço sob a forma de string. Isto acontece porque em python, apenas é possível somar variáveis do mesmo tipo.
Por exemplo, se não forçassem essa variável a ser uma string e pesquisassem por "1", a variável parametro_pesquisa seria uma variável do tipo int (numero inteiro). Ao somar "http://www.maisfutebol.iol.pt/videos.html?q=" (uma string) a parametro_pesquisa (um inteiro) teríamos um erro de script. Como tal, convém sempre forçar a variável a ser transformada em string, mesmo que ela à partida seja já uma string.


 
def pesquisa():
 keyb = xbmc.Keyboard('', 'Escreva o parâmetro de pesquisa') #Chama o keyboard do XBMC com a frase indicada
 keyb.doModal() #Espera ate que seja confirmada uma determinada string
        if (keyb.isConfirmed()): #Se a entrada estiver confirmada (isto e, se carregar no OK)
                search = keyb.getText() #Variavel search fica definida com o conteudo do formulario
                parametro_pesquisa=urllib.quote(search) #parametro_pesquisa faz o quote da expressao search, isto é, escapa os parametros necessarios para ser incorporado num endereço url
  url = 'http://www.maisfutebol.iol.pt/videos.html?q=' + str(parametro_pesquisa) #nova definicao de url. str força o parametro de pesquisa a ser uma string
  listar_videos(url) #chama a função listar_videos com o url definido em cima

Se tudo correr bem, no XBMC deveremos conseguir fazer pesquisas.





Infelizmente, não conseguimos obter os resultados que pretendíamos. Isso acontece porque a regular expression da função listar_videos(url) é ligeiramente diferente daquela que necessitaríamos neste caso. Olhem para a imagem abaixo e facilmente reparam que no segundo caso não existe texto no parametro alt="".




Na realidade, quando trabalhando com regular expressions deveremos sempre simplificá-las ao máximo para garantir a compatibilidade com qualquer tipo de resultado. A experiência diz que, quanto mais complexo seja o código...maior é a probabilidade deste falhar. Devemos SEMPRE simplificar aquilo que pode ser simplificado.

Na função listar_videos(url) alterem a linha da regular expression:


 
 match=re.compile('<li><a class="" href="(.+?)"><span class="player"></span><img src="(.+?)"\n                                alt=".+?" />(.+?)<br /><em>(.+?)</em></a></li>').findall(codigo_fonte)

para:


 
 match=re.compile('<li><a class="" href="(.+?)"><span class="player"></span><img src="(.+?)"\n.+?alt=.+?/>(.+?)<br /><em>(.+?)</em></a></li>').findall(codigo_fonte)

E agora sim...




...a função passou a ser compatível com os resultados de pesquisa e também com o menu "VIDEOS" que já estava definido nos tutoriais anteriores:


Como de costume, podem fazer o download do addon.py actualizado (como referência) AQUI.

No próximo tutorial, vamos falar acerca das traduções.

Até breve,

Miguel Borges de Freitas



1 Comments: