nrk.no

Slik retter vi feil i NRK TV

Kategori: NRKTV

Foto: André Lersveen

NRK har en enorm katalog av TV-innhold på nett. Hvordan passer vi på at programmene til enhver tid er tilgjengelige?

Den nyeste episoden av tv-serien Heimebane må gjennom en lang løype av systemer før den til slutt publiseres i NRK TV. Mye kan gå galt på veien, men denne serien sees av så mange at NRK Publikumsservice alltid får lynkjappe tilbakemeldinger om det skulle være tilfellet.

Det gjør at vi, som heter Bifrost, kan finne feilen og fikse den.

I skrivende stund skal NRK TV feilfritt vise frem over 140.000 programmer. Det gir oss et problem: Det er verken effektivt eller forsvarlig å be mennesker se gjennom alle programmene i NRK TV.

Her trenger vi hjelp av datamaskiner.

Bifrost

Bifrost er i norrøn mytologi «broen mellom gudenes og menneskenes verden», men det er også navnet på et spillselskap, et trosfellesskap og den lille gruppa vår som overvåker NRKs nettjenester.

Vi sitter rett rundt hjørnet fra NRKbeta-redaksjonen, og passer på at blant annet NRK.no, NRK TV og NRK Radio fungerer.

Med årene har NRK TVs katalog økt betraktelig, og vi har blant annet tilgjengeliggjort innhold helt tilbake til Filmavisen (forfilm på kino). Med flere programmer ble det et større behov for å overvåke og rette feil.

Enormt arkiv: Grafen viser antall programmer ute i spilleren ‎(28. ‎mars ‎2019) sortert på når de først ble sendt.

Det løste vi delvis i 2017 med en automatisert «programsjekk», men systemet var skrevet og vedlikeholdt av én utvikler alene. Dette ga oss et «single point of failure» og da han dro på påskefjellet i fjor sluttet programsjekken å virke. Løsningen ble at han måtte sende oss terminal-kommandoer over SMS mellom skiturer og kvikklunsj.

I fjor sommer satte vi i Bifrost i gang med å skrive programsjekken på nytt fra bunnen av i programmeringsspråket Python.

Arbeidet er nå langt på vei kommet i mål, og derfor tenkte vi det kunne være interessant for flere å vite hvordan feilsøkingen egentlig foregår.

Hva er et program?

Et «on demand»-program i NRK TV har en unik program-ID og består grovt sett av video, lydspor og undertekster. For at avspilling skal fungere også når du har lav båndbredde, lager vi fem videofiler fra høy til lav kvalitet.

Det er også en god del metadata som må med. For å gi et bilde har vi lagt ved et utvalg av hva som typisk følger med et program:

  • Plakatbilde som vises før avspilling
  • Hvor lenge programmet skal være tilgjengelig
  • Om programmet skal kunne sees utenfor Norge
  • Indekspunkter som lar deg hoppe til et innslag i programmet
  • Aldersgrense
  • Kategori
  • Lengde

Om noe av dette har fått feil verdi eller mangler kan publikum oppleve feil.

Sånn fungerer programsjekken

«Programsjekken» er et testrammeverk som henter ut en liste over de sist publiserte programmene våre, prøver å spille dem av, og sier fra om eventuelle feil og mangler. Den er programmert i Python og består av to moduler som kjører parallellt:

  • Fetcher-modulen henter listen over programmer som skal sjekkes
  • TV-titteren sjekker om programmene kan avspilles

Hver time henter fetcheren en liste over de 200 sist publiserte programmene i NRK TV – i tillegg spør den én gang i uka etter alle programmer. Den gjør en enkel databasespørring basert på publiseringsdato og henter ut publiseringsstart, program-ID, og første sendedato. Listen med programmer sendes til en indeks i Elasticsearch, som er en søkemotor.

TV-titteren plukker opp listen fetcheren har lagt i Elasticsearch og «ser» på programmene. Med det mener vi at den analyserer og validerer en rekke egenskaper ved hvert program. Den spør blant annet NRK TV via et såkalt REST API om forventet lengde for programmet og sammenligner det med den faktiske lengden på videofilene.

Noen ganger mangler én kvalitet, noen ganger har ikke videoen kommet fram i det hele tatt. Det er også egne filer for undertekst, som sjekkes for overlapp i tidskoder, og om sekvensnumrene er sekvensielle.

Enkel arkitekturtegning.

I dag kjører åtte av disse TV-titterne samtidig – først en «ferskvare-trio» for å sikre at det mest aktuelle innholdet blir sjekket hyppig. Disse ser på de nyeste 200, 500 og 1000 programmene. Det tar gjennomsnittlig fem sekunder å sjekke ett enkelt program, som betyr at de 200 nyeste programmene blir sjekket anslagsvis hvert 15., 40. og 80. minutt.

De fem siste TV-titterne deler hele katalogen mellom seg, og ser gjennom hver sin del parallelt. Dette tar i overkant av et døgn.

Det er kanskje ikke så mange som ser på gamle episoder av «Der ingen skulle tru at nokon kunne bu», men hvis du først får et innfall og blir nysgjerrig på hvordan det gikk med Nils Christian i Gjevsjøen da han tok over gården til faren i 2005 skal vi sørge for at du får vite det.

Dashbord: Nederst her listes feil programsjekken fanger opp, i tillegg til metrikker for å følge med på at sjekken kjører som den skal.

Resultatet av arbeidet til TV-titterne samles i en egen index i Elasticsearch. Derfra har vi laget et dashbord i datavisualiseringstillegget Kibana som vi bruker for å overvåke feilene som dukker opp.

Neste steg er der automatikken stopper i dag. Når dashbordet viser feil åpner vi den detaljerte listen over feil i Kibana. Denne brukes som grunnlag for feilsøking og retting. De enkleste feilene løses typisk via kall til et REST API, men i andre tilfeller må kanskje programmet retranskodes, undertekster fikses eller video eksporteres på nytt.

Liste: I Kibana kan vi se rådataene fra programsjekken og bruke de for å løse feil.

Vi er i gang med å utvide programsjekken til å sjekke flere punkter bakover i løypa, med et endelig mål om å analysere nøyaktig hva som er galt med et program og trykke én knapp for å fikse det. Det vil gjøre at vi fanger opp feil tidligere og at færre feil blir synlige for publikum.

Mange feil må likevel fikses av folk med høy kompetanse på kildesystemene, men programsjekken kan spare dem for flere timer med feilsøking.

Vi er også helt avhengige av det gode samarbeidet med Publikumsservice, som fortløpende sier fra til oss om dere finner feil vi ikke har fanget opp.

Oppdager du selv feil kan du melde fra til Publikumsservice på info@nrk.no. Det blir vi veldig takknemlige for.

Still oss gjerne spørsmål i kommentarfeltet om hvordan vi jobber eller hvordan programsjekken virker i detalj.

27 kommentarer

  1. Kjetil Helge Hovstad

    Fangar dette systemet opp feilen der alle program med tegnet & i tittelen gir feilmelding på apple tv 3? Programma kan spelast av ved å trykke på play frå framsida, men dersom ein ynskjer å gå inn på programsida for å velge ein anna episode kjem det feilmelding.

    Svar på denne kommentaren

    • André Lersveen (NRK) (svar til Kjetil Helge Hovstad)

      Desverre fanger ikke programsjekken vår opp plattform-spesifikke feil som denne, men tusen takk for beskjed om feilen.

      Jeg skal videreformidle bug-en til app-utviklerne våre!

    • André Lersveen (NRK) (svar til Kjetil Helge Hovstad)

      Jeg kan gledelig melde at for omtrent fem minutter siden ble det rullet ut en fiks for problemet med serier/episoder med ‘&’ i tittel, så nå håper jeg alt virker som det skal hos deg. Takk igjen, Kjetil!

    • André Lersveen (NRK) (svar til Erik-Andre Vik Mamen)

      Det er et godt spørsmål!

      I 2013 inngikk NRK en avtale med Norwaco (opphavsrettsorganisasjon) om å publisere alt innhold produsert og sendt av NRK før 1997. Mellom 1997 og ca. 2008 ble det nok sjelden forhandlet rettigheter for å sende programmene på nett.

    • Det forsvant også et betydelig antall programmer etter 1997. Noen av dem kom gradvis tilbake, men jeg sitter fortsatt med et antall bevarte programmer i WMV-format, 512×384 punkter oppløsning og «hardsubed» teksting der det var aktuelt. Skulle gjerne hatt disse programmene i bede oppløsning og med tekstingen separat!

      Mange av de programmene jeg ville hatt tilbake er NRKs egne produksjoner. Da burde det være en del enklere rettighetsmessig – særlig siden programmene har vært tilgjengelig over nett en periode!

  2. Skulle gjerne hatt en knapp direkte tilgjengelig i spilleren for tilbakemelding om f.eks. at «Her er en episode dere har glemt å legge ut tekstingen på», eller «Dette programmet er feilkodet mhp. H:B».

    Ja, jeg kan skrive en epost til info@nrk.no, men terskelen er litt for høy, når jeg må manuelt kopiere inn en masse data om akkurat hvilken episode det gjelder, hvilket program osv. En «Rapporter problemer»-knapp kunne sette inn denne informasjonen automatisk, og kunne sende meldinen direkte til rette vedkommende.

    Svar på denne kommentaren

    • André Lersveen (NRK) (svar til keal)

      Skal dog sies at i tilfeller som du nevner her, hvor teksten mangler helt på alle plattformer, er det nok mer naturlig at automatikken gir oss i Bifrost (eller tekstekontoret) beskjed direkte. Hvis systemene våre klarer fange feilen skal du så klart slippe å skrive en e-post!

    • Rolf Valle (svar til keal)

      Det hadde vært nyttig om brukere som opplever en feil, og rapporterer den, automatisk får et varsel når feilen er rettet.

      Dersom rapportering fra bruker kan gjøres på en strukturert måte i programspilleren, kan varsel om at feilen er rettet sendes strukturert og automatisk til en innlogget bruker.

  3. En del av de skikkelig gamle programmene ha hatt teksting da de opprinnelig ble vist, men den er ikke tilgjengelig i arkivet i dag. (Trolig var tekstingen skrevet på skrivemaskin, i det utgamle systemet der man under sending mikset inn et videobilde av tekstarket med bildet fra scenen.)

    Finnes de gamle skrivemaskin-produserte tekst-arkene fortsatt, og vil de noensinne bli digitalisert for å legge inn i programmene?

    For å ta ett eksempel: Tolv år gamle Jimmy Rosenberg i Kulturoperatørene i 1993 (https://tv.nrk.no/serie/kulturoperatoerene/1993/FKUR05000493/avspiller). Jeg er ganske sikker på at nederladsken må ha vært tekstet for 25 år siden, og behovet er like stort i dag!

    Også for mange andre gamle programmer er det behov for teksting som en gang må ha eksistert – og som forhåpentligvis fortsatt eksisterer!

    Av egen erfaring vet jeg at det å skrive av teksten så den ender opp i en fil er en liten del av jobben; det koster minst det dobbelte å få tekstingen synkronisert med programmet på skikkelig måte. Men dette er noe NRKs tekstere er rutinerte med; de bør fikse det.

    Er det noen sjans for at vi får lagt på teksting på gamle programmer der teksten ikke pr idag er tilgjengelig digitalt, bare på skrivemaskin-ark (forhåpentligvis!)?

    Svar på denne kommentaren

    • Christian Bjerkan (NRK) (svar til keal)

      Man skal ikke se bort ifra at teksten finnes et sted. Om det noen gang kommer til å bli digitalisert kan jeg dessverre ikke svare for. Når man legger sammen alle programmene det potensielt sett er snakk om så baller arbeidsmengden på seg, og jeg regner med at teksterne fokuserer på nye programmer fremfor arkivmateriale.

    • Christian Bjerkan (NRK) (svar til Sverre)

      Jeg vet faktisk ikke om dette er en funksjon tiltenkt for fremtiden. Kan høre med utviklerne for selve avspilleren om det i morgen.

    • Sindre T. Fjeldstad (svar til Sverre)

      Er det ikke 15 sekunder som er standard? Det er det hos meg.
      Uansett: Hvis du trykker på henholdsvis «j» og «l», spoler du ti sekunder fra eller tilbake. Det fungerer også i direktesendingene.

    • Christian Bjerkan (NRK) (svar til Sverre)

      Vanskelig å kunne få noe svar på det nå grunnet ferieavvikling, men gjør dem oppmerksomme på ønsket hvertfall.

  4. Håvar Henriksen

    Det jeg savner er en funksjon som kan varsle deg om tidligere tilgjengelige episoder/programmer blir tilgjengelig igjen. Slik at jeg da kan gå inn å se på de episodene, den perioden de er tilgjengelig.

    Svar på denne kommentaren

  5. Morten Skogly

    Single point of failure ja, det er ikke uvanlig i NRK-historien :). Mekka på nrk.no/spillelister for endel år siden (som det står litt om her https://nrkbeta.no/2008/04/25/bedre-spillelister/) og tjenesten som spytta realtimedata inn i den stod og snurret under skrivebordet mitt i mange år. Those where the days.

    Men på den annen side så funka tjenesten, den var populær og oversikttlig. Etter noen år ble den tatt over av «de voksne» og deretter promte lagt ned.

    Det er med andre ord ikke alltid det er så dumt for sluttbrukerne at man bruker McGyver-metoder av og til.

    Svar på denne kommentaren

    • Øystein Nordvik (svar til Morten Skogly)

      Var du borti denne siden som helt til en måned siden viste det meste av hva som foregikk i sanntid på NRK P13?
      https://p3.no/uv/spillelister/p13-test.php
      Siden det er den enste musikk-radiokanalen jeg lytter til var den siden der vel så effektiv som Shazam når det var spennende musikk der.
      Kommer den opp igjen eller finnes den andre steder?

  6. Tore Olav Hagen

    Skikkelig moro å se at dere bruker teknologi på en veldig matnyttig måte! Problemstillingen dere har løst burde være egnet som studentoppgaver også, da den er konkret og har umiddelbar verdi.
    Moro og inspirerende!

    Svar på denne kommentaren

  7. Ole Kristian Knudsen

    Hei! Litt på kanten av dette, men svarprosenten var så høy så jeg tar sjansen. Er det mulig å få «film» som en kategori i nrk-spilleren? Eller eksisterer det allerede, også er det jeg som er håpløs?

    Vh Ole Kristian Knudsen

    Svar på denne kommentaren

    • Christian Bjerkan (NRK) (svar til Ole Kristian Knudsen)

      Hei! Jeg tror du har rett i at det ikke er en egen kategori for film. De er vel mer sjangerbasert (humor, drama, dokumentar), enn formatbasert. Skal dog spille det inn videre!

    • Magnus Johansen (NRK) (svar til Monica)

      Dette gjøres også! Det er kvalitetskontroller på programmer i nesten alle ledd i næringskjeden på vei ut til dere sluttbrukerne.

      Det er dog en meget kompleks løype, og feil kan skje i individe ledd som ikke nødvendigvis stopper distribusjonen, dermed kan visse feil ende opp i sluttproduktet.

      Et eksempel kan være tekst til engelske programmer: Både transkoding av videofilen og produksjon av selve tekstefilen kan fullføres individuelt fra hverandre uten feil, men dersom de to har forskjellig lengde så vil tekst ikke fungere på noen dingser. Det finnes, per idag, ingen annen mekanisme enn programsjekken som nødvendigvis fanger opp slike feil.

      Det du spør om er dog veldig interessant. Programsjekken evaluerer per idag kun programmer som har rettigheter på nett, men på sikt så vil den også sjekke programmer som vil være tilgjengelig på nett fram i tid. Hovedårsaken til at den ikke gjør det i dag er primært at mange endringer skjer med programmer helt opp til publiseringsstart på nett, så dersom vi hadde implementert denne «framtidssjekken» ville vi måtte jobbe med flere falske positiver som oppleves distraherende. Når vi nå etterhvert blir mer fornøyde med det grunnleggende testaggregatet som gjør opp Programsjekk, så er planen å se på hvordan vi best mulig kan sjekke ting som snart blir tilgjengelige uten at vi skaper merarbeid for oss selv og de andre som jobber med feil i innholdskatalogen vår.

Legg igjen en kommentar

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.