PHPackages                             gegirhasut/php-api-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. gegirhasut/php-api-client

ActiveLibrary[API Development](/categories/api)

gegirhasut/php-api-client
=========================

PHP client for Rutube api (http://rutube.ru). Fork from (https://github.com/rutube/php-api-client).

03PHP

Since Nov 4Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Gegirhasut/php-api-client)[ Packagist](https://packagist.org/packages/gegirhasut/php-api-client)[ RSS](/packages/gegirhasut-php-api-client/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Rutube PHP API Client
=====================

[](#rutube-php-api-client)

[![Build Status](https://camo.githubusercontent.com/dd6eb5507a04a3fb893d79f285e09b2bdc3ff8fa6a70d09fe28d9e4cc935b381/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f7275747562652f7068702d6170692d636c69656e742f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/rutube/php-api-client)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/dde5e335de81f608ccd3bd81241f219aff2be45906ab3a62d7caf756d48ef826/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f7275747562652f7068702d6170692d636c69656e742e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/rutube/php-api-client/?branch=master)[![Code Coverage](https://camo.githubusercontent.com/3ebffc09f5922c4f7287ac6f191abe8abaca20395c039435f1623b7dfd4643cf/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f7275747562652f7068702d6170692d636c69656e742e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/rutube/php-api-client/?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/de9bcce71e0efbf5d562bd113dd2fe9a202fc387d616d8fb6922c920bce48e6f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7275747562652f7068702d6170692d636c69656e742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/rutube/php-api-client)

Установка
---------

[](#установка)

Установка через composer:

```
composer require "gegirhasut/php-api-client"
```

Использование
-------------

[](#использование)

```
require 'vendor/autoload.php';

/**
 * Авторизация
 **/
Rutube\Rutube('login', 'password', /*secure*/ true);

$rutube->isAuthorized(); // result: true/false
$rutube->isSecure();     // Возвращает тип соединения. В случае https - true; в случае http - false

/**
 * Работа с видео
 **/

// Основные параметры:

$url        = 'url';
$title      = 'title';
$descr      = 'description';
$isHidden   = 0;
$categoryId = 13;

// Чтобы узнать о состоянии загружаемого видео после конвертации, нужно задать callback-урлы:
// :TODO: Не работали эти функции, не разбирался. Лучше пользоваться getVideo($video_id)
$callback_url = 'http://host.host/success'; // В случае успешной загрузки и конвертации видео в теле запроса будут переданы данные видео.
$errback_url  = 'http://host.host/error';   // В случае ошибки загрузки и конвертации в теле запроса будут сведения об ошибке.

// Получить объект видео:
$video  = $rutube->video();

// Загрузить видео. В ответе содержится video_id:
$data = $video->upload($url, $title, $descr, $isHidden, $categoryId, $callback_url, $errback_url);

// Обновить параметры видео (заголовок, описание, видимость и категорию):
$video->patchVideo($data->video_id, $title, $descr, $isHidden, $categoryId);

// Частично обновить параметры видео:
//  описание и категорию:
$video->patchVideo($data->video_id, null, $descr, null, $categoryId);
//  только заголовок:
$video->patchVideo($data->video_id, $title);

// Удалить видео:
$video->deleteVideo($data->video_id);

// Добавить обложку видео. $filename - полный путь до файла:
$video->addThumb($data->video_id, $filename);

// Отложить публикацию до времени:
$video->publication($data->video_id, '2015-01-16 20:36:31');

// Получить видео:
$video->getVideo($data->video_id);

// Получить список плейлистов:
$playlists = $rutube->getPlayLists();

// Добавить видео в плейлист:
$video_id = $video->id;
$res = $rutube->addToPlayList($playlists->results[0]->id, [$video_id]);

/**
 * Работа с данными, не требующими авторизации
 **/

$search = $rutube->search();

// Показать список видео пользователя по его id:
$search->loadVideoPersonById($personId, $page = 1, $limit = 20);

// Показать теги:
$search->loadTags($page = 1, $limit = 20);

// Показать видео по тегу:
$search->loadVideoTags($tagId, $page = 1, $limit = 20);

// Показать тв-шоу:
$search->loadTv($page = 1, $limit = 20);

// Показать типы тв-шоу:
$search->loadTvTypes($tvShowId);

// Показать сезоны тв-шоу:
$search->loadTvSeasons($tvShowId);

// Показать видео тв-шоу:
$search->loadTvVideos($tvshowId, $page = 1, $limit = 20);

// Показать видео из последнего сезона тв-шоу:
$search->loadTvLastSeasonVideos($tvShowId, $page = 1, $limit = 20)

/**
 * Работа с данными, требующими авторизации
 **/

// Если авторизованы, показать список личных видео:
$search->loadVideoPerson($page = 1, $limit = 20);
```

Использование без composer
--------------------------

[](#использование-без-composer)

Если Вы по каким-то причинам не пользуетесь [composer](https://getcomposer.org/), то подключение библиотеки состоит из 2-х частей:

- Необходимо подключить http-клиента (httpful, на данный момент версия 0.2.19)
- Подключить автолоадер API-клиента

Пример использования библиотеки в описанном выше ключе см. examples/without-composer/rutube-client-without-composer.php

По-умолчанию загрузчик ищет код библиотеки по пути ./src, указать новый путь можно выставив константу RUTUBE\_CLIENT\_SRC\_DIR.

Обработка ошибок
----------------

[](#обработка-ошибок)

Все ошибки передаются через Exceptions соответствующего класса.

Код ответаКласс ExceptionОписаниеConnectionErrorExceptionСервер не доступен400BadRequestExceptionПереданы некорректные данные401UnauthorizedExceptionТребуется авторизация403ForbiddenExceptionАвторизованный пользователь не имеет прав на выполнение данного действия404NotFoundExceptionСущность или ресурс не существуют (не доступны)405MethodNotAllowedExceptionРесурс не поддерживает работу с используемым методом запроса500ServerErrorExceptionВо время выполнения запроса возникли ошибки на стороне сервера. Рекомендуется попробовать позднее или связаться со службой поддержкиПример авторизации с обработкой ошибок:

```
try {
    $rutube = new \Rutube\Rutube('squirrel@squirrel.ru', '998800', /*secure*/ true);
} catch (Exceptions\ConnectionErrorException $ex) {
    echo "Сервер не доступен";
} catch (Exceptions\BadRequestException $ex) {
    echo "Некорректные параметры авторизации";
}
```

Запуск юнит-тестов
------------------

[](#запуск-юнит-тестов)

Тесты написаны на phpunit.

Запустить тесты без установленного phpunit:

```
$ composer update
$ composer test
```

Документация по библиотеке (не полная)
--------------------------------------

[](#документация-по-библиотеке-не-полная)

[rutube.github.io/php-api-client](http://rutube.github.io/php-api-client/)

###  Health Score

14

—

LowBetter than 2% of packages

Maintenance30

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity16

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/4bd038cf79cb41a4901b26643e468d499e0c2d7bacecc91dda1dd60cceaee36c?d=identicon)[Gegirhasut](/maintainers/Gegirhasut)

---

Top Contributors

[![trong](https://avatars.githubusercontent.com/u/466842?v=4)](https://github.com/trong "trong (25 commits)")

### Embed Badge

![Health badge](/badges/gegirhasut-php-api-client/health.svg)

```
[![Health](https://phpackages.com/badges/gegirhasut-php-api-client/health.svg)](https://phpackages.com/packages/gegirhasut-php-api-client)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[facebook/php-business-sdk

PHP SDK for Facebook Business

90821.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

74513.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

265103.1M454](/packages/google-gax)[google/common-protos

Google API Common Protos for PHP

173103.7M50](/packages/google-common-protos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
