Bygg din egen ComHem Tivo fjärrkontroll

Har du också tröttnat på att försöka få en bra överblick med alla diverse TV-sajter och EPG? Om du har Com Hem finns det ett annat sätt.

Jag har länge undrat varför det ska vara så svårt att på ett enkelt sätt ersätta “TV zappande” med ett mycket enklare sätt att välja kanal utifrån vad det är för program som just nu går.

Personligen är anser jag inte att linjärt TV tittande är dött, lika lite som jag tror att radio eller text-tv är utdött. Möjligheten att snabbt och enkelt kunna konsumera TV idag är fortfarande lättare med linjär TV, tyvärr saknar boxtillverkarna och i viss mån TV distributörerna den rätta känslan som krävs för att göra TV upplevelsen bekväm.

Detta är faktiskt väldigt ovanligt att ett teknikskifte gör att tekniken går åt fel håll, jag anser nog detta till viss mån skett i TV branschen. Analog TV erbjöd snabb växling mellan kanaler, inga boxar som behövdes uppgraderas eller som kraschade, om jag ville spela in något på min video behövde jag inte bry mig om kopieringsskydd, inspelning på medium som jag själv inte har tillgång till (hårddisk). Digital-TV erbjöd bättre kvalité men i princip inga andra nya funktioner.

Med anledning av detta har jag bestämt mig för att börja experimentera lite med vilka förbättringar man kan göra för att få en bättre upplevelse.

Bygg din egen fjärrkontroll
Tivo har i ett antal år erbjudit ett Internet of Things protokoll som ett alternativ till den vanliga fjärrkontrollen. Detta har primärt varit ett sätt för hemautomation system att styra din Tivo på samma sätt som de kan styra en förstärkare eller en lampa.

(Det finns många andra API:er till Tivo men de går tyvärr inte använda då Com Hem har bestämt,  förmodligen tillsammans med rättighetsinnehavare att vi Svenskar inte ska ha tillgång till Tivos funktioner som alla andra länder har)

Interface för “TCP Remote Control” är telnet och du ansluter till din Tivo på port 31339 och du presenteras med vilken kanal som just nu är live och vilken metod som används för att byta till kanalen, i det här fallet har kanalen bytts med hjälp av TCP protokollet.

TivoTelnetStatus

Du kan utföra i princip samtliga funktioner som din vanliga remote klara av: gilla ett program med “tummen upp”, spela in ett program, byta till EPG’n osv. Jag kommer enbart använda oss av möjligheten att byta till en viss kanal då det är den funktionen som min app kommer ha.

Bygg en webbsida
Jag har valt att bygga en app som en webbsida, detta gör det möjligt att enkelt lägga till den till exempelvis iOS samt att jag kan använda mig av min fjärrkontroll på datorn.  Valet föll på jQuery mobile då jag använt jQuery tidigare och deras mobila ramverk fungerar både med desktop, mobiler och paddor.

Eftersom det är en multi-plattform valde jag att lägga logiken som server-side, dvs. webbsidan ligger på en webbserver som kör PHP (mitt favoritspråk) som i sin tur pratar med min Tivo samt med några andra komponenter (kommer till det senare).

För att kunna växla kanaler behöver jag känna till kopplingen mellan kanal och kanalplats då du inte kan byta till “TV4” utan behöver känna till att TV4 ligger på kanalplats 24 (HD) hos Com Hem. Detta ordnades med en databas som mappar kanal till kanalplats, för att underlätta bytet finns inga SD kanaler med om de finns HD alternativ då vi i Sverige inte har olika programtablåer på HD och SD (som jag känner till). Jag valde också att inte inkludera alla kanaler då jag inte tittar på alla, listan blev komprimerad till ett 50 tal kanaler.

Första versionen av webbsidan skapades och är mest en Proof Of Concept men låter dig byta kanal genom att klicka på kanalnamnet.

Redan här är detta en förbättring mot Com Hem / Tivo’s EPG som tar ett antal sekunder att ladda, ytterligare sekunder att hitta rätt kanal, sekunder för att lämna EPGn. Här kan jag byta från FOX HD till TV4 Guld på en sekund, snabbare än jag kan slå in TV4 Gulds kanalplats om jag nu skulle råka kunna den.

När detta fungerade bra var nästa funktion på gång. En egen EPG. Som jag skrev tidigare är det ju inte oftast kanalen du tittar på utan programmen och gör ditt val därefter.

Därför var det dags att bygga appen med jQuery mobile och introducera programtablå. Det finns inte så gott som svenska projekt som möjliggör nerladdning av programtablåer, dock finns det en som fungerar utmärkt. Jag modifierade min databas för att lägga till logga och information om var jag hämtar programtablåinformation för varje kanal. Skapade ett script som varje morgon hämtar hem dagens tablå för de kanaler jag valt att ha med i min app. Detta gör at jag istället för att fokusera på en kanal kan fokusera på programmet.

Detta visade sig vara en mycket bra funktion då jag redan vid mina tester upptäckte att det går program som jag annars skulle kunna missa, exempelvis fick jag nöjet att titta på ett avsnitt av MacGyver på TV4 Guld som jag inte sett på väldigt många år 🙂

Bygga 2.0
Nu när mitt PoC fungerar, dels genom att enkelt byta kanal, men även EPG data om vilket program som går var det dags att bygga appen som jag hade tänkt mig. Ytterligare ett par funktionen fanns på min lista:

  • Visa de två nästkommande programmen på kanalen. Om nästa program är bra mycket bättre än det nuvarande kan jag ändå byta kanal för att vänta på nästa program.
  • Om nästa program startar inom mindre än 10 minuter ska dessa program markeras, jag valde att göra det med grön färg för att jag lättare ska se vad som är “på gång” på en kanal
  • Man ska kunna få mer information om programmet som visas – och de nästkommande, detta gjorde jag genom att lägga till en “se mer” flik för varje program som blir åtkomlig genom att klicka på högerpilen högst ut i listan efter varje program.
  • Ett sökfält ska finnas för att snabbt kunna söka på program. Funktionen söker bara i vad som presenteras i listan och är inte ett “full sök”

Appen fungerar lika bra i en webbläsare, där man även kan se notisen om nästkommande program som börjar inom 10 minuter, då programmet börjar inom 60 sekunder ser det just nu lite förvirrande ut med 00:00, kommer dock korrigeras 🙂

Två ytterligare funktioner finns på kartan:

  • Möjligheten att spela in ett program. Tyvärr erbjuder inte fjärrkontrollen möjligheten att välja vilken kanal du vill spela in utan att faktiskt först byta till den kanalen och sedan välja att spela in. Den funktionen finns i API, men som inte är möjligt att få access till som jag skrev om tidigare. Tanken är dock att “emulera” fjärrkontrollen genom att byta till programmet, trycka på inspelning och sedan byta tillbaka till föregående program.
  • Möjligheten att “gilla” ett program. Detta kommer ha en central plats för egna rekommendationer.

Nästa steg
Tanken är att fokusera på “overlay graphics”, dvs att bygga en motor som möjliggör att lägga över grafik på live-tv (eller vilken HDMI källa som helst) som kopplas till min rekommendationsmotor och lite andra saker.

Inget av detta finns ännu på plats men tanken är att göra detta i min streamingspelare först. Detta var faktiskt huvudanledningen till att jag funderade på att bygga en fjärrkontroll, det som idag går ut på HDMI på min Tivo lägger också via en HDMI splitter över på en encoder som i slutändan genererar HLS som jag kan spela upp i min iPhone vilket gör att jag kan titta på vilken kanal jag vill, var jag vill detta.  Att lägga overlay på en stream är enklare än att lägga in overlay på en hdcp skyddas HDMI ström 🙂

 

 

 

Direktorn Comments

comments

Pin It

Comments are closed.