nrk.no

Hva skjer så med NRKs API?

Kategori: NRK


Vi som jobber med å utvikle nrk.no jobber hardt med å både forbedre tjenestene der samt å drifte og fylle selve nrk.no med innhold. Som et ledd i disse planene, begynte vi høsten 2008 et prosjekt for å kunne gi utvidet tilgang til NRKs innhold. Ved å tilby et API. En verktøykasse med funksjoner som gjør at andre kan lage nye tjenester basert på video, lyd, tekst og informasjon fra NRK.


Foto: Eirik Solheim / NRKbeta – Creative Commons.

I forbindelse med prosjektet avdekket vi en del grunntjenester som rett og slett ikke var bra nok. Vi ønsket derfor å etablere en ny arkitektur som skal gjøre det enklere for oss å kunne publisere nye grensesnitt mot vårt innhold i fremtiden. Det å gi eksterne tilgang til alt innholdet vårt er ikke bare enkelt.

Det er mange hindre på veien, alt fra det juridiske og rettighetsmessige til formatvalg. Og det nevnte kvalitetsmessige ved selve løsningen. I tillegg til denne kabalen er alltid tilgang på våre ressurser en joker. Vi må gjøre harde prioriteringer daglig blant alle de gode ideene og de strålende funksjonalitetsønskene. Vi er over 30 dyktige og entusiastiske utviklere som jobber direkte med nrk.no i tillegg til flere flinke redaksjonelle utviklere.

API’et

Det som står på planene i første rekke er:
– Tilgang til programinformasjon
– Tilgang til hele artikkel-universet fra nrk.no (inkl bilder, video og lyd)
– Tilgang til DMA (NRKs store musikkatalog, kanskje også via streaming)
– Tilgang til en del nett-TV-funksjonalitet

Det kommer sikkert mer etter hvert, men dette er det vi i første rekke har på blokka. Innspillene i artikkelen til Henrik vil vi også se på underveis. Men som med alt annet må vi også jobbe oss igjennom vilkårene for bruk, krav til registrering og en del annen juridisk mat.

Jeg tipper noen av tjenestene vil se dagens lys før sommeren. Flere av APIene legges ut fortløpende.

Kom gjerne med innspill og kommentarer. Hva dere ønsker er i stor grad med på å påvirke hva vi legger ut av API og tjenester. Vi imøtekommer ønsker og utfordringer. Kan dere for eksempel komme med deres topp tre-lister over APIer fra NRK? Helst med begrunnelse?

(Artikkelforfatter Andreas Munkelien er sjef for teknisk utvikling i NRKs utviklingsavdeling)

57 kommentarer

  1. Geir Arne Brevik

    1) Programoversikt – fordi det hadde vært grådig kjekt
    2) Spillelister med musikk fra radioprogrammer – for å lage tøffe radio-apps (det blir jo rapportert til TONO uansett)
    3) Maktbasen til Brennpunkt (av åpenbare grunner)

    Svar på denne kommentaren

  2. For min del er Nett-TV absolutt #1 – det er jo der dere sitter på enormt mye unikt innhold som man kan gjøre mye spennende med. Noen grunn til at dere bare vil lage "Tilgang til en del nett-TV-funksjonalitet"?

    Svar på denne kommentaren

    • Andreas Munkelien (svar til evenv)

      Hei!
      Rundt Nett-TV så vurderer vi hva vi kan gjøre i forhold til rettigheter og de utfordingene det gir oss i forhold til å overholde forpliktelser i forhold til rettighetseiere.

  3. Christian Wattengård

    For min del er det enkel tilgang til NettTV arkivet. Dette for å få bedre implementasjoner i friprog mediesenterløsninger. NRK Spotlight som er tilgjengelig i Windows Media Center er utrolig dårlig.

    Når det gjelder programoversikt, så har jeg tilgang til den som ligger på presseområdet. Og den er forsåvidt ganske grei. Men den har et litt rart XML-format 🙂 Her vil jeg komme med et intenst ønske om å basere en evt api-løsning på XMLTV standarden.

    Utenom det så benytter jeg ikke så mye på nrk.no, Urørt basen kanskje kunne hatt et API for tilgang.

    Svar på denne kommentaren

    • Vi har planer om api for urørt ihvertfall. Enn så lenge har vi bare haugevis med rss-er, men vi vil jo at folk skal kunne ta med seg og sende inn flere ting fra andre tjenester, samt at vi har planer om en mobil og iphone app som vil trenge et utvidet api, og da er tanken å eksponere mer av urørt for alle som vil.

      På urørt har vi lyst til å fortsette å bruke streit rss som bærer av data så langt det lar seg gjøre, for å gjøre det lett å konsumere det også for folk som ikke er programmerere, men json bør vi også tilby.

  4. Noe jeg svært ofte savner er muligheten (like etter å ha sett et tv program på NRK) er å se hva programmet het (på engelsk), evt. informasjon om hvilke artister som var med (f.eks i div. underholdningsprogram), og evt om det går an a streame det. Dette er ganske sammensatt informasjon som APIet bør greie å levere.

    a) tv-program fra en dato
    b) slå opp program fra data fra a)
    c) finne ressurser og metadata knyttet til b)

    Det betyr at det må være høy integritet mellom dataene som de forskjellige APIene leverer.

    Det overnevnte program vil være trivielt å lage såfremt APIet har slik integritet.

    Svar på denne kommentaren

  5. Definitivt nett-TV. Har påbegynt en plugin for Plex, men det hadde vært så fantastisk mye lettere med en API. Nett-TV er så mye bedre på en faktisk TV, helst med mediesenter frontend.

    Svar på denne kommentaren

  6. Spilt på radio, spillelister, søk mot artikler, lydarkiv og videoarkiv og DMA står alle høyt på ønskelista mi.

    Det hadde også vært fint med et generelt api for "sosial aktivitet", slik at folk som feks lager en tjeneste hvor de viser nrks innhold samtidig kan la folk kommentere, men at kommentarene også blir sendt tilbake til NRKs servere. Som Intensedebate, men i revers altså. Kommentering, rating, stemming, favoriting osv. Det kan være at det beste der er å bruke en ekstern tjeneste, eller i det minste bør den være integrert med facebook, intensedebate og eller openid.

    Se på alt innholdet til NRK som sosiale objekter folk kan snakke om og dele, og lag tjenestene ut fra det.

    Svar på denne kommentaren

  7. Programguide står høyt på listen min. Bør kunne søke på dato, programnavn eller personer tilknyttet et program.

    Et eksempel vil være å følge med på alt som Atle Antonsen foretar seg. Eller se når Battlestar Galactica kommer tilbake på TV.

    Svar på denne kommentaren

  8. Atle Frenvik Sveen

    Proggramguide absolutt. Og mulighet til å slå opp "hva gikk på NRKx 12.30". En annen ting jeg kom på i morges når NRK alltid nyheter sto på: jeg hørte et innslag om piratkopiering der bla.a IKT-Norge uttalte seg. Hadde vært greit å kunne:

    1) sjekke hvilket program som gikk på radio
    2) få liste over alle innslag i dette programmet
    3) streame/laste ned dette innslaget.

    Svar på denne kommentaren

  9. Andreas M: Veit du noko meir om kva for datautvekslingsformat som blir tilgjengeleg? Er det kun XML (ala Polopoly), eller får dykk lagt inn JSON også?

    Dette ser uansett flott ut!

    Svar på denne kommentaren

  10. Odd Arne Jensen

    Et API til både NettTV og NettRadio takk. 🙂 Både livesendinger, og arkivet. Alt som dere nå har tilgjengelig på nettsidene deres for nedlasting eller streaming, bør jo allerede være klarert for bruk på nettet. I stedet for å bruke nettsidene deres for å leite fram noe å se på, og se det på pcskjermen, ønsker jeg å få det integrert i Mythtv, (open source mediasenter), slik at jeg kan bla gjennom innholdet med fjernkontrollen og se det på tven.
    Teksting av sendinger ønsker jeg at blir tilgjengelig i standard tekstformater, slik at man kan velge om man vi bruke dem eller ei, og da spesielt på programmer som dere ellers har tekstet på nynorsk. Bare det å slippe nynorske undertekster, er i seg sjøl grunn nok til å laste ned f.eks. Battlestar Galactica fra piratebay, i stedet for å se det på nrk.
    Jeg stemmer også for JSON(P), slik at man lett kan utnytte ressursene til NRK på klientsida i webapplikasjoner.

    Svar på denne kommentaren

  11. Audun Vaaler

    NRKs egenproduserte og allerede sendte TV- og radioprogrammer er viktigst. De bør publiseres i åpne formater, og på en måte som gjør det lett å linke til både vilkårlige punkter og utdrag (gjerne vha. en Annodex-basert notasjon). Da blir det lett å både vise til, diskutere og annotere materialet.

    Lov samtidig at adressene til klippene aldri vil forandre uten at det blir satt opp fungerende redirects, så kan vi bidra med både verdifull aktivitet og metadata, uten å bekymre oss om at det vi legger til vil gå tapt 🙂

    Svar på denne kommentaren

    • Andreas Munkelien (svar til Audun Vaaler)

      Vi må se på rettigheter, både i forhold til egenproduksjon og innkjøpt innhold. Vi håper å kunne dele så mye som mulig.

      Vi satser på å standardisere på en oppbygging av url'er til alle tjenestene vi legger ut, for å holde disse permanente fremover. Vi kommer evt til å gjøre en versjonering i url'en.

  12. Andreas Munkelien

    Hei Henrik!

    I første omgang ser vi på RSS og Atom, men er åpen for å vurdere JSON også. Vi må se dette litt i forhold til hva som er hensiktsmessig og i forbindelse med ressurser.

    Svar på denne kommentaren

  13. henriklied (NRK)

    Hei, Andreas!

    Serialisering av objekter til JSON i Java er så vidt eg veit ganske enkelt, og med tanke på kor stor breidde det ser ut til å bli på dei forskjellige tjenestene skal ein ikkje sjå vekk i frå at det er mange som er interesserte i å bygge mashups som bruker APIen ekstensivt.

    Da er det veldig flott at JSON kan pluggast direkte inn i JavaScript og brukast som native objekter. Det er slettes ikkje like enkelt å parse XML, verken i JavaScript eller dei fleste andre språk, som JSON.

    Ein annan ting er at RSS og Atom (sjå vekk i frå Atom Publishing Protocol i denne kommentaren) stort sett er egna til å gi oppdateringer til brukaren, og er ikkje like fleksible for spesifikke spørringer som eit generisk XML- eller JSON-dokument kan vere.

    Så ja, mi stemme går iallfall til JSON. 🙂

    Svar på denne kommentaren

  14. Jeg kan nesten ikke vente på at dere legger ut en slik API, slik at det endelig blir mulig å skrive en stabil plugin til XBMC som jeg bruker. Forhåpentligvis legger dere ut spesifikasjon/deler av dette tidlig slik at det går an å starte pluginutvikling til XBMC raskt.

    Svar på denne kommentaren

  15. Noe NRK bør få til når en slik API blir tilgjengelig er å sørge for at videoene det lenkes til ikke inneholder halvparten av forrige program, og hallodamen og alt det der. Det bør jo være mulig å bare legge ut programmet uten å måtte ta det opp fra direktesendt fjernsyn.

    Svar på denne kommentaren

  16. Jan Hammershaug

    Er spent på om det har skjedd noe med NRK’s API, nå snart 9 måneder etter at artikkelen ble publisert? Håper ikke finanskrise og Melodi Grand Prix har medført stopp i all utvikling:)

    Tenker spesielt på NRK nett-TV. Grunnen er en henvendelse fra en kompis, som har store problemer med å få sett nett-TV. Har ikke sjekket dette, men vet at han er en erfaren nettbruker, selv om han ikke kjenner stort til teknologien som ligger bak. Han hadde siste versjon av Flip4Mac på en G5 iMac. All programvare oppdatert, og han hadde prøvd Silverlight.

    Som sagt, jeg vet ikke hva årsaken kan være i dette enkeltstående tilfellet, men noe sier meg at det er mange der ute som sliter med det samme. Brukere med langt mindre kompetanse enn nevnte kompis. Og de bruker vel gjerne Mac..

    Svar på denne kommentaren

  17. Vil bare henge meg på Jan. Jeg har ofte problemer med nett-TV. Bruker Win XP og Chrome til vanlig, men har også problemer med andre nettlesere. Jeg har aldri fått de tre livestrømmene til å fungere. Kan det være fordi jeg er i utlandet?

    Det er blitt etterspurt direktestrømmer slik at man kan bruke for eksempel VLC til å se NRK. Hva er grunnen til at dere ikke vil tilby det?

    Hva med å gjøre det enkelt å embedde klipp fra NRK? Se feks hvordan amerikanske tv-kanaler lar deg klippe akkurat den sekvensen man vil ha, og så dele på egen blogg etc.

    I mine øyne burde nett-TV-(og radio)-løsningen være hvor ALLE nett-ressursene til NRK blir brukt for å få opp en fantastisk løsning. Deretter kunne dere lage en nettavis og fin forside etc for å konkurrere med andre nettaviser. Det virker nesten som om det er omvendt prioritering sålangt.

    Svar på denne kommentaren

  18. Andreas Munkelien

    Vi har fremdeles API’et vårt i pipeline, men har måtte prioritere litt anderledes siden sist innlegg.

    Vi har veldig høye ambisjoner og begrensede ressurser, så vi har valgt og prioritere prosjekter som er mest synlig for publikum. Det gjør at vi ikke får lansert API tjenesten vår før den er resultat av et behov vi fyller for publikum. Når jeg skrev om denne tidligere, så lå dette an til å skje i løpet av sommeren, men endrede prioriteringer har gjort at vi ikke har fått jobbet så rettet med tjenesten.

    Slik det ser ut nå så blir programinformasjon det første vi kan gå ut med, men tidspunktet er fremdeles noe vagt.

    Synes forøvrig det er helt supert med alle innspill, tanker og meninger her.

    Mvh

    Andreas

    Svar på denne kommentaren

  19. skjer det noe med apiet eller?

    stemmer for JSON – fordi det er enkelt å jobbe med i python

    #1 Programmgiude – hva går på nrk1 nå? hva er neste program? når starter det? hvor lenge varer det?
    #2 Spillelister – hva ble spillt i urørtsendingen? link til artisten/sangen. hvilken musikk var det som ble spillt i filmpolitiet i dag?
    #3 Nettradio – hva blir spillt nå?(gjerne inkludert i streamen)

    Svar på denne kommentaren

  20. Erling Brandvik

    Hei.

    Er det skjedd noe nytt med API-prosjektet?

    Ser at tv.nrk.no benytter seg av noen JSON-objekter:
    tv.nrk.no/listobjects/mostpopularbycategory/Unknown/barn.json/page/0
    tv.nrk.no/listobjects/mostpopularbycategory/Week/nyheter.json/page/0
    tv.nrk.no/listobjects/mostpopular/Week.json/page/0

    Spørsmålet mitt er om det finnes et «mønster» i url-ene? Går det an å få en
    liste over hva som er tilgjengelig? Finnes det JSON-objekter med mer
    informasjon om programmene og med link til høyoppløselige programbilder?

    Spent på hva som er tilgjengelig/kommer 🙂

    Svar på denne kommentaren

    • Erling (svar til Eirik)

      Ja, skulle gjerne hatt et svar her Munkelien. Har jobbet med en plugin til Plex, men den blir fort ustabil ved endringer på tv.nrk.no.

      Skjønner at prosjekter som er synlige utad blir prioritert, men vil jo tro at et stabilt API kan være veldig nyttig til intern bruk også.

  21. Andreas Munkelien

    Hei!

    Takk for interessen rund API’er i NRK.

    Siden jeg skrev artikkelen har vi endret litt kurs på våre priortieringer og vi har mer eller mindre de samme tanker om å tilgjengeliggjøre disse som tidligere, men det vil ta tid.

    Vi har prioritert utvikling av nrk.no/tv og nrk.no/radio og andre nrk.no tjenester. Når vi utvider med flere åpne api’er kommer vil tilbake med mer informasjon

    Tilgjengelige API’er er blant annet disse:
    om.dit.no/api/
    om.yr.no/verdata/
    nrk.no/rss/

    Mvh

    Andreas

    Svar på denne kommentaren

  22. Takk for at dere legger ut dette!

    Jeg har laget en liten barnetv-side til eget bruk fordi små barn navigerer mer visuelt og ikke har noe forhold til alfabetisering som dagens barnetv-sider legger opp til. Denne sorterer programmer etter popularitet og episoder innenfor hvert program etter publiseringsdato.

    alieninnovation.net/lk/nrk/barnetv.php

    Har dere noen planer om å utvide dokumentasjonen? Det er ikke umiddelbart opplagt hvilken id api-et tar. Kan dere hjelpe meg med et eksempel på bruk av denne for et enkeltprogram i en serie? v7.psapi.nrk.no/mediaelement/{id}

    Og finnes det et api-kall for å liste alle sesongene til et program?

    Svar på denne kommentaren

    • John Korsnes (svar til Lasse Klein)

      Hei Lasse,

      Veldig kul visualisering av barneprogrammene! Brukergrensesnittet til tv.nrksuper.no er utformet spesielt med tanke på barn som brukere, men det kan nok sikkert justeres enda ytterligere. Sender det videre til våre interaksjonsdesignere som tips 🙂

      APIet:
      De endepunktene vi har i dag er rimelig skreddersydd våre interne behov i NRK – som idag er bl.a. å støtte nrk.no sine artikler med metadata om videoklipp. Dersom vi åpner opp APIet «for alle» bør god dokumentasjon være på plass, men også en struktur som ikke bare er logisk internt – men også eksterne behov. Som jeg nevnte til Erling lenger opp i tråden, så har vi noe å gå på dette.

      Et eksempel på bruk av mediaelement-endepunktet:
      – På tv.nrk.no finner man ID’en til en episode i URLen, f.eks. broen sesong 2, ep. 7 har ID kmte40001712. tv.nrk.no/serie/broen/kmte40001712/sesong-2/episode-7
      – Mediaelement for denne episoden kan da hentes med samme ID slik: v7.psapi.nrk.no/mediaelement/kmte40001712

      Det som finnes av API-endepunkter er de du finner på dokumentasjonsiden idag.

      Håper det var til hjelp 🙂

  23. Det var hyggelig at du likte det! Barna hjemme er veldig begeistret, og treåringen ble helt selvhjulpen på iPaden etter at hun fikk denne versjonen.

    Linken jeg sendte deg oppdaterer popularitet for alle som bruker siden, men denne løsningen fungerer helt klart best når man sorterer på popularitet for hver bruker som vi gjør hjemme med en privat url for siden.

    Takk for forklaringen på id. Jeg ble litt lurt av at både id og sesong+episode brukes i url-en. Det blir mye greiere å forholde seg til api-et enn å måtte scrape sidene og være sårbar for designendringer.

    Svar på denne kommentaren

Legg igjen en kommentar til Erling Brandvik Avbryt svar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *. Les vår personvernserklæring for informasjon om hvilke data vi lagrer om deg som kommenterer.