一、开发要求及实现流程
:Scope: video.create 需要申请权限 需要用户授权 该接口用于上传视频文件到文件服务器,获取视频文件video_id(该 ID 为加密后的 ID)。该接口适用于抖音。
注意:
抖音的OAuth API以https://open.douyin.com/开头。超过50m的视频建议采用分片上传,可以降低网关超时造成的失败。超过128m的视频必须采用分片上传。视频总大小4GB以内。单个分片建议20MB,最小5MB。\n视频文件要求:为了更好的观看体验,推荐上传16:9,分辨率为720p(1280x720)及以上的竖版视频。支持常用视频格式,推荐使用 mp4 、webm。
视频文件大小不超过128M,时长在15分钟以内。带品牌logo或品牌水印的视频,会命中抖音的审核逻辑,有比较大的概率导致分享视频推荐降权处理/分享视频下架处理/分享账号被封禁处理。强烈建议第三方应用自行处理好分享内容中的不合规水印。\n视频审核逻辑与端上一致。
二、核心功能简述
1.ai视频批量剪辑
2.多平台多账号批量管理
3.智能客服7*24接待,提升转化
4.经营留资工具批量挂载
5.数据统计与分析
6. 文字转语音多模式选择
三、源代码 php redis贯穿语言
PHP Redis是一个高效的key-value存储数据库,它基于内存存储和处理,性能极高。PHP Redis支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。此外,它还支持事务、发布/订阅、Lua脚本等高级功能,并提供了可靠的持久化选项。PHP Redis广泛应用于缓存、消息队列、计数器等场景,是一个非常值得学习和使用的工具。
四:部分程序配置文档及说明:
1. alipay.php
该文件主要是对接阿里云接口的配置信息,包含支付信息,退款信息,天气预报配置,快递查询,获取新闻内容,支付宝小程序等
2. app.php
该文件主要是系统的配置信息,包含名称,域名,系统环境,有赞的信息,高德地图的信息等
3. bilibili.php
该文件是对接哔哩哔哩的接口配置,包含Key,secret,域名等
4. device.php
该文件为极氪设备配置,包含激活码有效期,激活码可用版本序列,客户端当前最新版本,绑定账号计划(抖音,快手,小红书),自动化任务列表等信息
5. jike.php
该文件为极氪特殊配置,包含点评开放平台,图片类别,车型分类,小程序路径,店铺列表网关,活动类型等信息
6. kuaishou.php
该文件为对接快手开放平台的配置信息,包含app_id,app_secret,域名,开放权限等
7. douyin.php
该文件为对接抖音开放平台的配置信息,包含网站配置(client_key,client_secret,域名,开放权限等个人账号和企业账号),头条应用权限,西瓜应用权限,账号分类,发送类型等信息
部分开发者文档示例说明
1.
2.
3.
代码示例:
$breadcrumbs = [
['title' => 'AI视频创意', 'link' => '#'],
['title' => '开始创作', 'link' => ''],
];
$this->buildBreadcrumbs($breadcrumbs);
//搜索专用
$keyword_type = $this->request->getStrParam('keyword_type');
$keyword = $this->request->getStrParam('keyword');
$this->output['keyword_type'] = $keyword_type;
$this->output['keyword'] = $keyword;
$dv_id = $this->request->getIntParam('dv_id'); //视频工程ID
$this->output['dv_id'] = $dv_id;
$type = $this->request->getIntParam('type', 0); //素材类型
$scene = $this->request->getIntParam('scene', 1);
$this->output['scene'] = $scene;
//获取视频信息
$video_model = new App_Model_Douyin_MysqlVideoStorage();
$video_info = $video_model->getRowByIdSid($dv_id, $this->sid);
if (empty($video_info)) {
plum_redirect_with_msg('视频创意工程不存在');
}
$mixed_video_mode = $video_info['dv_video_mode'];
if (in_array($mixed_video_mode, [11])) { //智能图片组合
$type = in_array($type, [0, 1]) ? 3 : $type; //默认为图片素材类型
} else {
$type = in_array($type, [0, 3]) ? 1 : $type; //默认为视频素材类型
}
//获取素材列表
$where = [
['name' => 'dvm_ds_id', 'oper' => '=', 'value' => $this->sid],
['name' => 'dvm_dv_id', 'oper' => '=', 'value' => $dv_id],
['name' => 'dvm_material_type', 'oper' => '=', 'value' => $type]
];
//视频类型,区分混剪模式
if ($type == 1) {
$where[] = ['name' => 'dvm_video_mixed_mode', 'oper' => '=', 'value' => $video_info['dv_video_mode']];
}
if (!empty($keyword_type)) {
$where[] = ['name' => $keyword_type, 'oper' => 'like', 'value' => "%{$keyword}%"];
}
//智能场景组合,视频素材加场景值筛选
if ($type == 1 && $mixed_video_mode == 4) {
$scene_model = new App_Model_Douyin_MysqlVideoSceneStorage();
$scene_count = $scene_model->getCountByDvid($dv_id);
if ($scene_count == 0 && $video_info['dv_video_use'] > 0) {
for ($i = 1; $i <= $video_info['dv_video_use']; $i++) {
$indata = [
'dvs_ds_id' => $this->sid,
'dvs_dv_id' => $dv_id,
'dvs_name' => "场景" . $i,
'dvs_duration' => $video_info['dv_video_shot'] * 1000,
'dvs_