Opera a YouTube
Nie je to tak dávno, čo som popisoval problém so zobrazením videa na YouTube pomocou aktualizácie flashplayera. Prešlo niekoľko dní (možno aj viac, na videá sa dostanem len občas), a problém je tu zase, ale tentorkát aktualizácia zásuvného modulu flashplayer nepomôže, pretože novší proste nie je...
Avšak tento problém ma trápi. Ani nie preto, že by som bez tých videí nemohol vydržať, ale proste preto, že som objavil jeden článok, v ktorom bol link na dovysvetľujúce video, ktoré mi však v opere nešlo prehrať. Najprv som sa na to vykašľal, s povzdychom – zase problém. Dnes som však dostal chuť tento problém vyriešiť a tak som začal pátrať, až som sa dopátral k vláknu fóra na http://my.opera.com.
Postupným prelúskavaním sa cez rôzne viac, či menej relevantné príspevky som sa dozvedel, že problém nastal pri zmene dizajnu stránky YouTube. Pričom YouTube do svojej stránky zahrnul JavaScript, ktorý testuje verziu FlashPlayera a tento skript je kameňom úrazu. Tí, ktorí používajú Operu už dlhšie vedia, že keď sa spomenie Opera a JavaScript, znamená to problémy. Áno, Opera je v spracovaní JavaScriptu rýchla, ale nie vždy kompatibilná s inými prehliadačmi – často sa stretávam s problémami pri rôznych WYSIWYG editormi, či inými vychytávkami, ktoré v Opere nefungujú, alebo v lepšom prípade fungujú zle.
Musím však povedať, že v poslednej dobe sa to dosť zlepšilo a tých problémových je stále menej a menej. Neviem, či je za zlepšením tím Opery (skôr áno) alebo snaha vývojárov (menej pravdepodobné). Je to daň za to, že Opera je výrazne menšinový prehliadač, avšak v mojom prípade je to jeden z dôvodov prečo ju používam (i keď nie hlavný). Ale naspäť k problému...
Takže problémom je zisťovanie verzie nainštalovaného flashplayera, ktorý v Opere vráti prázdny reťazec (respektíve funkcia zlyhá), a tak JavaScript na Youtube nezistí nič, čo vyhodnotí ako starú verziu prehrávača a vyzýva používateľov na aktualizáciu toho postrachu webových stránok.
Riešenia
Vo vyššie spomenutom vlákne som našiel riešení viacero a aby som Vám ušetril skúšanie, tak spomeniem najprv tie, ktoré nefungujú:
- maskovanie za FireFox – odporučilo niekoľko prispievateľov fóra, dokonca našiel som aj ohlasy, že to funguje, ale pravda je iná – pomohlo to len s niektorými videami, s inými zase nie.
- blokovanie súboru s JavaScriptom – tak tento postup mi nepomohol vôbec.
- použitie Google Chrome – ani toto nevyzerá ako riešenie, pretože aj tento prehliadač mal s YouTube problémy... Každopádne by som Operu nemenil len pre problémy s jedným webovým serverom.
Funkčné riešenie
Hoci to vyzerá frustrujúco, je v spomínanom vlákne aj funkčné riešenie, ktoré je založené na princípe: "Klin sa klinom vybíja." Riešením je použiť používateľský JavaScript, ktorého úlohou je zablokovať (nahradiť) aktualizačnú informáciu, čím nastane želaná situácia, teda prehrávanie videa. Tu je riešenie:
- vytvorte nový textový súbor s obsahom (This was just posted by Snap100 on that Google support link):
// ==UserScript== // @name YoutubeProtectionRemover // @include http://www.youtube.com/* // @description Removes lame protection on YouTube // @copyright 2010, Snap // ==/UserScript== window.opera.addEventListener 'BeforeScript', function (ev){ ev.element.text = ev.element.text.replace("yt.flash.update(swfConfig, forceUpdate);",""); }, false); //end
- súbor uložte pod nejakým výpovedným menom (aby ste aj neskôr vedeli na čo je), napr. YoutubeProtectionRemover.js;
- z menu Pomoc -> O prehliadači Opera otvorte okno, kde nájdite riadok "Zložka pre JavaScript" a poznačte si cestu k adresáru;
- prekopírujte vytvorený súbor (YoutubeProtectionRemover.js) do tohoto adresára (v mojom prípade ~/.opera/userjs/);
- skontrolujte v nastaveniach Nástroje -> Nastavenia -> Rozšírené voľby -> Obsah -> Možnosti javaScriptu, že máte cestu k adresáru zadanú v políčku Zložka pre JavaScript (ak nie, tak ju tam doplňte);
- hotovo!
Záver
Čo dodať na záver? Len to, že dúfam, že dizajnéri YouTube prestanú prehliadať menšinové prehliadače a vývojári Opery budú aj naďalej odvádzať dobrú prácu!


