twenty-first century code monkey

Forfatter: Tommy (Side 19 af 30)

24 days of XBMC: sådan forbereder jeg en ny addon

I dag vil jeg fortælle lidt om de ting jeg undersøger og forbereder inden jeg går igang med en ny addon. Det er faktisk oftest på forberedelser jeg bruger mest tid, det egentlig arbejde med at programmere en addon har jeg efterhånden sat på samlebånd 🙂

Det første jeg altid finder ud af er hvordan jeg får XBMC til at afspille en videofil fra den webside jeg vil lave en addon til. Nogle gange er det så simpelt som at bruge Vis kilde og/eller Firebug i Firefox til at finde linket i HTML koden og så ellers blot lave et regulært udtryk til at finde URL’en. Det kan også være man er heldig at finde en playliste med URL’en, mens andre gange har det være nødvendigt at decompile en flash afspiller for at finde frem til informationerne. Hvis der har været tale om RTMP URL’er, fremfor HTTP, så har jeg gjort flittigt brug af min foretrukne netværkssniffer Wireshark og RTMPDump/RTMPSuck til at teste med.

Efterhånden som man får gravet sig gennem websiden lykkedes det som regel af finde strukturen bag og kan herefter opbygge nogle regler for hvordan man finder frem til video URL’en. Når afspilningen er på plads er det sådan set bare at lave nogle regulære udtryk der kan trække de tilgængelige informationer ud fra HTML, så som titel, beskrivelse, mv. om de individuelle videoklip. Også her kan man være heldig at finde fx et XML eller JSON feed der indeholder oplysningerne – det er nemlig meget simplere at læse informationer herfra end fra HTML.

Der er også en hel anden tilgang til måden at finde informationerne på fremfor at trække dem ud af HTML’en, nemlig at få adgang til et API. Et API definerer klart hvordan man får informationer om titel, beskrivelse, mv. og vigtigst af alt en simpel måde hvorpå videoen kan afspilles. Desværre er det sjældent der er et API til rådighed, men fx DR NU har et ganske fint API jeg bruger til DR NU Playeren.

Når alle de nødvendige informationer er kortlagt er der kun tilbage at programmere addon’en. Her har jeg lært på den hårde måde at ordsproget less is more holder hele vejen. Det er efter min mening bedre at have lidt duplikeret kode mellem dine addons fremfor at lave et bibliotek med hjælpekode. Selvom det måske er modsat hvad man ellers siger om god kodestil, så er det mere praktisk at have alt samlet i den enkelte addon. Det skal også sige at mange addons er under 100 linjers python kode, så der er heller ikke meget at genbruge alligevel.

Sidder du nu og tænker det der det gad jeg sku’ godt at prøve, så synes jeg bare du skal kaste dig ud i det! Husk dog på; en ting er helt sikkert: men skal have kendskab til en hel række web teknologier og have mod på at grave sig igennem måske flere megabytes af HTML, JavaScript, XML og måske flash. Det lyder måske umiddelbart langhåret, men for mig er det en udfordring – en udfordring som er umådeligt tilfredsstillende at vinde over 🙂

24 days of XBMC: Gamereactor TV

Så er der kun en håndfulde dage tilbage inden jul og i dag er vi nået til den tredje nye addon, den sidst i denne omgang. Tidligere er det blevet til addons for de musikinteresserede og investeringsinteresserede – og i dag er der så nyt til de gaming-interesserede i form af Gamereactor TV.

Gamereactor er Nordens største gaming site, som bringer nyheder og anmeldelser af de nyeste spil og andre spændende ting – alt sammen i 720p HD.

Hent Gamereactor TV 1.0.0 eller installer den direkte fra XBMC.

24 days of XBMC: web interface

Vi tager hul på den sidste uge med et kig på XBMC’s web interface. Web interfacet giver os mulighed for at styre XBMC via en browser, og afhængig af hvilket interface der er aktiveret, også mulighed for at redigere indholdet af XBMC’s biblioteket.

Første skridt er at kontrollere at Tillad kontrol af XBMC via HTTP er aktiveret under netværksindstillingerne. Her kan du også vælge om web interfacet skal være beskyttet med brugernavn og adgangskode samt hvilket Web interface som er aktivt.

Når indstillingerne er på plads kan du tilgå webinterface på XBMC’s ip adresse på port 8080. Hvis du kører XBMC på samme PC, kan du i en browser tilgå web interfacet på http://localhost:8080/

I det web interface der følger med XBMC har du mulighed for at navigere rundt i XBMC ved hjælp at Remoten på billedet til højre. Dvs. når du klikker på remoten svarer det til et tastetryk på en rigtig fjernbetjening.

Derudover kan du browse rundt i det indbyggede bibliotek i XBMC og se alle dine film, serier og musik. Klikker du på en film bliver du præsenteret for de sædvanlige informationer, så som skuespillere, plot, mv. samt mulighed for at afspille filmen i XBMC. Tilsvarende er gældende for serier og musik.

XBMC’s standard web interface er ret grundlæggende i funktionalitet og giver ikke de store ekstra muligheder, men det er omvendt også let at bruge.

Det er muligt at installere flere web interfaces som addons i XBMC – pt. er der desværre ikke andre tilgængelige for XBMC Eden. Jeg har dog testet et par stykker på XBMC Dharma, bl.a. XWMM som omdanner web interface til en avanceret editor af det indbyggede bibliotek og så vidt jeg kan læse mig til kommer det snart til Eden også.

Ud over at gøre det muligt at styre XBMC via en web browser, så giver Tillad kontrol af XBMC via HTTP indstillingen også mulighed for at styre XBMC via Android Remoten, som jeg har skrevet om tidligere.

24 days of XBMC: mit workflow til blu-ray encoding

Så er det blevet 4. søndag i advent og igen vil jeg fortælle lidt om mit workflow til encoding, denne gang til blu-ray. Du kan også læse om mit workflow til dvd encoding fra tidligere på måneden.

Som med mine dvd’er har jeg valgt at encode til Matroska (.mkv) og x264. Lydsporet konverterer jeg typisk til DTS, selvom der ofte er DTS-MA, TrueHD eller andre lydspor på blu-ray (og hd-dvd), så kan XBMC på nuværende tidspunkt ikke rigtig afspille disse. Så jeg har desværre en fin TODO på at jeg skal igennem alle mine blu-rays og hd-dvd’er igen engang når XBMC kan klare de formater.

På software siden har vi to gengangere og to nye programmer. Som med dvd’erne bruger jeg AnyDVD HD til at håndtere copy protection og HandBrake til at encode videoen – og derudover bruger jeg ClownBD og MKVToolNix.

ClownBD håndterer alt omkring at læse blu-ray skiven, udvælge hvilke videospor, lydspor, undertekster, mv. og kopiere disse til harddisken. Programmet har flere muligheder for bl.a. at skrive det hele til en M2TS fil og at transcode lydsporet til fx DTS i mit tilfælde. Jeg bruger pakken Clown_BD, eac3to, tsMuxer Package fra clownbd.com.

MKVToolNix bruges til at manipulere Matroska (.mkv) filer – og i mit tilfælde et det for at håndtere en begrænsning i HandBrake. HandBrake kan nemlig ikke håndtere blu-ray undertekser i PGS format, så jeg bruger MKVMerge til at tilføje underteksterne som det sidste trin i mit workflow. Så vidt jeg kan læse mig til så arbejder folkene bag HandBrake på at understøtte PGS, men jeg tror der går noget tid inden det er på plads.

Hvilke programmer bruger i til at konveretere blu-rays med?

24 days of XBMC: XBMC Subtitles

I dag skal vi se på endnu en smart ting som findes i de fleste nyere skins, nemlig integration til XBMC Subtitles.

XBMC Subtitles er en addon som kan finde undertekster til den film eller tv serie du er ved at se ud fra videofilens navn. Flere skins har det integreret direkte i OSD menuen så det altid er ved hånden.

Ingen jul uden Die Hard!

Inden addon’en kan bruges skal den installeres og skinnet skal opsættes til at bruge addon’en. Installation af addons behøver vi vel ikke gennemgå… 🙂

Naviger til indstillinger og skinnets indstillinger. I Confluence finder du Subtitle Add-on under menupunktet Tilføjelse/Genveje. Klik på Subtitle Add-on og vælg XBMC Subtitles.

Næste trin er at afspille den video du vil hente undertekster til. Jeg bruger det ofte til at hente engelske tekster, når jeg har en dvd film hvor der kun er danske tekster på.

Når videoen afspilles skal du åbne menuen og klikke på XBMC Subtitles ikonet, som vist på det øverste billede med John McClane.

I addon’ens hovedvindue får du vist alle de undertekster den har fundet ud fra den opsætning du har valgt, så som sprog og hvilket website den skal hente underteksterne fra. Herefter er det bare at vælge en undertekst fil, så hentes den automatisk ned, aktiveres og videofilen begynder at afspille igen.

I hovedvinduet kan du med et tryk til højre få en menu frem, hvor du kan vælge mellem de forskellige undertekst-hjemmesider, så du hurtigt kan søge på flere sider. Det er også muligt at åbne addon’ens indstillinger her.

Min erfaring siger mig at det kan være lidt svært at finde en undertekst fil der passer til den videofil man ser, da der kan være forskel på fx antal billeder i sekundet og en række andre ting. Et godt tip er at gå efter dem der står SYNC ud for (der er ikke noget på billedet). De undertekster passer i hastighed til videofilen, men der kan dog stadig være problemer med forskydelse mellem tekst og lyd. Det kan dog for det meste løses ved at bruge XBMC’s OSD menu til at forskyde underteksterne i forhold til videoen.

En anden ting man skal have in mente er kvaliteten af underteksterne. Jeg har flere gange oplevet af det ikke er officielle undertekster og altså en tilfældig internet bruger der har skrevet dem, inkl. hvad der måtte være af stavefejl og lignende. Jeg har også oplevet danske undertekster som mere eller mindre var maskinoversættelser af engleske tekster.

Så selv om XBMC Subtitles er rigtig smart, så er der ikke noget der slår de rigtige DVD eller Blu-ray undertekster 🙂

24 days of XBMC: problemet med DRM

– eller: hvorfor er der ikke en addon til TV2 Sputnik, ViaPlay og lignende?

Den begrænsning jeg oftest støder på, når jeg undersøger muligheden for at lave en ny addon, er at XBMC ikke kan afspille videoklip fra websiden. Det kan der være flere grunde til, men for det meste skyldes det at video indholdet er beskyttet af DRM. Det er ikke så meget en begrænsning i XBMC, som det er en begrænsning for alt andet end proprietære videoafspillere, fordi DRM teknologien oftest er beskyttet af patenter.

Billede fra http://torrentfreak.com/anti-drm-t-shirt-designs-vote-now/

For at finde en løsning skal vi sådan set havde indholdsleverandøren i tale, dvs. i dette tilfælde TV2 Sputnik og ViaPlay. Det er dem som, rent teknisk, kan levere videoindholdet på en anden måde, så XBMC kan afspille det – men her støder vi på to andre problemstillinger:

  1. De er formentlig pålagt, fra deres leverandører, at de kun må stille videoindholdet tilrådighed med DRM beskyttelse.
  2. Det grundlæggende problem at det videoindhold XBMC kan afspille, ja det kan også downloades, gemmes og deles. Ikke så heldigt med en lejet film.

Hvis begge dele var muligt at se igennem fingre med ville det være muligt at lave addons til disse websider – men som verden ser ud i dag er det utopi.

Hvad så med Sputnik som virker på Boxee siger du?

Det er et validt spørgsmål eftersom Boxee er baseret på XBMC – og nøgleordet her er baseret. Boxee har tilføjet og ændret en hel del i forhold til XBMC, bl.a. muligheden for at bruge browser plugins til at afspille videoindhold og på den måde kan de afspille Flash og Silverlight indhold. I tilfældet med Sputnik er det netop Silverlight som står for afspilningen og ikke Boxee, i hvert fald som jeg har forstået det.

Jamen, hvad så med Flash i XBMC?

Til forskel fra Boxee er XBMC 100% open-source og Flash er 100% proprietær. Selvom man aldrig skal sige aldrig, så tror jeg næppe det kommer til at ske. Man kan selvfølgelig krydse fingre for der sker noget på dette punkt når det bliver muligt med native addons i XBMC engang efter Eden er udgivet…

Jamen…

Har du andre spørgsmål, kommentarer eller meninger om dette emne, så hold dig endelig ikke tilbage nedenfor!

24 days of XBMC: OpenELEC

OpenELEC er endnu en udspringer af XBMC og kan på mange måder sidestilles med XBMC Live som jeg kiggede på tidligere. OpenELEC er kort for Open Embedded Linux Entertainment Center og er en ultra kompakt Linux distribution med det formål at starte XBMC op så hurtigt som muligt og give en komplet appliance følelse.

Til forskel fra XBMC Live skal man lave en USB nøgle som bruges til at installere systemet – og den process gav mig en hel del problemer. Som med XBMC Live havde jeg planer om at teste med VirtualBox, men efter meget bøvl og besvær gik det op for mig at det ikke var den vej jeg skulle gå. Det er bl.a. fordi OpenELEC er en færdigbygget distribution, hvor det er lidt mere besværligt at tilføje ekstra drivere og lign. end med fx Ubuntu og XBMC Live.

Som tidligere nævnt har jeg ikke en ekstra PC til rådighed, så jeg har forsøgt at hakke OpenELEC sammen til at køre fra en USB og efter lidt mere besvær er det lykkedes mig at få den til at boote på min bærbare PC – og jeg må sige den booter væsentligt hurtigere end Ubuntu på mit mediecenter.

Når først OpenELEC kører er det mere eller mindre XBMC som vi kender det, pt. version 10.1. Desværre virkede mit trådløse internet ikke i OpenELEC, så jeg har ikke haft mulighed for at teste de ekstra addons som de stiller til rådighed gennem deres eget repository.

Jeg synes der er meget potentiale i OpenELEC, men jeg synes den første pukkel med at komme igang er for stor pt. Det er muligt det er lettere hvis man starter med en hel tom PC, men det ville nu have været lettere for mig med en Live CD. Jeg leger stadig med tanken om at bruge OpenELEC på mit mediecenter, men jeg er dog lidt i vildrede om min erfaring fra denne test taler for eller imod skiftet. Det er dels fordi det er lækkert den booter så hurtigt, dels fordi system er så kompakt at det ikke er trivielt at tilføje nye ting som drivere og lign.

Er der andre af jer der har prøvet OpenELEC – og hvad er jeres erfaring?

24 days of XBMC: min historie

Min historie med XBMC startede, et måske lidt pudsigt sted, med en Xbox 1 og spillet James Bond 007: Agent under Fire i sommeren 2003. De to ting kombineret med den rigtige save game fil åbnede nemlig for en verden af muligheder, heriblandt Xbox Media Player (XBMP) og mange andre ting.  Der gik ikke længe før Xbox’en blev mit foretrukne legetøj.

Xbox Media Player er forgængeren til Xbox Media Center som igen har udviklet sig til det vi i dag kender som XBMC. Jeg kan ikke huske præcist hvornår skiftet mellem Xbox Media Player og Xbox Media Center skete, men jeg kan huske der skete et stort skift i potentiale.

Læs mere

24 days of XBMC: Gaffa TV

I dag er der en spritny addon på programmet med indhold fra gaffa.tv. Gaffa TV er gaffa.dk’s TV sektion som indeholder interviews, backstage, live, musikvideoer og mange andre ting.

Hent Gaffa TV addon’en eller installer den fra XBMC.

« Ældre indlæg Nyere indlæg »

© 2025 Tommy Winther

Tema af Anders NorenOp ↑