Vimeo — чудовий відеохостинг, позбавлений дурних обмежень по тривалості відео (на відміну від YouTube).
Я хочу розповісти як автоматизувати вивантаження роликів на Vimeo, з веб-сторінки чи командного рядка, використовуючи PHP.
Сам довго шукав як правильно це реалізувати і знаходив декілька різних методів, аж поки не натрапив на простий і ефективний, від самих розробників Vimeo. ;) Сподіваюсь мій досвід стане комусь в нагоді. Вимагається базове розуміння PHP.
Теорія
Для автоматизації вивантаження відео (а також отримання інформації про вже вивантажене) на Vimeo потрібно використовувати їх API (хто б міг подумати ;) ).
Кожному бажаючому видається спеціальний "ключ розробника" . З цим ключем порграма (скрипт) буде звертатись до усіх методів API.
Один розробник може мати декілька програм (скриптів) для роботи з API. Кожній програмі видається, для її роботи, ключ (токен) і пароль доступу до функцій Vimeo.
Під час першого підключення до Vimeo, відкривається спеціальна сторінка де вас перепитують чи справді Ви дозволяєте програмі працювати від Вашого імені і виконувати різні зміни (додавання, редагування відео тощо).
Якщо Ви не проти, то порграмі буде присвоєно особистий ключ (токен) і пароль, яким вона може користуватись пізніше.
Практика
PHP-бібліотека для роботи з Vimeo API (Advanced API)
Завантажити PHP-бібліотеку для роботи з Vimeo можна з офіційного репозиторію розробників Vimeo: http://github.com/vimeo/vimeo-php-lib.
В архіві буде декілька файлів найважливіші з яких:
-
index.php — сторінка для створення і перегляду токена доступу
-
vimeo.php — сама бібліотека для роботи з Vimeo API
-
upload.php — тестовий скрипт для вивантаження відео
Ключ і пароль API
Ключ і пароль API для розробника можна вільно отримати на сторінці користувача Vimeo: http://vimeo.com/api/applications.
Якщо жодних записів там немає, то треба створити їх, для свого скрипта.
У відповідних полях треба вказати адресу скрипта, який проситиме дані API-авторизації (в нашому випадку http://ВАШ_URL/vimeo/api/index.php).
В результаті нам буде присвоєно ключ і пароль розробника.
Ці дані вписуються в файл vimeo/api/index.php:
$vimeo = new phpVimeo('API-key', 'API-secret');
Отримання токену авторизації
Токен авторизації дозволятиме роботу скрипта з даними (відео тощо) користувача Vimeo.
Треба зайти, за допомогою веб-оглядача, на сторінку /vimeo/api/index.php, та натиснути посилання ”Click the link to go to Vimeo to authorize your account.”
Вас буде скеровано на сторінку авторизації Vimeo “Authorization Requested”.
Натиснути “Так, авторизувати цей скрипт”. З цього моменту скрипту присвоюються унікальний ключ (токен) та пароль.
Потім Вас перекине на сторінку з скриптом (http://ВАШ_URL/vimeo/api/) який отримає від Vimeo усі потрібні дані.
Вони будуть доступні у змінних PHP-сесії. Щоб їх побачити просто на сторінці можна у скрипті index.php насписати щось на кшталт
echo "Access Token: ".$access_token;
echo "<br />";
echo "Access Secret: ".$_SESSION['oauth_access_token_secret'];
перед
switch ($_SESSION['vimeo_state']) {
Але не забудьте потім прибрати вивід цих змінних, щоб вони не потрапили у чужі руки!
Тестування
Перегяньте файл upload.php, він коротенький. Вкажіть вньому назву файлу, що треба вивантажити, його заголовок, та опис. також можна вказувати усі інші параметри, доступні з допомогою Vimeo API.
Найголовніше — вказати дані для доступу:
$vimeo = new phpVimeo('CONSUMER_KEY', 'CONSUMER_SECRET', 'ACCESS_TOKEN', 'ACCESS_TOKEN_SECRET');
-
CONSUMER_KEY — ключ розробника (отриманого на кроці "Ключ і пароль API")
-
CONSUMER_SECRET — пароль розробника (отриманого на кроці "Ключ і пароль API")
-
ACCESS_TOKEN — ключ авторизації (крок "Отримання токену авторизації")
-
ACCESS_TOKEN_SECRET — пароль авторизації (крок "Отримання токену авторизації")
У результаті виконання upload.php відеофайл буде вивантажено на сервер, а скрипт поверне різні корисні дані про відео — його ID (адресу), статус обробки (див. документацію API) тощо.
Наостанок, якщо токени авторизації було отримано їх можна використовувати, у своєму скрипті, як завгодно довго. А файл index.php вже стає непотрібний, хіба що Ви знову захочете згенерувати новий токен (ключ).