Вообще-то, этот сервис, являющийся очередной вариацией на тему oEmbed+, не имеет прямого отношения к Альто. Но он может быть полезен любому разработчику, в т.ч. и создающему сайты на Alto CMS.
Для занятых и нетерпеливых сразу ссылка на сервис: https://oembed.info/
А тех, кому важны детали, прошу под кат.
oEmbed, Open Graph, Twitter Cards и все-все-все
Как-то понадобилось для одного проекта сделать так, чтоб по введенному URL можно было отобразить красивую картинку или вставить плеер, если это ссылка на видео. А еще лучше — даже для видео показать сначала статическую картинку, а уже по клику вставить вместо нее плеер. И, конечно же, в первую очередь приходит в голову использовать для этого oEmbed.Что такое oEmbed, надеюсь, объяснять не нужно? Ну, если кто подзабыл, то oEmbed – это открытый формат для представления URL на стороннем сайте (как, например, делает это Фейсбук, когда в статусе указывается какой-то сайт). Для более подробной информации лучше почитать официальный сайт об этом формате: http://oembed.com/
И немало сервис-провайдеров сегодня поддерживают этот формат: YouTube, Flickr, SlideShare и многие другие.
Но кроме oEmbed есть еще форматы микроразметки Open Graph и Twitter Cards, которые, фактически, служат ровно для тех же целей, что и oEmbed. И ресурсов, которые используют микроразметку для описания своих страниц многократно больше тех, что реализуют oEmbed.
А еще существует множество сайтов, которые вообще не заморачиваются ни oEmbed, ни микроразметкой, а живут, как умеют. Но по ним тоже хотелось бы получать возможную информацию.
Слишком много информации об URL не бывает
В общем, после некоторых размышлений и экспериментов я пришел к тому, что нужен некий сервис, которому ты отдаешь URL и получаешь обратно информацию, которую используешь для оформления виджета, карточки или какого-то иного блока на странице своего сайта. Короче, делаешь красиво, как тебе надо.И такие сервисы, разумеется, существуют. Но в каждом из них мне чего-то не хватало для полного счастья. И вот так, как это нередко случается, родился новый сервис: oEmbed.info. Делал сначала сугубо для себя, но я слегка увлекся, и получился публичный сервис.
Этот сервис старается из полученного URL вытащить максимум информации, насколько это возможно – и через oEmbed, и через разметку, наконец, просто парсит HTML – и отдает ее аккуратным json'ом. В итоге, с одной стороны, получаем информацию в формате oEmbed, даже если ресурс не поддерживает этот формат. А с другой – объем получаемой информации, как правило, гораздо больше, чем это предусмотрено стандартом (кстати, именно поэтому в самом начале я говорю про «oEmbed+», а не просто oEmbed).
И что теперь со всем этим делать?
Информацию по URL можно получить вручную, а можно через API. Чтоб работать через API нужно получить API KEY, это совершенно бесплатно.После регистрации своего сайта и получения ключа можно автоматизировать получение информации о любом URL. Вот простейщий пример кода на PHP:
$sUrl = 'https://oembed.info/api/info/?key=API_KEY&url=site.com/blabla';
$aOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$sData = file_get_contents($sUrl, false, stream_context_create($aOptions));
$aInfo = json_decode($sData, true);
var_dump($aInfo);
Вы можете на основе полученных данных сформировать блок информации о вебстранице — с заголовком, описанием, картинкой и т.д. Или просто разместить скриншот страницы в виде изображения (ага, скриншоты тоже делаются). Либо, если в возвращаемых данных есть код плеера, вставить его вместо URL. В общем, все зависит от вашей фантазии и от ваших навыков программирования.
Да, в текущем виде это сервис именно для разработчиков с умениями и фантазией, хотя есть, конечно, идеи, как сделать его полезным и для тех, кто не является программером ни разу.
Как монетизировать сервис, я не придумал, но т.к. ресурсов он потребляет совсем немного, то пусть живет так. Хотя, если у кого-то будут мысли, типа «если б была такая фича, то я бы за нее заплатил», то буду благодарен, если их озвучите. Впрочем, буду благодарен за любые предложения по улучшению сервиса.
12 комментариев
Имхо, полезная вещь.
здесь и в других местах «например» это e.g./i.e./f.i.
Use oEmbed json data as you need, e.c. you can insert html instead URL
Use oEmbed json data as you need, e.g. you can insert html instead of URL
И как-то обсуждали уже идею с построением шаблона полностью на виджетах, но дальше обсуждения дело не пошло, т.к. нужно потратить немало усилий и создать хотя бы рабочий прототип, чтобы понять, насколько эта идея работоспособна, нет ли каких-то подводных камней и т.д.