Меню

Начало

Влез Излез

Извличане на съдържание от 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-ове и филтри към потребителските полета. Отделяш още час докато направиш и това и когато вече ти се спи твърде много, за да продължиш и си спомниш, че трябва и да вечеряш преди да си легнеш, осъзнаваш, че колкото и работа да си свършил реално нямаш никакъв резултат, който да може да се види и да се оцени, а сайтът продължава да си седи празен. Отчаяно си правиш сметка, че ще имаш поне още няколко дена работа и се жалваш в един дълъг пост как пак нищо не си свършил.

Say „Hi“ to the whole world

Вече е официално – и аз си имам сайт (все още само блог, но и това ще се оправи). Не е нещо особено, но ще бъде в постоянно състояние на разработка – и аз се уча от eternal beta подхода, който Google започнаха преди години и който дори самите те вече не наричат beta, а просто състояние, в което продуктите им следват просперитета на естествения живот и правят нужни промени – били те и дребни – често и когато се налага.

Колкото и клиширано да е, все пак съм си програмистче и няма как да не започна със семпъл пост тип „Hello, World!“, така че – мараба народе 😛 !