• Страница 1 из 1
  • 1
YouTube на uCoz
Driver86Дата: Среда, 2012-03-14, 15:35:47 | Сообщение # 1
Нет аватара у Driver86
CyberMan
Администраторы
Сообщений: 545
Репутация: 14
Не на форуме

В этой статье мы попытаемся на своём форуме от юкоза создать возможность загрузки видео, используя в качестве его хранилища всем известный сервис - youtube.

Для начала пару слов о картинках. Будем в качестве хранилища изображений использовать Радикал Фото.
Здесь всё просто. В шаблоне добавления сообщения в форуме находим

Code
$BBCODES$

и сразу перед ним добавляем скрипт и кнопку для загрузки изображения:

Code
<script>
function addradikal(){
  window.open('http://www.radikal.ru/','raddfoto',"width=800,height=600,resizable=yes,scrollbars=yes,status=no");
  return false;
}
</script>  
<input type="button" title="Radikal photo" value="photo" onclick="addradikal();" class="codeButtons" name="Radikal_photo" />

Теперь переходим к видео. Как и в случае с кнопкой изображения, перед кодом

Code
$BBCODES$

добавляем кнопку и скрипт для добавления видео на ютуб:

Code
<script>
function addyoutube(){
  window.open('http://ваш_сервер_с_поддержкой_php.ru/youtube.php','yaddvideo',"width=800,height=600,resizable=yes,scrollbars=yes,status=no");
  return false;
}
</script>  
<input type="button" title="video on YouTube" value="video" onclick="addyoutube();" class="codeButtons" name="video_on_YouTube" />

Обратите внимание на http://ваш_сервер_с_поддержкой_php.ru/youtube.php в коде: вам потребуется найти любой хостинг с поддержкой fsockopen.

Затем выполните следующие шаги.

1. Зарегистрируйте аккаунт в YouTube - он будет использоваться для хранения видео, загруженного для вашего сайта.

2. Авторизуемся в гугле, заходим на страницу http://code.google.com/apis/youtube/dashboard/ и получаем свой ключ разработчика (Developer Key). На указанной странице нужно будет указать название вашего приложения, URL сайта с которого мы будем отправлять запросы и описание. Введя необходимые данные система сгенерируется для нас наш ключ, который представляет из себя последовательность символов.

3. Открываем текстовой документ, вставляем в него код:

Code
<?php

$API_KEY = 'сюда вводим девелоперский ключ';
$API_NAME = 'сюда вводим название приложения';
$YOUTUBE_EMAIL = 'сюда вводим регистрационный е-майл на YouTube';
$YOUTUBE_PASS = 'сюда вводим пароль для входа в ваш аккаунт на YouTube';
$YOUTUBE_USERNAME = 'сюда вводим имя пользователя на YouTube';

$eq = "accountType=HOSTED_OR_GOOGLE&Email={$YOUTUBE_EMAIL}&Passwd={$YOUTUBE_PASS}&service=youtube&source={$API_NAME}";
if ($fp = fsockopen ("ssl://www.google.com", 443, $errno, $errstr, 20))
{
$request ="POST /youtube/accounts/ClientLogin HTTP/1.0\r\n";
$request.="Host: www.google.com\r\n";
$request.="Content-Type:application/x-www-form-urlencoded\r\n";
$request.="Content-Length: ".strlen($eq)."\r\n";
$request.="\r\n\r\n";
$request.=$eq;
fwrite($fp,$request,strlen($request));
while (!feof($fp))
$response.=fread($fp,8192);
fclose($fp);
}
preg_match("!(.*?)Auth=(.*?)\n!si",$response,$ok);
$AUTH_TOKEN = $ok[2];

$tm = time();

$data = "<?xml version='1.0'?>
<entry xmlns='http://www.w3.org/2005/Atom'
xmlns:media='http://search.yahoo.com/mrss/'
xmlns:yt='http://gdata.youtube.com/schemas/2007'>
<media:group>
<media:title type='plain'>{$API_NAME}{$tm}</media:title>
<media:description type='plain'>Видео для моего сайта</media:description>
<media:category scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Other</media:category>
<media:keywords>General</media:keywords>
</media:group>
</entry>";

if ($fp = fsockopen ("gdata.youtube.com", 80, $errno, $errstr, 20))
{
$request ="POST /action/GetUploadToken HTTP/1.1\r\n";
$request.="Host: gdata.youtube.com\r\n";
$request.="Content-Type: application/atom+xml; charset=UTF-8\r\n";
$request.="Content-Length: ".strlen($data)."\r\n";
$request .="Authorization: GoogleLogin auth={$AUTH_TOKEN}\r\n";
$request.="X-GData-Client: {$API_NAME} \r\n";
$request.="X-GData-Key: key={$API_KEY} \r\n";

$request.="\r\n";
$request.=$data."\r\n";
socket_set_timeout($fp, 10);

fputs($fp,$request,strlen($request));
$response = fread($fp,3280);
fclose($fp);
}

preg_match("!(.*?)!si",$response, $url);
preg_match("!(.*?)!si",$response, $token);

<form action="$url[1]?nexturl=http://ваш_сервер_с_поддержкой_php.ru/youtube.php" method="post" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="hidden" name="token" value="$token[1] " />
<input type="submit" value="go" />
</form>

?>

Обратите внимание, что и в этом коде надо ваш_сервер_с_поддержкой_php.ru необходимо заменить на адрес вашего сервера. После загрузки, если она прошла успешно сервер YouTube переправит браузер пользователя на http://ваш_сервер_с_поддержкой_php.ru/youtube.php с уникальным кодом YouTube видео в адресной строке.

4. Последний шаг: сохраняем текстовой документ как youtube.php и загружаем его на наш хостинг с поддержкой php.



 
  • Страница 1 из 1
  • 1
Поиск: