грабим видео с youtube

Итак я долго мучался пробовал и в конце концов смог прикрутить к сплогу грабер видео с youtube. Получилось несколько через жопу, но вполне рабоче.

Итак что нам понадобиться:

  1. хостинг с поддержкой cron (не обязательно), PHP, MySQL (есть даже в самых дешевых платных и частенько встречается и в бесплатных)
  2. wordpress (все свои эксперименты ставил на версии 2.3.3 )
  3. плагин FeedWordPress (хотя мне больше понравился wp-o-matic, но что-то без правки кода ничего не срастается, может баг а может я где-то напортачил…)
  4. аккаунт на yahoo.com

Начали.
Придумываем по каким тегам мы хотели бы получить видео с ютуба, предположим это girls и guys. Рсс ютуба (а именно его мы будем парсить? побольше можно почитать здесь http://ru.youtube.com/rssls)
по этим ключевикам выглядит так http://youtube.com/rss/tag/girls+guys.rss
Если у вас други ключевики то вы думаю догадались что и на что надо поменять в адресе ;)
Идем на pipes.yahoo.com, если вы еще не зарегистрированы, регистрируемся и входим в свой профиль.
Теперь переходим по адресу http://pipes.yahoo.com/pipes/pipe.info?_id=e568af95fb2762f139a20a3e96bcbe64
это пример какой пайп мы будем делать. Так жмем кнопочку Сlone, а потом Edit source. Теперь осталось поменять несколько величин и пайп под ваши нужды готов. Первым делом меняем в модуле Feed Fetch адрес на адрес вашей рсс полученный в пером пункте, справавы видите четыре модуля Private String в которых у вас ничего не отображается. Сейчас я скажу что в какой надо вставить :)
Считать будем их сверху.
В первый вставляем
<br /><br /><p align=center><a href=#><object width=425 height=355><param name=movie value=

Во второй
></param><param name=wmode value=transparent></param><embed src=

В третий
type=application/x-shockwave-flash wmode=transparent width=425 height=355></embed></object>

В четвертый
</p>

Все пайп готов. Теперь жмем Save, а после появившуюся сверху надписть Run Pipe Унас должнооткрыться окошко в котором будет видно награбленое видео с ютуба. Жмем More Options и выбираем Get as RSS, сохраняем адрес открывшейся страницы.

Теперь займемся вордпрессом.
первым делом нам надо немного поправить шаблон, совсем чуть-чуть ;) Идем Внешний Вид -> Редактор тем и выбираем для редактирования файл “основной шаблон”. ищем там строчку что типа

<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title();?>"><?php the_title();?>

и удаляем из нее вот это

title="<?php the_title();?>"

Перво наперво ставим плагин FeedWordPress и активизируем его. Вменю идем в Syndication -> Options там ставим настройки как вам нравится и выставляем Check for new posts: в значение automatically (если мы хотим чтоб сайт обновлялся когда его проматривает пользователь, приводит к более долгой загрузке сайта) или в only when I request (можно обновлять по крону).Теперь идем Syndication -> Syndication и в поле Add a new syndicated site: вбиваем адрес полученного вами рсс. Жмем Syndicate и любуемся примером одного из роликов. Жмем Use this feed.

Если вы выбрали обновлять автоматически, то все, работа закончена. Если же вы решили не нервировать пользователей долгой загрузкой сайта, то осталось еще настроить крон. Для этого удем в панель управления вашего хостинга, ищем где задаются задания cron даем ему на выполнение вот такую строку

curl --silent http://www.zyx.com/blog/?update_feedwordpress=1

предварительно поменяв адрес блога на свой. Чтоб обновление происходило, скажем каждые 30 минут в поле Minute задаем такое значение */30
Теперь если вы все сделали правильно то через 30 минут ваш блог наполниться роликами с ютуба ;)
UPD с кроном какие-то затыки, вырезается видео, хотя если выполнить саму команду то все ок. Так что лучше пока юзать автоматический способ. Будем искать причину :)
Костыль: посавить обновляться автоматически, а в крон засунуть такую строку

@curl —silent http://www.zyx.com/blog/@

после этого содержимое на сайте будет обновляться и по приходу пользователя и по крону. костыль не работает :(

comments | published опубликовано: Apr 25, 12:51 PM

#1 · Frayerok
Apr 28, 08:59 AM

Спс вам очень интересный блог палите темы вплоть на пальцах :)
И особено мне нравиться как вы пишите :)
И за эту идейку вам тоже спасиба будем делать !

#2 · jabacrack (Author Comment)
Apr 28, 09:29 PM

Да не за то :)
Решение все-равно нуждается в обработке напильником :)

#3 · Каталогизатор
May 3, 02:42 AM

спасибо, радикальное решение.

#4 · rEd
Jul 9, 11:33 AM

Не понял такой момент: в чем смысл удаления title из ссылки заголовка поста?

#5 · jabacrack (Author Comment)
Jul 9, 11:46 AM

причина в том, что тогда получается что видео вставлялось два раза – в заголовок и в текст поста, а выглядит это не очень красиво :)

#6 · GeLo
Jul 13, 10:12 AM

неполучилось сделать pipes.(((
http://pipes.yahoo.com/pipes/pipe.info?_id=48a414051ba4477f23fea66e15497039

делал все по инструкции…

#7 · jabacrack (Author Comment)
Jul 14, 09:13 AM

у меня нормально отображается ваш пайп

#8 · Игорь
Oct 14, 11:45 AM

Что не получаетса делаю по инструкции нажима Run Pipe…
RSS ленту читает текст выводит но видео выдает: Невозможно отобразить страницу!

#9 · jabacrack (Author Comment)
Oct 15, 09:45 AM

может видео уже недоступно? дайте свой пайп

#10 · Олег
Mar 22, 12:20 PM

Чтото походу не то с Private String походу
не работает. Может неточный код?

#11 · jabacrack (Author Comment)
Mar 22, 05:03 PM

Должно, проверьте еще раз правильные ли вы вставили значения?

#12 · MaSkiv
May 9, 12:02 AM

А у меня все работает
……….
Автор молодец

#13 · Ruslan
Aug 6, 05:03 PM

Делаю все по инструкции: RSS лента на выходе получается. Но feedwordpress выдает следующую ошибку:
Diagnostic information
HTTP request failure

Couldn’t resolve host ‘pipes.yahoo.com’
HTTP Transports available:

1. WP_Http_Curl
#14 · didgugan
Nov 30, 06:23 PM

отличныый материал. как раз занимаюсь трубами. очень пригодится думаю. однозначно статью в закладки.

Перед отправлением необходим предпросмотр текста

  Помощь по Textile