Elisa Viihde API Devaus

  • 18 September 2018
  • 47 kommenttia
  • 16285 katselukerrat

Käyttäjätaso 7
Kunniamerkki +22
Tämä keskustelu on tarkoitettu API kehityksen teknisemmälle tiedonjaolle, eli lähinnä devaajille foorumiksi missä jakaa osaamista ja vinkkejä toisilleen.

Tänne voi myös ilmoitella API rajapinnassa ilmenevistä ongelmista ja bugeista.

API Info sisältää tietoa niille, jotka ovat kiinnostuneita liittymään devaajiin ja ohjeet API keyn hankkimiseen (sisältää myös sopimusten tulkinnasta paljon tietoa)
API Julkaisut ja bugiraportit on keskustelu, missä devaajat voivat julkaista omia sovelluksiaan ja infota näiden päivityksistä, tuolla voi myös ilmoitella bugeista mitä käyttäjäpuolelta havaitaan

API devauksen dokumentaatiot löytyy jatkossa GitHubista

47 kommenttia

Käyttäjätaso 5
Näköjään, käsin JSONQueryllä huudellessa saa hyvin selkeän vastauksen edelleenkin:

code:
{
"message" : "An unexpected error occurred"
}





Eli API-serveriltä access-keytä pyydellessä on tätä mieltä tällä hetkellä API. Koetettu kaikilla eViihde versiolla, sekä ihan käsin JSON Queryllä ja parilla muullakin vastaavalla työkalulla, joilla teen testausta aina rajapintaan...

@Patomiäs potkaises siellä päässä jotakuta, että käy potkimassa peltipurkkeja ruotuun.

Ehdotus: Olisiko mahdollista saada tuohon virhe-json viestiin esim kentät "response-code" (HTTP Response Code) ja jos mahdollista, niin joku tarkempi selitys - toki vaarantamatta taustajärjestelmän tietoja. Helpottaisi sovelluksilla paljon ongelmatilanteisiin reagoimista. JSON Query ei näytä headereita, joten en tiedä palauttaako palvelin OK200 vaiko ERROR-500 koodin vastauksen otsikoissa. Veikkaan vahvasti 200;sta, koska mikään noista kirjastoista ei reagoi virhetilanteella, kuten on tapana jos tulee 500 "server made booboo" status koodi.

Testaus... Kyllä sieltä tulee 500-booboo.



code:
HTTP/1.1 500 Internal Server Error
Date: Tue, 25 Sep 2018 13:16:33 GMT
Transfer-Encoding: Identity
Content-Type: application/json; charset=utf-8
Set-Cookie: hex-sotkua-stripped; path=/; HttpOnly; Secure
Server: kong/0.12.3


Käyttäjätaso 4
Nyt vaikuttaa siltä että auktorisointi jne. toimii taas, mutta ts-streamin URLi joka API palauttaa ei toimi. Ilmoittaa vain 403 (access denied).

Voiko joku muu (@ssulti @Qotscha) vahvistaa tätä? Eli, `recordings/url/?v=...` palauttaa viestin jossa urli, ja se urli ei toimi.
Käyttäjätaso 5
@asmandos vahvistan tuon 403 ongelman, törmäsin siihen juuri itsekkin ja meinasin raportoida.
Käyttäjätaso 3
@asmandos vahvistan tuon 403 ongelman, törmäsin siihen juuri itsekkin ja meinasin raportoida.
juu ei tomi enää
Käyttäjätaso 3
Elisa taas tehny jotain kiusaa et ei toimi enää
Käyttäjätaso 7
Kunniamerkki +22
Potkasin eilen jo infoa onglemasta, tänään tuota jo korjailtu ja API palvelimen pitäisi olla OK, monitorointia taidettiin samalla parantaa sille 🙂
Käyttäjätaso 3
mulla ei ainakaa lähde lataa tulee teksti tiedosto jossa lukee kielletty pääsy
Käyttäjätaso 5
[quote user="Patomiäs"]Potkasin eilen jo infoa onglemasta, tänään tuota jo korjailtu ja API palvelimen pitäisi olla OK, monitorointia taidettiin samalla parantaa sille :)

Edelleenkin @Patomiäs tuo TS;iä jakava palvelin on pahalla tuulella ja sanoo 403 Forbidden. Osoite on saunalahti-jotain ainakin osassa tallenteista. Olisiko joku vähän päivittänyt järjestelmiä ja lukinnut "vanhoja" ?

Käyttäjätaso 7
Kunniamerkki +22
Pistin jatkokyssää tuosta eteenpäin, katotaan pitääkö potkia toista purkkia vai tarviiko teräskärkisiä seuraaviin potkimisiin mukaan
Käyttäjätaso 7
Kunniamerkki +22
Korjaus työn alla, jatkuu aamusta kun maiharimiehet ja -naiset saapuu taas hommiin. Pahoittelut häiriöstä! Eka ongelma saatiin jo niitattua mutta toinen sielllä vielä 403 errorin muodossa vaivaa
Tiukasti keskustelua seuranneena päätin tänään ottaa asiakseni saada nuo ohjelmat kuntoon.
Ajattelin, että tein jotain väärin kun ensin tosiaan tuo autentikointi ei toiminut ja sitten kun se alkoi toimimaan, niin heitti tuota erroria jatkuvasti.
Hienoa että @Patomiäs on ollut nyt hyvin aktiivinen asian suhteen. Kiitokset siitä. *thumps up*
Toivottavasti pääsisi huomenna jo testaamaan miten hommat toimii, mikäli asia saadaan korjattua.

Suurkiitokset @asmandos, @ssulti ja @Qotscha vaivannäöstänne.
Te olette todellisia sankareita. *nöyrä kumarrus*
Käyttäjätaso 3
Ollaanko tätä korjaamassa vai jäikö taas ettei tallenteita saa omalle koneelle
Käyttäjätaso 4
Kunniamerkki +9
Kovasti on yritetty korjata isommallakin porukalla mutta valitettavasti ongelmaa ei ole saatu ratkaisua.
Kunniamerkki +1
Onko mitään arvioita missä vaiheessa tämä iso porukka sitten saa jotain aikaiseksi? Ilmeisesti joku on taas mennyt "korjaamaan" jotain, mikä ei ole ollut edes rikki ja tässä tulos...
Käyttäjätaso 5
Näin devaajan asemassa näkisin mielelläni, että nämä "yleiset purnaukset ja muut jupinat" menisi tuonne https://yhteiso.elisa.fi/elisa-viihde-sovellus-ja-nettipalvelu-16/elisa-viihde-api-julkaisut-ja-bugiraportit-512104/index4.html puolelle ja tämä ketju jäisi enemmän itse rajapinnan tekniseen keskusteluun. Ehdotinkin tätä jo aikanaan, mutta ilmeisesti kyseistä rajausta ei saada tehtyä sovelluksessa?

Näin saataisiin tiedonjako toimimaan paremmin devaajat elisa välillä, ilman että ketjussa olisi tarpeetonta tai muualle kuuluvaa kohinaa ja pälinää, joka hukkaa herkästi tarpeelliset tiedot.

Pyyntö vain, kun kerran on kaksi ketjua asian tiimoilta. Vai onko edes mahdollista @Patomiäs @error404 ja muut Palstan Isopomot?
Käyttäjätaso 7
Kunniamerkki +22
Aikataulua ei tässä kohtaa ole vielä kuulunut, huutelin aiheen perään josko sitä saataisiin tai muuta tietoa että missä mennään.

Itse mietin tätä kahtia jaottelua tähän tyyliin:
API-rajapinta --- Devaajan koodaama softa --- Käyttäjä

Eli tämä Devaus-lanka tippuu tuohon ensimmäiseen --- slottiin ja tuo toinen lanka tuonne toiseen. Lähinnä siis hain jakoa keskusteluun teknisesti katsellen, eli tänne keskustelut siitä mitä tapahtuu meidän rajapinnan ja devaajien softan välillä, tuonne toiseen taas sitten softan ja end-userin väliset jutut 🙂
Käyttäjätaso 5
Kunniamerkki +3
Tässä kun on tullut sattuneesta syystä viime päivinä hieman perehdyttyä noihin adaptiivisiin tallenteisiin, niin ajattelin kirjoitella omia huomioitani siitä, missä muodoissa noita tallenteita on APIn kautta saatavilla ja kuinka niiden lataus tai katselu onnistuu.

Tallenteen formaati valitaan 'recordings/url/?v=..' -pyynnön 'platform'-optiolla. Alkuperäinen tallenne löytyy (tai siis tällä hetkellä pitäisi löytyä), kun platform=external. Vastauksesta löytyvä URL vie .ts-tiedostoon, jonka siis saa ladattua esim. curlilla tai nettiselaimella.

Adaptiivisiin tallenteisiin pääsee käsiksi eri protokollia käyttäen. Yhteistä kaikille on, että videoraita ja ääniraita ovat eri striimeissä. Tallenteisiin vievät ainakin seuraavat platform-optiot:
ios (protokolla: HTTP Live Streaming)
android (protokolla: HTTP Live Streaming)
online (protokolla: Microsoft Smooth Streaming)
  • URL vie Smooth Streaming Client Manifestiin
  • esimerkki: HD (YLE)
  • youtube-dl:n formaattilistaus: SD, HD (YLE), HD (MTV3 720p)
  • käytännössä siis samat laadut kuin yllä
online_wv (protokolla Dynamic Adaptive Streaming over HTTP)
  • URL vie MPEG-DASH Media Presentation Descriptioniin
  • esimerkki: HD (YLE)
  • youtube-dl_n formaattilistaus: HD (YLE)
  • HD-laatua EI saatavilla (aiemmin oli)
EDIT: Ilmeisesti ei kaikki mahtunut yhteen viestiin.
Käyttäjätaso 5
Kunniamerkki +3
Adaptiivisten tallenteiden lataus onnistuu ainakin seuraavilla sovelluksilla:
ffmpeg (ios, android)
youtube-dl (ios, android, online_wv, online (osa tallenteista antaa erroria))
  • tarvitsee ffmpeg:tä äänen ja kuvan yhdistämiseen
  • monipuoliset optiot formaatin valintaan (saa varmasti haluamansa)
streamlink (ios, android)
  • latausvauhdin saa moninkertaistettua --hls-segment-threads --optiolla
  • en ole varma saako haluamansa ääniraidan (ec-3-224 / aac1-192) varmasti valittua
HLS-striimien toisto (ios, android) onnistuu ainakin DirectShow-soittimilla LAV Splitter Sourcea käyttäen sekä Kodilla inputstream.adaptivea hyödyntäen.

Ja jouduin kirjoittamaan samat asiat kolmesti näköjään siksi, että viesti katkesi koodi-tagien kohdalta 😣

EDIT: Jos noita formaatteja halua ihmetellä, tuota voi halutessaan käyttää apuna.
Käyttäjätaso 5
Kunniamerkki +3
Käyttäjän @st72 kommentti toisesta ketjusta innosti hieman tutkimaan, kuinka nuo ääni- ja ohjelmatekstitykset oikein toimivat digiboksilla. Näköjään käytetään alkuperäistä DVB-tallennetta, jonka URL noudetaan lähes samalla tavalla kuin APIa käyttäen. Pyyntö tehdään eri palvelimelle ja käytetään eri platform-optiota (https://api-viihde-gateway.dc1.elisa.fi/ palauttaa URLin, joka ei toimi).

Nyt kysyisinkin, että miten Elisa suhtautuu tämän URLin hakuun sovelluksissa (vaatii siis oikeastaan vain yhden rivin muutoksen) ja sitä kautta tallenteiden katseluun tai lataukseen? Periaatteessa tuota ei voine eri palvelimen käytöstä johtuen pitää minään APIn piilotettuna ominaisuutena. Ja toisaalta, jos tallenteita aletaan tuota kautta latailemaan, aiheuttaako se kuulo- ja näkövammaisille tai muuten ohjelma- tai äänitekstityksiä tarvitseville ongelmia tallenteiden toiston pätkimisen muodossa?
Käyttäjätaso 5
Kunniamerkki +3
Yritän muotoilla kysymykseni selvemmin. Voisiko vaikka @Patomiäs tai @error404 ottaa asiaan kantaa.

APIn dokumentaation mukaan tallenteen (id 1234) URL saadaan pyynnöllä
code:
GET https://api-viihde-gateway.dc1.elisa.fi/rest/npvr/recordings/url/1234?v=2.1&protocol=hls&platform=external&appVersion=1.0 HTTP/1.1

Kuten @asmandos ja @ssulti ovat todenneet, vastauksena tulee kyllä URL, mutta se ei toimi (403 Forbidden).

Toimivan URLin kuitenkin saa pyynnöllä
code:
GET https://x.y.z/rest/npvr/recordings/url/1234?v=2.1&protocol=hls&platform=external&appVersion=1.0 HTTP/1.1

missä y.z on Elisan omistama domain. Asian sain selville tutkimalla digiboksin verkkoliikennettä, kun ohjelmatekstitys (hollanti) oli asetuksista valittuna.

Nyt se itse KYSYMYS: Onko tuota alla mainittua pyyntöä suotavaa käyttää sovelluksissa, jotka mahdollistavat tallenteiden katselun ja latauksen tietokoneella? (Vai palauttaako tuo ylempänä mainitulla pyynnöllä haettu URL 403:n nimenomaan siksi, että .ts-palvelimilla ei tällä hetkellä riitä kapasiteettiä kuin digiboksilla ääni- tai ohjelmatekstityksiä tarvitseville tms.?)
Käyttäjätaso 4
Hmm... voisin ehkä tehdä vastaava "launcheri" kuten ViihdeVLCLauncher, mutta joka käynnistäisi yt-downloader sen sijaan. Voisi ehkä helpottaa elämää toistaiseksi.

Jos opiskelisin vähän pyhtonia nyt 🙂
Käyttäjätaso 7
Kunniamerkki +22
Vähän nyt menee poliittisen vastauksen puolelle, mutta noita muita mitä keksii tuollain saa käytellä jos tahtoo ja toimii jos toimii. Muutoksia toimivuuteen voi siis tulla ja mikäli ominaisuus ei ole esiteltynä tuolla API:n dokumentaatiossa, ei sille pysyvää toimivuutta myöskään taata. Toivottavasti tämä nyt edes vähän selvensi 😃
Käyttäjätaso 4
Kunniamerkki +5
[quote user="Patomiäs"]Vähän nyt menee poliittisen vastauksen puolelle, mutta noita muita mitä keksii tuollain saa käytellä jos tahtoo ja toimii jos toimii. Muutoksia toimivuuteen voi siis tulla ja mikäli ominaisuus ei ole esiteltynä tuolla API:n dokumentaatiossa, ei sille pysyvää toimivuutta myöskään taata. Toivottavasti tämä nyt edes vähän selvensi :D

Pakko vähän kommentoida: ts-videon urlin haku oli esitelty ainakin minulle lähetetyssä API-paketissa eikä se silti enää toimi. Yleensä kun APIn kuuluisi olla vakaa jotta sen päälle voi tehdä softaa. En ole nähnyt mitään arvioitua aikataulua Elisan puolelta fiksata tuota vikaa.

Jos olette siirtäneet tiedostot toiseen domainiin, muutatte tietysti API:n palauttamaa urlia vastaavasti. Ei pitäisi olla mitään rakettitiedettä.
Käyttäjätaso 5
Kunniamerkki +3
Vähän nyt menee poliittisen vastauksen puolelle, mutta noita muita mitä keksii tuollain saa käytellä jos tahtoo ja toimii jos toimii. Muutoksia toimivuuteen voi siis tulla ja mikäli ominaisuus ei ole esiteltynä tuolla API:n dokumentaatiossa, ei sille pysyvää toimivuutta myöskään taata. Toivottavasti tämä nyt edes vähän selvensi :D

Kiitos vastauksesta, mietin vain, missä vaalipiirissä olet ehdolla... 😀Kerrottakoon nyt sitten, että toimivan URLin .ts:ään saa pyynnöllä
code:
GET https://rest-api.elisaviihde.fi/rest/npvr/recordings/url/1234?v=2.1&protocol=hls&platform=external&appVersion=1.0 HTTP/1.1

(Toisin kun tuossa ylempänä annoin ymmärtää, myös platform=external toimii, boksilla platform=agnes_impaired).

Ja jos joku erityisesti tykkää hls-striimeistä, niin platform=agnes, antaa sellaisen, jossa ääni (DD+ YLEllä) ja kuva ovat samassa striimissä. Tämä siis toimii myös https://api-viihde-gateway.dc1.elisa.fi:n kautta.

EDIT: Ja lainaukset ei vieläkään näemmä toimi kunnolla.

Jos olette siirtäneet tiedostot toiseen domainiin, muutatte tietysti API:n palauttamaa urlia vastaavasti. Ei pitäisi olla mitään rakettitiedettä.


Olenko ymmärtänyt oikein, että Elisa melkeinpä haluaa pimittää tätä a) tekijänoikeudellisista syistä (.ts:n "liian hyvä" kuvanlaatu) ja/tai b) säästääkseen kaistaa "pakottamalla" käyttäjät huono(mpi)laatuiseen adaptiiviseen striimiin?

Ehkä foliohattu on vedetty liian syvälle päähäni, mutta rivikäyttäjänä en oikein pysy perässä tässä api-mystiikassa.

Osallistu keskusteluun