承接 dimsog/youtube-to-vk 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dimsog/youtube-to-vk

Composer 安装命令:

composer require dimsog/youtube-to-vk

包简介

Transfer video from youtube to vk

README 文档

README

Библиотека для переноса видео с Youtube в группу VK или на страницу пользователя.

Эта библиотека использует youtube-dl-php и vk-php-sdk.

Требования

  1. PHP 7.4+
  2. Python3 (для youtube-dl или yt-dlp)
  3. Установленный на сервере youtube-dl или yt-dlp (у автора скорость скачивания была выше). Это необходимо для youtube-dl-php.

Установка

composer require dimsog/youtube-to-vk

Перед использованием

Наличие VK access token обязательно. Вы можете получить ссылку на получение токена с помощью следующего метода:

use Dimsog\YoutubeToVk\YoutubeToVk;
$clientId = 123456;
echo YoutubeToVk::generateVkAccessTokenLink($clientId)

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

use Dimsog\YoutubeToVk\YoutubeToVk;

$youtubeToVk = new YoutubeToVk('vk_access_token');

// постинг в группу
$youtubeToVk->toGroup('https://www.youtube.com/watch?v=XXXXXX', 'https://vk.com/group_link_here');

// постинг на страницу пользователя
$youtubeToVk->toUser('https://www.youtube.com/watch?v=XXXXXX');

YoutubeDl

Вам полностью доступен инстанс YoutubeDl. Это особенно полезно, если нужно показывать прогресс скачивания видео с VK (код взят из официальной документации к youtube-dl-php):

$youtubeToVk->getYoutubeDl()->onProgress(static function (?string $progressTarget, string $percentage, ?string $size, ?string $speed, ?string $eta, ?string $totalTime): void {
    echo date("H:i:s") . ", $percentage; Size: $size";
    if ($speed) {
        echo "; Speed: $speed";
    }
    if ($eta) {
        echo "; ETA: $eta";
    }
    echo "\n";
});

Если вы используете yt-dlp, пропишите к ней путь:

$youtubeToVk->getYoutubeDl()->setBinPath('/usr/local/bin/yt-dlp');

Как получить список всех видео?

use Dimsog\YoutubeToVk\YoutubeVideoList;

$youtubeVideoList = new YoutubeVideoList("youtube_api_key");

// можно указывать как id канала, так и его userName
$youtubeVideoList->getVideosFromChannel('EmpathyTest');
$youtubeVideoList->getVideosFromChannel('UCKZC###2ND###t-jY###A#hA');

Как скачать все видео с определенного канала?

use Dimsog\YoutubeToVk\YoutubeToVk;
use Dimsog\YoutubeToVk\YoutubeVideoList;

$youtubeVideoList = new YoutubeVideoList("youtube_api_key");
$youtubeToVk = new YoutubeToVk('vk_access_token');

foreach ($youtubeVideoList->getVideosFromChannel('channelId') as $video) {
    $youtubeToVk->toGroup($video, 'https://vk.com/group_link_here');
}

Возможные ошибки

В процессе переноса почти 30 000 видео с Youtube в VK, я столкнулся с некоторыми исключениями:

Uncaught VK\Exceptions\VKClientException: Invalid http status: 500
Uncaught VK\Exceptions\VKApiException: Upload error: Getting upload URL error

Отлавливайте эти ошибки в клиентском коде.

统计信息

  • 总下载量: 13
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-04-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固