Вставка видео из Вконтакте, Livestreet 0.4
Давно хотел сделать возможность добавления видео из вконтакте.
Нам понадобится отредактировать файл: engine/modules/text/Text.class.php
Update 14.07.2010: Под 0.3.1 тоже работает.
Открываем, ищем:
и после добавляем код:
На этом можно закончить, и копировать url видео из кода, который появляется по ссылке «Получить код видео» (код обернут в тег iframe).
Пример использования.
Вконтакте нажимаем ссылку «получить код видео», получаем нечто вроди:
Извлекаем url: vkontakte.ru/video_ext.php?oid=22344263&id=136953491&hash=3fe77bef85c2d9d8 (обязательно с http:// вначале).
И вставляем его в лайвстрит в тег video.
Для тех, кто хочет упростить жизнь своим пользователям и позволять им вставлять код целиком, который предлагает вконтакте для вставки на сайт, необходимо сделать еще одно добавление.
Тот же файл, на несколько строк ниже:
после этого добавляем код:
Код выше меняет html код с тегом iframe, который предлагает вконтакте на код <videо> </videо>
Пример использования.
Вконтакте нажимаем ссылку «получить код видео», получаем нечто вроди:
Вставляем этот код к нам на страницу, без каких-либо правок. Радуемся.
Нам понадобится отредактировать файл: engine/modules/text/Text.class.php
Update 14.07.2010: Под 0.3.1 тоже работает.
Простая версия
Открываем, ищем:
public function VideoParser($sText) {
/**
* youtube.com
*/
$sText = preg_replace('/<video>http:\/\/(?:www\.|)youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)<\/video>/Ui', '<object width="425" height="344"><param name="wmode" value="opaque"></param><embed src="http://www.youtube.com/v/$1&hl=en" type="application/x-shockwave-flash" wmode="opaque" width="425" height="344"></embed></param></embed></object>', $sText);
/**
* rutube.ru
*/
$sText = preg_replace('/<video>http:\/\/(?:www\.|)rutube.ru\/tracks\/\d+.html\?v=([a-zA-Z0-9_\-]+)<\/video>/Ui', '<OBJECT width="470" height="353"><param name="wmode" value="opaque"></param><PARAM name="allowFullScreen" value="true"></PARAM><PARAM name="flashVars" value="uid=662118"></PARAM><EMBED src="http://video.rutube.ru/$1" type="application/x-shockwave-flash" wmode="opaque" width="470" height="353" allowFullScreen="true" flashVars="uid=662118"></embed></param></EMBED></OBJECT>', $sText);
и после добавляем код:
/**
* vkontakte.ru
*/
$sText = preg_replace('/<video>http:\/\/vkontakte\.ru\/(.*)<\/video>/Ui', '<iframe src="http://vkontakte.ru/$1" width="607" height="360" frameborder="0"></iframe>', $sText);
На этом можно закончить, и копировать url видео из кода, который появляется по ссылке «Получить код видео» (код обернут в тег iframe).
Пример использования.
Вконтакте нажимаем ссылку «получить код видео», получаем нечто вроди:
<iframe src="http://vkontakte.ru/video_ext.php?oid=22344263&id=136953491&hash=3fe77bef85c2d9d8" width="607" height="360" frameborder="0"></iframe>
Извлекаем url: vkontakte.ru/video_ext.php?oid=22344263&id=136953491&hash=3fe77bef85c2d9d8 (обязательно с http:// вначале).
И вставляем его в лайвстрит в тег video.
Продвинутое использование
Для тех, кто хочет упростить жизнь своим пользователям и позволять им вставлять код целиком, который предлагает вконтакте для вставки на сайт, необходимо сделать еще одно добавление.
Тот же файл, на несколько строк ниже:
/**
* Парсит текст
*
* @param string $sText
*/
public function Parser($sText) {
$sResult=$this->FlashParamParser($sText);
после этого добавляем код:
$sResult=preg_replace('/<iframe src=\"http:\/\/vkontakte\.ru\/(.*)\"(.*)\"><\/iframe>/Ui','<video>http://vkontakte.ru/$1</video>',$sResult);
Код выше меняет html код с тегом iframe, который предлагает вконтакте на код <videо> </videо>
Пример использования.
Вконтакте нажимаем ссылку «получить код видео», получаем нечто вроди:
<iframe src="http://vkontakte.ru/video_ext.php?oid=22344263&id=136953491&hash=3fe77bef85c2d9d8" width="607" height="360" frameborder="0"></iframe>
Вставляем этот код к нам на страницу, без каких-либо правок. Радуемся.
49 комментариев
спасибо
и тогда как обычно вставляется видео — при нажатии на иконку видео, вставляется код.
и куда именно?
А то я сделал поиск по «extended_valid_elements» — в этом файле таких подстрок довольно много.
сделал всё как здесь написано на 0.3, всё равно трёт видео, ничего не отображается, кто-нибудь может подсказать в чём трабла?
после тех строчек как здесь указано.
пробовал в стандартном редакторе 2 варианта
видео после публикации не появляется
просто после добавления сообщения, с видео, появляется пустой пост, и все.
Нужно так:
rghost.ru/2128681
теперь все работает великолепно!:)
Только, за время код сменился немного :)
Возможно ли подобное «продвинутое использование», как в данном примере со вставкой видео с ВКонтакте, применить и к YouTube, RuTube видео? То есть чтобы пользователь мог добавить просто код плеера в топик.
И еще одно. В YouTube видео есть такой момент, что люди зачастую используют видео с дополнительным текстом в конце ссылки. Бывает, что просто переходят на похожий ролик и ссылка получается вида: www.youtube.com/watch?v=11111111111&feature=related
Каким образом можно удалить &feature=related, чтобы видео отображалось? Или это моя индивидуальная проблема и искать нужно у себя где-то?
Код движка практически не менял, кроме изменения размера видео и добавления видео с контакте.
Заранее благодарю за ответы ))
А вот с окончанием &feature=related по прежнему не эмбардится плеер =/
Простая версия — работает отлично.
Продвинутое использование — неработает. Все делал как написано выше.
Вот мой Text.class.php
но есть некрасивость, в том что: к примеру при авторизации,
видео из вконтакте закрывает окно ввода пароля на половину,
Safari
Хром
Опера
— в 8 эксплорере (авторизация на новой странице)
в мазиле часть окна заднего плана скрывается (терпимо)
Простая версия работает, расширенная напрочь отказывается
в чем может быть затык?
Да, поддерживаю мутацию хака в плагин)
Могу выслать вам отредактированный Text.class.php пишите в личку.
может кому-то пригодится
Вот выкладываю на шару исправленный Text.class.php с возможностью добавления ссылки види
Пока на модерации, можно скачать отсюда — rghost.ru/3689548
Пробовал прописывать в Text.class.php как в первом варианте так и во втором, пробовал активировать плагин… а видео с ВКонтакте не работает.
По первому варианту: видео ссылка /видео — после опубликования получается активная ссылка
По второму варианту: ничего нет :) т.е. в редакторе видно, что видео подгрузилась, а после опубликования его нет.
Подскажите пожалуйста в чем дело.
Заранее благодарю.
при стандартном варианте я так понял ютуб рутюб и + плагин видосы из контакта есть еще куча видео хостов у кого больше этих трех можете поделиться? буду очень признателен
Тоже самый вопрос и про rutube