如何下载阿里云视频点播数据

本文涉及的产品
对象存储 OSS,20GB 3个月
云备份 Cloud Backup,100GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: 如何下载阿里云视频点播(VOD)数据

场景

音频和视频可以很生动形象的记录事件的发生,它可以帮助人们回忆往事,也可以帮助人们学习知识,是一个非常实用的媒体。因此有很多的应用衍生而出,比如,抖音、快手、微信视频号等等。

阿里云的视频点播功能为不熟悉音视频技术的开发者提供了很大的便利,通过使用视频点播产品可以快速搭建出一个视频应用,在控制台还可以对视频信息进行管理。阿里云同时提供了存储视频的OSS,如果想要下载视频可以到视频详情页点击播放视频后,通过下载按钮进行下载,但如果是想要批量下载多个视频呢?单个点击效率太低,除此之外,这可能还需要一个比较大空间,为了让客户能自动下载到自己的电脑中,因此需要一个工具来实现这个功能。

方案

由于这个需求是客户自己个人临时需要用的,所以为了更快满足他的需求,方案如下:

RPA:Robotic process automation,机器人流程自动化,是通过软件机器人及人工智能技术为业务实现自动化的一种技术。

在本次方案中采用的的是影刀,大家也可以尝试使用其他的RPA工具。

在实现的过程中,我先将需要导出的视频通过视频点播的API接口生成了播放链接(这个链接我设置了有效期为30天,防止视频太大导致没下载完链接失效了),然后将所有的播放链接导出到 Excel 中,最后再用RPA工具直接读取 Excel 中的数据进行下载。

这里没有在RPA中直接读取数据库的原因是因为RPA工具需要安装在客户的电脑上运行,如果直接访问数据库,那么首先数据库需要开放对客户的网络白名单,同时还需要客户在自己的电脑上安装对应的数据库插件,并配置连接串,这从安全角度来说,明显是不行的。

以下使用PHP语言演示代码:

1、生成视频播放链接

安装扩展包

composer require alibabacloud/vod-20170321
<?php
  use AlibabaCloud\SDK\Vod\V20170321\Vod;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Vod\V20170321\Models\GetPlayInfoRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
//产品图片上传
class VideoExport extends Command
{
  public static function createClient($accessKeyId, $accessKeySecret){
    $config = new Config([
                         // 必填,您的 AccessKey ID
                         "accessKeyId" => $accessKeyId,
                         // 必填,您的 AccessKey Secret
                         "accessKeySecret" => $accessKeySecret
                         ]);
    // Endpoint 请参考 https://api.aliyun.com/product/vod
    $config->endpoint = "vod.cn-shanghai.aliyuncs.com";
    return new Vod($config);
  }
  /**
     * Execute the console command.
     *
     * @return mixed
     */
  public function handle()
  {
    //导出视频数据
    $accessKeyId = "your key";
    $accessKeySecret = 'your secret';
    $client = $this->createClient($accessKeyId,$accessKeySecret);
    $list = app("db")->connection("mysql")->table('tbvideo')->select(
      "video_id"
      "id"
    )->get();
    foreach ($list as $item) {
      $getPlayInfoRequest = new GetPlayInfoRequest([
                                                   "videoId" => $item->video_id,
                                                   "authTimeout" => 2592000,//30天,单位秒
                                                   "formats" => "mp4"//设置播放格式mp4,下载的时候也会是这个格式
                                                   ]);
      $runtime = new RuntimeOptions([]);
      $downloadUrl = "";//下载链接
      $title = "";//下载标题
      try {
        // 复制代码运行请自行打印 API 的返回值
        $ret = $client->getPlayInfoWithOptions($getPlayInfoRequest, $runtime);
        $downloadUrl = $ret->body->playInfoList->playInfo[0]->playURL;
        $title = $ret->body->videoBase->title;
      }
      catch (\Exception $error) {
        echo $error->message;
      }
      app("db")->connection("mysql")->table('tbvideo')->where("id",$item->id)
        ->update(["download_url"=>$downloadUrl,"title" => $title]);
    }
  }
}

2、RPA下载

以上就是批量下载视频点播的过程,如有更好的方法,欢迎交流。

相关文章
|
6月前
|
应用服务中间件 API 开发工具
阿里云视频点播功能
阿里云视频点播功能
74 0
|
6月前
|
NoSQL Java 微服务
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-3
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
205 1
|
6月前
|
前端开发 NoSQL easyexcel
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-2
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
163 0
|
6月前
|
NoSQL 应用服务中间件 对象存储
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-1
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
135 0
|
11月前
|
Web App开发 存储 编解码
|
NoSQL Java Nacos
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-3
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
218 0
|
前端开发 NoSQL easyexcel
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-2
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
191 0
|
easyexcel Java 应用服务中间件
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-1
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
131 0
|
存储 编解码 安全
阿里云视频点播简介和购买流程
阿里云视频点播是阿里巴巴集团旗下的一项强大的视频云服务,为用户提供在线视频上传、存储、转码、播放等全方位的视频解决方案。作为中国最大的云计算服务提供商,阿里云视频点播在视频领域拥有丰富的技术实力和经验,为用户提供高效、可靠、安全的视频服务。
|
存储 编解码 API
阿里云视频点播VoD
阿里云视频点播VoD
558 0