Rupes kyllä syömään toi aiemmin mainittu media.jsonp -tiedoston ongelma, en rupea lisäämään mitään kymmenien kertojen saman osoitteen lataamista tekstityksen takia. Ihan vaan koska se on ihan perseestä. Sieltä saatavalla HDS/HLS-osoitteellakaan ei tee mitään, joten jos hylätään koko tiedosto.
Vaan mistä sitten tekstitys? Löysin hankalan tavan, mutta jos muuta ei ole niin tämmöistä täytyy yrittää. Aikataulu ei sitten kyllä ole ihan lähipäivinä.
Esimerkkinä sarja Syntinen, Jakso 1:
https: //areena.yle.fi/1-4553405
Napataan ohjelman id, ja lyödään se seuraavaan osoitteeseen:
http: //player.yle.fi/api/v1/programs.jsonp?id=1-4553405
Sieltä kaivetaan JSONista seuraavasta paikasta entryId
data|program|publicationEvent|xxx|media|id (xxx tilalle numero jossa
temporalStatus =
currently ja
serviceId =
yle-areena tai
yle-elava-arkisto)
Saadaan entryId 29-
1_o9ok8g12 (poistetaan alusta 29- tai mikä siinä ikinä onkaan)
Syötetään entryId seuraavaan osoitteeseen:
https: //cdnsecakmi.kaltura.com/p/1955031/sp/195503100/playManifest/entryId/1_o9ok8g12/protocol/https/format/applehttp/a.m3u8?uiConfId=43540941&playSessionId=f56dddc9-8041-a35d-d69e-3a8ea3c963a8:f4d0650d-785b-ddf9-3981-d25ab8be1eca&referrer=aHR0cHM6Ly9hcmVlbmEueWxlLmZpLzEtNDU1MzQwNQ==&clientTag=html5:v0.36.5
Saadaan m3u8-tiedosto, joka pitää sisällään mm. osoitteen josta saa playlistin tekstitykseen:
Koodi:
#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="käännöstekstitys",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="fi",URI="https://ylekaodamd.akamaized.net/api_v3/index.php/service/caption_captionasset/action/serveWebVTT/captionAssetId/1_3z1kgyzg/segmentDuration/300/ks/djJ8MTk1NTAzMXxd0TjjXTqn-xJS8hCXtIsqTddQoW796bL076ehPdzzpIJt1WaA4M1aVrbuq09kJb1yeQyE96YWJBydRomHeB4HDepbW7NkBQ_-pQM5uCinFzsGhGahFnL0_EV4USel4_ruJkkl5lhXZtugh0uOKnA3Awo7MdkIjrx-A4qOKyufYWS8MffUFcJ7WaC_90igEqYYc6r0cT10BeAc4-H4k8phNYgmrqDKXHGq-AWeoNy5LOzyZ-d1vzYF_8oO78LPpX494ZWzrdxDXBC3hW6YeklL/a.m3u8"
Osoitteen takaa saatava playlist taa on:
Koodi:
#EXTM3U
#EXT-X-TARGETDURATION:300
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:300.0,
segmentIndex/1.vtt
#EXTINF:300.0,
segmentIndex/2.vtt
#EXTINF:300.0,
segmentIndex/3.vtt
#EXTINF:300.0,
segmentIndex/4.vtt
#EXTINF:300.0,
segmentIndex/5.vtt
#EXTINF:300.0,
segmentIndex/6.vtt
#EXTINF:300.0,
segmentIndex/7.vtt
#EXTINF:300.0,
segmentIndex/8.vtt
#EXTINF:244.0,
segmentIndex/9.vtt
#EXT-X-ENDLIST
Eli, tekstitys on tässä tapauksessa jaettu 9 eri palaseen, jotka pitäisi koota yhdeksi tiedostoksi. Eli tuo
segmentIndex/1.vtt pitää lisätä tekstitysplaylistin osoitteeseen, jotta saadaan yksi palanen ladattua:
https: //ylekaodamd.akamaized.net/api_v3/index.php/service/caption_captionasset/action/serveWebVTT/captionAssetId/1_3z1kgyzg/segmentDuration/300/ks/djJ8MTk1NTAzMXxd0TjjXTqn-xJS8hCXtIsqTddQoW796bL076ehPdzzpIJt1WaA4M1aVrbuq09kJb1yeQyE96YWJBydRomHeB4HDepbW7NkBQ_-pQM5uCinFzsGhGahFnL0_EV4USel4_ruJkkl5lhXZtugh0uOKnA3Awo7MdkIjrx-A4qOKyufYWS8MffUFcJ7WaC_90igEqYYc6r0cT10BeAc4-H4k8phNYgmrqDKXHGq-AWeoNy5LOzyZ-d1vzYF_8oO78LPpX494ZWzrdxDXBC3hW6YeklL/segmentIndex/1.vtt
Ja tietysti jokaisen palasen alussa on WEBVTT joka sekin pitää poistaa lopullisesta:
Koodi:
WEBVTT
00:00:05.320 --> 00:00:07.440
Siellä on isoja laivoja.
00:00:07.520 --> 00:00:11.640
Niillä mennään
ihan putouksen reunalle.
00:00:11.720 --> 00:00:14.760
Voimme nähdä jopa
tynnyrissä laskijoita.
00:00:14.840 --> 00:00:20.560
Tynnyrissä? - On suosittua laskea
Niagaran putouksista tynnyrissä.
No, ei mahdotonta mutta hankaloittipa taas hommia. Eikö kukaan tiedä suoraa osoitetta kokonaiseen tekstitykseen??!?!!
EDIT:
Haa. Tuon tekstityksen osoitteessa olevan segmentDuration arvo 300 voi korvata vaikka arvolla 9999, jolloin tekstitystä ei jaeta 300 sekunnin pätkiin, vaan saadaan kokonainen yksi pitkä tekstitys.