Меню

Vbox7

Влез Излез

Google Chrome разширение за изтегляне на субтитри от Vbox7

Редакция от 15.05.2016

Днес обнових последната версия на extension-а в Chrome Web Store-а: Изтегли Vbox7 Субтитри. Инсталирайте го от там, тъй като версията описана по-долу е стара и не работи с последния дизайн на Vbox7.


По-рано тази седмица направих едно малко приложение за изтегляне на субтитрите от клип във Vbox7, при въвеждане единствено на URL към страницата с клипа. Поради технически затруднения обаче, приложението не работеше както се очакваше, затова го свалих. За постигане на цулта направих едно малко Google Chrome разширение за Изтегляне на Vbox7 Субтитри, което работи локално, при преглеждане на видео.

прочети Google Chrome разширение за изтегляне на субтитри от Vbox7

Vbox7 субтитри към .SRT

Още в един от първите си блогпостове бях писал, че имам мерак да направя нещо подобно и сега вече то е факт. На адрес http://magadanski.com/vbox-subs/ ще намерите едно мини-приложение, което ви позволява по въведен URL към видео във Vbox7 (например http://vbox7.com/play:f9843cc0) да извлечете субтитрите и то в стандартен .SRT формат, така че и обикновеният player, който използвате да гледате филми, да може да ги покаже.

В скоро време може да пусна и един пост, в който да споделя самия код, заедно с малко обяснения кое за какво се прави.


Update (04.08.2012):

Поради проблеми с мини-приложението съм направил Google Chrome разширение за изтегляне на субтитри от Vbox7, което да предложи лесно и удобно реализиране на целта.

Self Hosted VS YouTube Videos

Та така де… дали да продължавам сам да си host-вам видеотата или да взема да премина към YouTube? Лично за мене това е много важен въпрос, защото по-късна миграция би била сравнително сложна за постигане.

прочети Self Hosted VS YouTube Videos

Embed-ване на Vbox видеота през техния player

В един предишен пост (от скоро) описах как embed кода, който Vbox7 предоставят когато искате да вкарате клипче във вашия сайт е що-годе неприятен, защото Flash видео player-а, който този embed код използва не е стандартния, който те предоставят когато гледаш клипчето на техния сайт. Ето няколко неща относно този примитивен player, който предлагат при embed – дори и да промениш размерите на видеото в този embed код, бутоните не се преразпределят правилно, така че проеразмериш ли го – става само по-грозно (ограничават ти размерите). Второто, което много ме изнерви е липсата на субтитри. Третото е, че като кликнеш на клипчето, вместо да премине в режим на пауза, player-а те пренасочва към страницата на клипчето във Vbox7. Тези три неща ме изнервиха доста и реших да опитам да си вкарам клипчето през оригиналния им player – все пак няма ограничения за зареждане на .SWF файлове от друг домейн. Проблемът бяха субтитрите, тъй като те се зареждат допълнително от един .JS файл като JSON низ, който се подава на player-а като flashvar. С помощ от приятели успях да взема и субтитрите (прави се с cURL и трябва да смените user agent-а с този на Google Bot примерно, защото иначе сайта ви пренасочва, тъй като не е открил дали имате поддръжка на JavaScript в браузъра ви). И така след два дена тормоз накрая стигнах до там да вкарам player-а заедно със субтитрите, при което гадния SWF файл, вика разни скриптове, въведени му с относителни URL-и. Сиреч – прецакан съм, тъй като на моя хостинг нямам тези server side скриптове, но и да ги имах – нямам достъп до базата данни на Vbox7, така че накрая пак не стана моята работа.

Тъпото е, че ограниченията, които от Vbox7 налагат са в голяма степен безсмислени. Липса на субтитри при зареждане от външен сайт – това защо изобщо? Основният смисъл от тези субтитри не е ли достъпност? Защо им е да развалят достъпността? Сега ще кожете, че автора на субтитрите може да не иска да му ги виждат по други сайтове. Първо – за какво му е на автора на субтитрите да налага хората да могат да ги виждат само на сайта ва Vbox7. Второ – дори и да е така, не би ли трябвало това да е като настройка, която да пита авторите на субтитрите дали позволяват това или – не.

Ограничението за размери на видеото – единствения коментар, който ще направя тук е, че за мене това е некадърно свършена работа player-а да е с фиксирани размери – на кой друг сайт за видео споделяне се е чуло и видяло подобно нещо.

Последното – пренасочването при кликване – това наистина мога да го преглътна – хората все пак искат да имат посещаваност на сайта, защото печелят от реклами. Но ако ще преглъщам това – искам другото да е наред.

В крайна сметка Vbox-а остава най-ограничения сайт за видео споделяне. На времето съм качвал много клипчета там, тъй като са били ориентирани към български зрители, а това си е български сайт, ама българщината май му идва в повече. Освен това YouTube е също достатъчно посещаван от българската аудитория, така че аз лично съвсем сериозно се замислям дали да не се пренасоча да си качвам клипчетата вече там (или пък защо не във Vimeo).

Извличане на съдържание от Vbox7

И такова нещо опитах днес, тъй като просто вкарване на видео с техния player на мене ни би ми било достатъчно – аз искам да имам и евентуалните субтитри към видеото. Направих нужната справка с кода на страницата, когато се гледа видео и забелязах, че субтитрите са представени като масив от обекти, всеки съдържащ самите думи, времето когато да се покаже дадения ред и някаква друга информация, която е JSON кодирана и се подава към player-а като flashvar. Самото зареждане на субтитрите винаги става в глобалната sSubsJson променлива, чието съдържание се задава в .JS файл, който се зарежда малко след <div id=“flashcontent“> тага (можете да го познаете по това, че в URL-то му се съдържат „subs“ и ID-то на видеото, което е част от URL-то на цялата страница).

Идеята ми беше проста – зареждам съдържанието на страницата с просто wp_remote_get(), после с регулярен израз намирам въпросния .JS файл, съдържащ субтитрите, зареждам после и него и вкарвам видеото. Да, ама с wp_remote_get() ми излиза съобщение от Vbox7, че сайтът изисквал cookies, за да работи. По тази причина опитах и с 2-3 реда curl, но резултатът, който получих беше празен низ. Едва ли е просто грешка – май от Vbox7 просто не обичат някой да им зарежда съдържанието през curl. Остават само два въпроса:

  1. Точно по кой параметър на заявката засичат curl и дали не мога да го маскирам?
  2. Как аждеба facebook извличат thumbnail на видеото, когато се пусне връзка към Vbox7?

За facebook заявката ми се струва, че цялостно се обработва по различен начин, тъй като в HTML кода, който стига до крайните потребители не фигурират никакви open graph тагове.

Публикуването на съдържание било трудна работа

Ето каква е и цялата история:

Решаваш един слънчев ден да си правиш сайт, но така и нямаш идея какво ще има на сайта, така че – ще чака. След време се сещаш, че онези преводи на песни, които си писал някога в миналото имат нужда да бъдат не само представени на хората, но и подкрепени с обяснителни записки кое как и защо се превежда, както и частична интерпретация на текста. Отделяш два дена да си направиш едно скромно сайтче, а на третия решаваш да се заемеш със същинската работа и да вкараш и малко съдържание. Започваш с клипа на първата преведена от тебе песен, като решаваш за най-просто да embed-неш видеото от vbox7.com, което и без това си върви с въведени субтитри. Да, ама embed кода на Vbox-а е гаден и на WordPress някои от таговете не му харесват и го филтрира. Не само това, ами и ръчно трябва всеки път да му оправяш широчината и височината, за да е по-прегледно и да заема пълната му предоставена широчина в сайта. Решаваш, че един WP филтър ще свърши работа, за да редактираш кода. Да, ама дори и редактиран, кода пак е гаден и player-а не е същия като този, който се вижда когато клипа си се гледа на оригиналния сайт. Отделяш половин час да им разгледаш скриптовете и заявките, за да си направиш сметка как да си вкараш същия клип като техния (барабар със субтитрите) използвайки само URL-то на страницата, от която се вижда клипчето. Еее – супер – само трябва този адрес на страницата да се въведе някъде. Решаваш да го добавиш като проста мета информация към поста и после с WP филтър да го замениш с качествен embed code. Да, ама ще е по-добре да се направи като мета информация към поста, че току-виж филтъра не се приложи. Добавяш си потребителското поле към публикацията и се сещаш, че има някои неща относно клипчето, които ако зареждаш всеки път ще работи много бавно, затова ще е по-добре част от информацията да се кешира. И това кеширане трябва да става при въвеждане или промяна на мета информацията. А тази промяна трябва да се засече вътрешно. Решаваш да разшириш библиотеката (тази дето сам си я правил), която използваш за потребителски полета, като добавиш поле за video embed code. Малко тъпа идея, но ще трябва да свърши работа. Започваш работа и осъзванаш, че твърде голяма част от кода ще се преповтори, а и това поле е всичко обратно на това, което се опитваш да постигнеш (най-вече гъвкавост) и зарязваш идеята. Връщаш се на момента, в който търсиш кадърно решение и ти хрумва да добавиш action hook-ове и филтри към потребителските полета. Отделяш още час докато направиш и това и когато вече ти се спи твърде много, за да продължиш и си спомниш, че трябва и да вечеряш преди да си легнеш, осъзнаваш, че колкото и работа да си свършил реално нямаш никакъв резултат, който да може да се види и да се оцени, а сайтът продължава да си седи празен. Отчаяно си правиш сметка, че ще имаш поне още няколко дена работа и се жалваш в един дълъг пост как пак нищо не си свършил.