Jak zakódovat automatické spuštění titulků včetně překladu do odkazu na YT video?
Potřeboval bych přidat na stránky YT video, ale ideálně tak, aby se u něj spustily i automaticky překládané CZ titulky. Video není mé, takže do něj zasahovat nemohu, mohu akorát nějak modifikovat odkaz, aby se spustily automaticky překládané titulky, pokud je to vůbec možné.
Zobrazení titulků:
Nastavení jazyka:
Jestli to bude fungovat v praxi tak jak si představuješ, netuším.
A jak přesně by pak takový odkaz měl vypadat, tj. kam to vložit? Můžeš to ilustrovat třeba na https://youtu.be/lqSSqVLjvUg, kde je hodně mluvení?
Vložíš to do URL adresy jako parametry.
Udělal jsem to podle hosta: https://youtu.be/lqSSqVLjvUg?cc_load_policy=1&hl=cs
Titulky se spustí, ale jsou anglicky.
Jo, místo hl by mělo pravděpodobně být cc_lang_pref. Parametr hl je pro volbu jazyka interface přehrávače.
Udělal jsem to tedy takhle: https://youtu.be/lqSSqVLjvUg?cc_load_policy=1&hl=cs&cc_lang_pref=cs a stejně mi to přehrává titulky anglicky.
Že by to fungovalo jen v rámci IFRAME? Těžko říct. Nic nebrání to tazateli vyzkoušet...
https://developers.google.com/youtube/player_parameters
Spustí, ale jenom, když mám u YT zapnuté titulky. Když je vypnu a znovu spustím daný odkaz, tak se nespustí ani anglické titulky ...
Možná tohle by mohlo fungovat, ale momentálně to z časových důvodů nemohu vzkoušet: https://www.3playmedia.com/blog/force-closed-captions-appear-youtube-videos/
Konečně jsem se dostal k pokusům s automatickým spuštěním titulků, ale zatím jsem skončil na parametru cc_load_policy=1, který spustí titulky jenom v případě, že jsem je zapnul v nějakém předcházejícím videu. Pokud je na nějakém jiném videu vypnu, tak tak ani parametr cc_load_policy=1 je nespustí. Nepochopil jsem, k čemu pak vůbec je.
Edit: Asi to má nějakou souvislost s cookies, jelikož když odkaz https://youtu.be/lqSSqVLjvUg?cc_load_policy=1 otevřu v anonymním okně a odmítnu cookies, tak se titulky zobrazí.
https://www.youtube.com/watch?v=xd24_NnzKy4
Asi by mohlo fungovat tohle: http://jsfiddle.net/setalosas/mezopfhL/, ale kam přidat ten skript do Fastcentriku?
<iframe id="existing-iframe"
width="640" height="360"
src="https://www.youtube.com/embed/q2C0EO0zzAY?enablejsapi=1&cc_load_policy=1"
frameborder="0"
style="border: solid 4px #37474F"
></iframe>
<script type="text/javascript">
var tag = document.createElement('script');
tag.src = 'https://www.youtube.com/iframe_api';
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
let player
const onApiChange = _ => {
if (typeof player.setOption === 'function') {
player.setOption('captions', 'track', {languageCode: 'en'}) // undocumented call
}
}
function onYouTubeIframeAPIReady() {
player = new YT.Player('existing-iframe', {events: {onApiChange}})
}
</script>