Ke 15.06.2011 @ 15:15Kari Haakana

Ylen avoin data: rajapinta Ylen teksti-tv:hen

Viime vuonna beta.yle.fi-hankkeessa tehtiin nopeassa tahdissa uudenlainen käyttöliittymä teksti-tv:lle. Uutuus nimettiin über-teksti-tv:ksi; nimi viittaa digi-tv-suunnitelmissa vilahdelleeseen super-teksti-tv:hen ja über on tietenkin superia vieläkin parempi asia.

Alunperin über-teksti-tv.n yhteyteen piti tulla mahdollisuus tehdä oma viritys, mikäli Ylen tekemä ei kelvannut. Tuolloin mahdollisuus jäi tekemättä ajanpuutteen takia, mutta nyt tämä on mahdollista.

Google Docs -palvelusta löytyy nyt lyhyt kuvaus siitä, miten halukkaat kehittäjät pääsevät kiinni teksti-tv:n rajapintaan ja miten sitä käytetään. Rajapinnan käyttö on sidottu avaimeen (API key), jonka saa Ylestä sähköpostitse. API key -käytäntöön on päädytty, jotta voimme ongelmatilanteissa rajoittaa rajapinnan käyttöä.

Rajapinta tarjotaan käytettäväksi CC-lisenssillä (CC BY-SA 3.0).

Jos rajapinnasta tai sen käytöstä on kysyttävää, tee se blogin kommenteissa. Kommentoi myös (mielellään linkin kera), jos olet tehnyt jonkin sovelluksen rajapinnan avulla.

40 kommenttia

Ja ne, jotka eivät käytä Googlen tuotteita saavat luettua tuon kuvauksen miten?

Sami Kuhmonen kirjoitti:

Ja ne, jotka eivät käytä Googlen tuotteita saavat luettua tuon kuvauksen miten?

Jos kuvauksen lukeminen ei muuten onnistu, voin lähettää dokumentin sähköpostissa.

Kari

Sami Kuhmonen kirjoitti:

Ja ne, jotka eivät käytä Googlen tuotteita saavat luettua tuon kuvauksen miten?

Dokumentti avautuu klikkaamalla linkkiä. Ei näköjään vaadi kirjautumista. Mikä vakaumus estää lukemasta dokumenttia Google Docsista?

Anonyymi kirjoitti:
Sami Kuhmonen kirjoitti:

Ja ne, jotka eivät käytä Googlen tuotteita saavat luettua tuon kuvauksen miten?

Dokumentti avautuu klikkaamalla linkkiä. Ei näköjään vaadi kirjautumista. Mikä vakaumus estää lukemasta dokumenttia Google Docsista?

Se, että itselleni kyllä tuli sisäänkirjautumissivu. Itse lienet jo kirjautunut sisään, jos ei moista kysellä?

Sami Kuhmonen kirjoitti:

Ja ne, jotka eivät käytä Googlen tuotteita saavat luettua tuon kuvauksen miten?

Ei mitenkään.

En ole kirjautunut Googleen (oikeassa ylälaidassa Sign in -linkki) ja dokumentti aukeaa ongelmitta.

Miten tuota lisenssiä pitää soveltaa? Jos teen ohjelman, joka käyttää tuota rajapintaa, miten teoksen tekijä tulee ilmoittaa?

Tuo dokumentti oli senverran lyhyt että mitään tarvetta wordin .doc formaatille ei liene. Niille jotka eivät googlea halua käyttää niin dokumentin sisältö on seuraava:

Kuvaus
Rajapinnan kautta saa kysyttyä halutun YLEn Teksti-TV -sivun alasivut. Vastauksesta ilmenee vähintään alasivun numero ja aikaleima sekä halutessa myös sisältö.

Käyttö
Rajapintaa kutsutaan HTTP GET –metodilla osoitteesta http://beta.yle.fi/api/ttvcontent/. Vastaukset palautetaan UTF-8 –koodattuna. Rajapinta vaatii toimiakseen API Keyn, jonka saa pyydettyä sähköpostitse kari.haakana@yle.fi. Mikäli jokin rajapintaa käyttävä palvelu tai sovellus aiheuttaa ongelmia Ylen tarjoamille palveluille, API Keyn käyttöä voidaan rajoittaa tai sen käyttö voidaan kokonaan estää.

Parametrit:
a Pakollinen parametri. Palvelun API Key.
c Vapaaehtoinen parametri. Määrittelee palautetaanko vastauksen yhteydessä alasivun sisältö. Mahdolliset arvot ovat true tai false, oletuksena false.
p Pakollinen parametri. Halutut sivunumerot pilkulla eroteltuna.
s Vapaaehtoinen parametri. Parametrin avulla voi kysyä sivua edeltävän tai seuraavan sivun. Mahdolliset arvot ovat prev tai next.
t Vapaaehtoinen parametri. Määrittelee vastauksen formaatin. Mahdolliset arvot ovat json tai xml, oletuksena json.
jsoncallback Vapaaehtoinen parametri. Mahdollistaa JavaScriptillä tehdyt cross-domain –kutsut JSON-muotoiselle vastaukselle.

Esimerkit
Huom! Korvaa esimerkeistä apikey-sana pyytämälläsi API Keyllä.
Sivun 301 alasivut
http://beta.yle.fi/api/ttvcontent/?a=apikey&p=301
Sivujen 100 ja 200 alasivut
http://beta.yle.fi/api/ttvcontent/?a=apikey&p=100,200
Sivua 101 edeltävän sivun alasivut
http://beta.yle.fi/api/ttvcontent/?a=apikey&p=100&s=prev
Sivun 301 alasivut sisällön kanssa
http://beta.yle.fi/api/ttvcontent/?a=apikey&p=301&c=true
Sivun 301 alasivut XML-formaatissa
http://beta.yle.fi/api/ttvcontent/?a=apikey&p=301&t=xml

Olisi kiva, jos dokumentissa olisi myös pätkät esimerkkidataa, jota palvelu palauttaa. Minua kiinnostaa etenkin, kuinka teksti-tv-data on koodattu (värit, erikoismerkit, linkit jne.), eli kuinka tuosta voi parsia oikean näköisen sivun.

Omassa palvelussanne on myös parseri, joka muodostaa datasta kuvia. Olisi kiva lisä, jos rajapinta mahdollistaisi myös näiden kuvien hakemisen + siihen liittyvät aluekoordinaatit alasivulinkkauksille. Toki arvostan myös raakadataa, kunhan se on koodattu niin, että siitä löytyy nuo linkitysmerkkaukset jne.

No, omaa API-avainta odotellessa :-)

Onko joku muuten jo saanut API-avaimen? Jos on, postaatteko vähän mallidataa, mitä nuo rajapinnat palauttaa.

Löytyykö jostain dokumenttia, kuinka itse sisältö on koodattu? Ylen über-teksti-tv:ssä täytyy olla parseri joka tekee datasta kuvan. Voisiko API-tarjota myös kuvan tai voisiko YLE julkaista ko. grafiikaksirendausohjelmam lähdekoodin?

Tässä malliksi dataa, jos joku sattuu tunnistamaan tässä käytetyn markupin:

[tgre][nbgr][tblu]190 IN ENGLISH 201 URHEILU \n[tgre][nbgr][tblu]350 OHJELMAOPAS 400-409 SÄÄ \n[tgre][nbgr][tblu]575 DIGI-TV 425-427 LENNOT \n[tgre][nbgr][tblu]760 VÄDRET 800 VIIKKOMAKASIINI\n[tblu][nbgr][twhi]Lapset pois auringonpaahteesta 826 \n[tblu][nbgr][twhi]Vinkkejä lapsiperheen lomaan 829 \n

Ilkka Pirttimaa kirjoitti:

Onko joku muuten jo saanut API-avaimen? Jos on, postaatteko vähän mallidataa, mitä nuo rajapinnat palauttaa.

http://beta.yle.fi/api/ttvcontent/?a=&p=301&c=true&t=xml

Antaa tälläisen tulosteen:

<response status="200" message="ok" timestamp="2011-07-01T15:06:10.840+03:00" pages="1" version="1.0"><pages><page number="301"><subpage number="1" timestamp="2011-07-01T14:36:11.871+03:00">[tred][nbgr] [tyel][nbgr] [tred] 1/2
[tred][nbgr][tyel]TV1 [tyel][nbgr][tred] Perjantai 1.7.
[gred]#########[hgra][gyel]############################
13.35[twhi]Tie Avonleaan[tyel]>351[tmag]Ä
14.20[twhi]Eläinten elämää maalla ja merellä
[tyel]>351[tgre]A[tmag]Ä
14.30[twhi]Tosi tarina: Yksin[tmag]T[tyel]>351[tgre]A
15.00[twhi]Tv-uutiset[tcya]A
15.05[twhi]Ykkösen aamu-tv: Tänään
[twhi]otsikoissa[tyel]>399
16.00[twhi]Ps:n kesä[tmag]T[tyel]>351[tgre]A
16.45[twhi]Kolme vuodenaikaa: Pähkinäpensas
[tyel]>351
16.55[twhi]Viittomakieliset uutiset[tcya]A
17.00[twhi]Tv-uutiset[tmag]T335[tcya]A
17.10[twhi]Opettaja ohjaimissa[tyel]>351[tcya]A[tmag]Ä
18.00[twhi]Kuuden Tv-uutiset ja sää[tcya]A
18.20[twhi]Päivän kasvo[tcya]A
18.30[twhi]Ruma Suomi[tmag]T[tyel]>352[tcya]A
19.00[twhi]Sininen viikko[tmag]T[tyel]>358

[tmag]Ä = Äänitekstitys [tmag]T = Tekstitys
[tgre]A = Jo Areenassa [tcya]A = Tulee Areenaan
</subpage><subpage number="2" timestamp="2011-07-01T14:36:44.497+03:00">[tred][nbgr] [tyel][nbgr] [tred] 2/2
[tred][nbgr][tyel]TV1 [tyel][nbgr][tred] Perjantai 1.7.
[gred]#########[hgra][gyel]############################
20.10[twhi]Rakentajat[tyel]>352[tcya]A
20.27[twhi]Maapallo sylissämme[tcya]A[tmag]Ä
20.30[twhi]Tv-uutiset ja sää[tmag]T335[tcya]A
20.55[twhi]Urheiluruutu[tcya]A
21.00[twhi]Pianistin sivunkääntäjä[tyel]>358[tmag]Ä
22.20[twhi]Euroopan yllä[tcya]A[tmag]Ä
22.25[twhi]Onnelliset läskit[tyel]>352[tcya]A
22.45[twhi]Terapiassa[tyel]>352[tmag]Ä
23.10[twhi]Tv-uutiset[tcya]A
23.15[twhi]Komisario Lynley (K15)[tyel]>352[tcya]A[tmag]Ä
00.45-04.00 Uutisikkuna

[tyel][nbgr][tred]TV1 huomenna[tred]310, ylihuomenna[tred]315
</subpage></page></pages></response>

Esimerkissä ei näyttäisi olevan muuta kuin tekstin ja taustan värikoodauksia. Voitko Kari kuitenkin selvittää mihin tuo syntaksi perustuu kun ainakaan NAPLPSää tuo ei ole.

@timo_ruohomaki

Timo Ruohomäki kirjoitti:

Esimerkissä ei näyttäisi olevan muuta kuin tekstin ja taustan värikoodauksia. Voitko Kari kuitenkin selvittää mihin tuo syntaksi perustuu kun ainakaan NAPLPSää tuo ei ole.

@timo_ruohomaki

Moi!

Itselläni ei ole syntaksista tietoa, mutta kyselen edelleen. Suurin osa ihmisistä on lomalla, joten voi olla, että tähän menee useampi viikko.

Voisikohan rajapintaan saada toiminnon, joka palauttaa olemassa olevien sivujen numerot? Nyt voi jo toki kysellä aina yhden seuraavan sivun s=next, mutta kaikkien sivunumeroiden keräämiseksi joutuisi tekemään melkoisen nipun pyyntöjä.

Teinpä sovelluksen, joka kerää tekstiteeveestä dataa. Avoimen rajapinnan lisenssi on cc. Mikä on kerätyn tietovirran käyttölisenssi? Saako uutiset (esim Kotimaan uutiset tai paikallisuutiset) näyttää omalla nettisivulla (lähde mainiten tietysti)?

Itse formaatti on hyvin yksinkertainen, mutta datasta puuttuu mielestäni joitain välilyöntejä, jolloin tiedot eivät mene oikeille kohdilleen. Kannattaisi varmaan tarkistaa samalla tuo palikka joka datan antaa ulos.

Esimerkiksi sivulla 899 on ennen ja jälkeen sivunumeron välilyönti, mutta sitä ei ole datassa. Ja se ei voi olla implisiittinen, koska sivulla 201 välilyöntiä ei tule ennen numeroa...

Sami Kuhmonen kirjoitti:

Itse formaatti on hyvin yksinkertainen, mutta datasta puuttuu mielestäni joitain välilyöntejä, jolloin tiedot eivät mene oikeille kohdilleen. Kannattaisi varmaan tarkistaa samalla tuo palikka joka datan antaa ulos.

Esimerkiksi sivulla 899 on ennen ja jälkeen sivunumeron välilyönti, mutta sitä ei ole datassa. Ja se ei voi olla implisiittinen, koska sivulla 201 välilyöntiä ei tule ennen numeroa...

Toivottavasti huomasit tämän lisäksi myös, että välilyönneillä on saatettu asemoida ruudun oikeaan laitaan tekstiä, joka kuuluukin oikeasti edelliselle riville. Kannattaa huomioida käsitellessä, mikäli tahtoo käyttää sisällöllä eri leveyttä kuin alkuperäisessä. Esimerkkinä tästä sivulla 400 "meriveden korkeus", jonka jälkimmäinen sana on seuraavan rivin perässä.

Joko alkaisi olla väkeä töissä, että saisi selvityksen tuosta virheellisestä datasta (eli siis puuttuvista välilyönneistä)? Muuten vähän ikävä tuota käyttää ainakaan sisällön esittämiseen käyttäjälle.

Lähetin sähköpostia avaimista Google Documentin ohjeiden mukaan. Kauankohan kestää saada nuo avaimet tuon sähköpostin lähetykseen jälkeen?

Tomi kirjoitti:

Lähetin sähköpostia avaimista Google Documentin ohjeiden mukaan. Kauankohan kestää saada nuo avaimet tuon sähköpostin lähetykseen jälkeen?

Lähetin itse pyynnön viikko sitten, mutta vielä ei ole avainta tullut eikä muutakaan vastausta.

Riku kirjoitti:
Tomi kirjoitti:

Lähetin sähköpostia avaimista Google Documentin ohjeiden mukaan. Kauankohan kestää saada nuo avaimet tuon sähköpostin lähetykseen jälkeen?

Lähetin itse pyynnön viikko sitten, mutta vielä ei ole avainta tullut eikä muutakaan vastausta.

Ovat varmaan siis prosessissa. Odottakaamme siis vielä :)

Tomi kirjoitti:
Riku kirjoitti:
Tomi kirjoitti:

Lähetin sähköpostia avaimista Google Documentin ohjeiden mukaan. Kauankohan kestää saada nuo avaimet tuon sähköpostin lähetykseen jälkeen?

Lähetin itse pyynnön viikko sitten, mutta vielä ei ole avainta tullut eikä muutakaan vastausta.

Ovat varmaan siis prosessissa. Odottakaamme siis vielä :)

Oma avaimeni saapui tänään - kiitos siitä! :)

Tein Pythonilla luokan, jolla saa helposti haettua sivuja tekstiksi.
Tätä hyväksi käyttäen tein ohjelman, jolla voi hakea Tampereen alueen päivän sääennusteen. Ohjelma on todella rajattu, mutta siitä luokasta saattaa olla jotain iloa.
Lähinnä harjoittelua varten koodasin, olisi hyvä saada jotain ehdotuksia tai mielipiteitä koodin laadusta.

Koodit sijaitsevat osoitteessa:

http://kimmobrunfeldt.com/~kimble/koodit/ubertv/

Joko data tulee oikein ulos eikä rikkinäisenä kuten aiemmin? En ole huomannut tähän mitään vastausta vieläkään...

Sami Kuhmonen kirjoitti:

Joko data tulee oikein ulos eikä rikkinäisenä kuten aiemmin? En ole huomannut tähän mitään vastausta vieläkään...

Miten rikkinäisenä ?

Teimme sovelluksen tätä rajapintaa käyttämällä. Sovellus löytyy osoitteesta http://www.ttvmix.com ja sovellusta voi myös käydä äänestämässä Apps4Finland-kilpailuun sivulta http://www.apps4finland.fi/fi/kilpailutyot/sovellus-teksti-tv-mix

Miten käytännössä sovelletaan tätä CC-lisenssiä tähän API:in? Jos teen sovelluksen, joka käyttää tätä APIa, onko sovellukseni lähdekoodi julkaistava? Joku muu oli myös kysynyt, miten tekijä tulee ilmoittaa.

Monta asiaa sydämellä (yksi ämmä):

millä Yle perustelee sen, että meidän yökyöpeleiden ainoa radio/tv nautinto (Yle Arkisto) on lopetettu ja korvattu lyseenalaisilla valintaperusteilla valituilla urheiluselostuksilla? Kuka on kysynyt kuulijoilta halutaanko mieluummin kuulla Maailmansodan aikaisia maata muodastaneita arkistonauhoituksia vai jonniinjoutavia jääkiekko / tai suunnistus -selostuksia?

Nyt kun ei enään pysty edes äänestämään kukkarollaankaan! TV/Radio/VariTV -maksua ei enää ole: Kaikkien on maksettava YLEn toilailut! Miksei YLEisöltä kysytä mitä YLEisö haluaa kuulla?

Lisäksi on kysyttävä miksi YLE TV on jättänyt sen suurimman katsojakunnan (penkkiurheilijat) orrelle roikkumaan; Kaikki parhaat urheulutapahtumat on päästetty lain turvaaman kotipelisäännön avulla valumaan kaupallisille (kaupalliselle) kilpailijoille. Nyt emme pysty aiemman tapaan seuraamaan jääkiekon tai tulevaisuudessa edes yleisurheilun tärkeimpiä kansallista yhtenäisyyttä kohottavia kilpailuita muutenkuin maksutvn kautta. Tilalle ollaan saamassa (ainakin lehtitietojen mukaan) kaikenkarvaisia HBO-elokuvia (amerikassa kaikkein halvimpia TV-elokuvia) ja jotain Charliesin enkeleitä?!

Koskapa nyt TV-lupa on verossa niin haluaisin, että tv-ohjelmien valinnasta päättävien vakanssit olisivat kansanäämestyksen varassa. Luulen, että tämä asia on monelle suomalaiselle tärkeämpi kuin Kreikan luottoluokitus tai Euro!

T. Petri

Sami Kuhmonen kirjoitti:

Joko data tulee oikein ulos eikä rikkinäisenä kuten aiemmin? En ole huomannut tähän mitään vastausta vieläkään...

Ei tuo niin rikki ole, etteikö siitä esityskelpoista saisi.

Mistä osoitteesta API keytä voi kysellä, olen lähettänyt sähköpostia kahteen eri osoitteeseen mutta minkäänlaista vastausta en ole saanut?

Ai? Joko se on sitten korjattu? Aiemmin nääs sieltä puuttui välilyöntejä jne, joten ei tosiaan saanut esityskelpoista. Eikä kukaan ole kommentoinut, että se olisi korjattu...

Onko kari.haakana@yle.fi edelleen validi osoite mistä API key'tä pyydetään? Minkämoista jonotusaikaa on koettu?

3 kertaa kysellyt ohjeiden mukaan sähköpostitse vuoden 2011 loppupuolella, mutta ei koskaan mitään vastausta. 3-4 kuukauden jälkeen täällä takaisin, mutta eihän täällä ole tapahtunut yhtään mitään!

Miksi tämä muuten ylipäänsä pitää olla avaimen takana? Jos tulee ongelmia, niin toki on tarpeellista rajoittaa, mutta jos mitään ongelmaa ei edes ole, niin miksi tehdä tästä sellainen ongelma, että kaikki kyllästyvät tähän "avoimuuteen"....

Mikset Kari Haakana vastaa maileihin, missä olen pyytänyt API avainta? Vastaisit edes, että "en myönnä", niin ei tarvitsisi odottaa.

Tai tännekkin voisi kommentoida jotain jos palvelu päätetty lopettaa tms. Ei tämä nyt kovinkaan avoimelta toiminnalta vaikuta.

Sami Kuhmonen kirjoitti:

Ai? Joko se on sitten korjattu? Aiemmin nääs sieltä puuttui välilyöntejä jne, joten ei tosiaan saanut esityskelpoista. Eikä kukaan ole kommentoinut, että se olisi korjattu...

Kommentoit ylempänä, että välilyöntejä puuttuu sivunumeroiden yhteydessä. Ei tarvita kovinkaan monimutkaista säännöllistä lausetta korjaamaan ongelmaa. Blogin kommenteista päätellen virallinen tuki on lomalla, joten mitään korjauksia saati parannuksia rajapintaan lienee turha toivoa.

Anonyymi kirjoitti:

Mistä osoitteesta API keytä voi kysellä, olen lähettänyt sähköpostia kahteen eri osoitteeseen mutta minkäänlaista vastausta en ole saanut?

Hei kaikki API-avaimia kyselleet!

Pahoittelen Ylen puolesta hidasta reagointiamme avainpyyntöihinne. Jos teillä on vielä avain saamatta, lähettäkää minulle sähköpostia osoitteeseen antti.plathan@yle.fi, niin laitan avaimen tulemaan pikapuoliin. Laittakaa minulle siis viestiä, vaikka olisitte avainta jo Karilta pyytäneet. Näin varmistumme siitä, että saatte varmasti avaimet, ettekä joudu enää turhaan odottamaan.

Yt,
Antti
Yle tietohallinto

Tein Android-sovelluksen, joka käyttää tätä rajapintaa: http://www.tekstitvpro.fi

Anonyymi kirjoitti:
Sami Kuhmonen kirjoitti:

Ai? Joko se on sitten korjattu? Aiemmin nääs sieltä puuttui välilyöntejä jne, joten ei tosiaan saanut esityskelpoista. Eikä kukaan ole kommentoinut, että se olisi korjattu...

Kommentoit ylempänä, että välilyöntejä puuttuu sivunumeroiden yhteydessä. Ei tarvita kovinkaan monimutkaista säännöllistä lausetta korjaamaan ongelmaa. Blogin kommenteista päätellen virallinen tuki on lomalla, joten mitään korjauksia saati parannuksia rajapintaan lienee turha toivoa.

Ei, niitä puuttuu kaikkialta. Eli esimerkiksi grafiikka on ihan rikki jne. Tässä pian kaksi vuotta odoteltu, eikä korjausta tule, joten selvästi YLE ei halua siis oikeasti tarjota sitä täsmällistä dataa? Vai osaatko ehdottaa regexpiä joka osaa arpoa mitä grafiikkaa tällä kertaa haluttiin näyttää? ;)

Kehitys kehittyy - kokeile ja kommentoi yle.fi:tä

Tässä ryhmäblogissa yle.fi:n tekijät kertovat tulevista verkkopalveluista sekä valottavat ajatuksiaan suunnitelmien takaa.

Blogiarkisto