Вставка видео из Вконтакте, Livestreet 0.4
47
Давно хотел сделать возможность добавления видео из вконтакте. Нам понадобится отредактировать файл: 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>Вставляем этот код к нам на страницу, без каких-либо правок. Радуемся.
- +10
- 13 июля 2010, 21:27
- oleamm_work
А реально ли это как-то сделать в виде плагина для ЛС 0.4 и выше?

- probezopasnost
- 14 июля 2010, 18:29
- ↓
зачем минусить… не понятно…
сделал всё как здесь написано на 0.3, всё равно трёт видео, ничего не отображается, кто-нибудь может подсказать в чём трабла?
сделал всё как здесь написано на 0.3, всё равно трёт видео, ничего не отображается, кто-нибудь может подсказать в чём трабла?
на каком этапе трёт видео на сервере или на клиенте? какой визуальный редактор? стандартный или тайни? если тайни, то см livestreet.ru/blog/tips_and_tricks/4823.html#comment72148
правил здесь:classes/modules/sys_text/text.class.php
после тех строчек как здесь указано.
пробовал в стандартном редакторе 2 варианта
видео после публикации не появляется
после тех строчек как здесь указано.
пробовал в стандартном редакторе 2 варианта
видео после публикации не появляется
Закачайте куда-нибудь ваш classes/modules/sys_text/text.class.php, чтобы посмотреть почему у вас не работает.
у меня такая же ситуация, код залил вот сюда.
просто после добавления сообщения, с видео, появляется пустой пост, и все.
просто после добавления сообщения, с видео, появляется пустой пост, и все.
У вас ошибка в 122 строчке:
Нужно так:
rghost.ru/2128681
/**
* 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><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></embed></param></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="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></embed></param></param></EMBED></OBJECT>', $sText);
return $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);Нужно так:
/**
* 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><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></embed></param></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="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></embed></param></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);
return $sText;
rghost.ru/2128681
Не совсем в тему топика, но тем не менее не хочется плодить топики ради пары вопросов.
Возможно ли подобное «продвинутое использование», как в данном примере со вставкой видео с ВКонтакте, применить и к YouTube, RuTube видео? То есть чтобы пользователь мог добавить просто код плеера в топик.
И еще одно. В YouTube видео есть такой момент, что люди зачастую используют видео с дополнительным текстом в конце ссылки. Бывает, что просто переходят на похожий ролик и ссылка получается вида: www.youtube.com/watch?v=11111111111&feature=related
Каким образом можно удалить &feature=related, чтобы видео отображалось? Или это моя индивидуальная проблема и искать нужно у себя где-то?
Код движка практически не менял, кроме изменения размера видео и добавления видео с контакте.
Заранее благодарю за ответы ))
Возможно ли подобное «продвинутое использование», как в данном примере со вставкой видео с ВКонтакте, применить и к YouTube, RuTube видео? То есть чтобы пользователь мог добавить просто код плеера в топик.
И еще одно. В YouTube видео есть такой момент, что люди зачастую используют видео с дополнительным текстом в конце ссылки. Бывает, что просто переходят на похожий ролик и ссылка получается вида: www.youtube.com/watch?v=11111111111&feature=related
Каким образом можно удалить &feature=related, чтобы видео отображалось? Или это моя индивидуальная проблема и искать нужно у себя где-то?
Код движка практически не менял, кроме изменения размера видео и добавления видео с контакте.
Заранее благодарю за ответы ))
LS 0.4.2
Простая версия — работает отлично.
Продвинутое использование — неработает. Все делал как написано выше.
Вот мой Text.class.php
Простая версия — работает отлично.
Продвинутое использование — неработает. Все делал как написано выше.
Вот мой Text.class.php
привет! я сделал все, как было описано. но, при вставке кода, в админке ролик появляется. а вот при публикации поста — он пропадает.
в чем может быть затык?
в чем может быть затык?

- konoplev-v
- 01 ноября 2010, 19:57
- ↓
Все варианты перепробовал, ну никак не хочет видео из вконтакат вставляться. Кто может в плагин сделать? Ну или как это делаетс], может я сам возьмусь)
если исходить из принципов сообщества, то стоило бы выложить решение на всеобщий доступ
может кому-то пригодится
может кому-то пригодится
Не вопрос.
Вот выкладываю на шару исправленный Text.class.php с возможностью добавления ссылки види
Вот выкладываю на шару исправленный Text.class.php с возможностью добавления ссылки види
<iframe src="http://vkontakte.ru/video_ext.php?oid=22344263&id=136953491&hash=3fe77bef85c2d9d8" width="607" height="360" frameborder="0"></iframe>
кто может оформить в плагин плачу 10 у.е =)) я думаю я не один такой =))Держите livestreetcms.com/addons/view/104/
Пока на модерации, можно скачать отсюда — rghost.ru/3689548
Доброго времени суток!
Пробовал прописывать в Text.class.php как в первом варианте так и во втором, пробовал активировать плагин… а видео с ВКонтакте не работает.
По первому варианту: видео ссылка /видео — после опубликования получается активная ссылка
По второму варианту: ничего нет :) т.е. в редакторе видно, что видео подгрузилась, а после опубликования его нет.
Подскажите пожалуйста в чем дело.
Заранее благодарю.
Пробовал прописывать в Text.class.php как в первом варианте так и во втором, пробовал активировать плагин… а видео с ВКонтакте не работает.
По первому варианту: видео ссылка /видео — после опубликования получается активная ссылка
По второму варианту: ничего нет :) т.е. в редакторе видно, что видео подгрузилась, а после опубликования его нет.
Подскажите пожалуйста в чем дело.
Заранее благодарю.
Комментарии (44)
RSS свернуть / развернуть