抖音SEO矩阵管理系统源码开发分享及搭建流程

抖音seo矩阵管理系统介绍及开发背景

抖音seo矩阵管理系统是基于抖音开放平台研发的集账号管理、视频创作。视频发布、数据统计、线索收集等为一体的短视频营销SaaS工具,致力于为通过技术为企业营销赋能。

短视频自媒体时代,各大中小企业营销方式发生了巨大的转变,从传统的“双微”模式,到现在的“南抖北快”,凡是具体流量的地方,必然少不了各大企业,短视频的巨大流量,也成为了企业争相逐鹿的新战场。面对企业巨大的营销需求,营销工具的开发与转变也变的十分重要。

开发要求及实现流程

Scope: video.create 需要申请权限 需要用户授权 该接口用于上传视频文件到文件服务器,获取视频文件video_id(该 ID 为加密后的 ID)。该接口适用于抖音

注意:

  • 抖音的OAuth API以https://open.douyin.com/开头。
  • 超过50m的视频建议采用分片上传,可以降低网关超时造成的失败。超过128m的视频必须采用分片上传。视频总大小4GB以内。单个分片建议20MB,最小5MB。

视频文件要求:

  • 为了更好的观看体验,推荐上传16:9,分辨率为720p(1280x720)及以上的竖版视频。
  • 支持常用视频格式,推荐使用 mp4 、webm。
  • 视频文件大小不超过128M,时长在15分钟以内。
  • 带品牌logo或品牌水印的视频,会命中抖音的审核逻辑,有比较大的概率导致分享视频推荐降权处理/分享视频下架处理/分享账号被封禁处理。强烈建议第三方应用自行处理好分享内容中的不合规水印。
  • 视频审核逻辑与端上一致。
  • 3528891ae4174996bc9fba67d210d6dd.png

部分功能实现流程展示——剪辑

工作总台,所有短视频制作的数据总览统计,以及其他50+其他辅助运营工具在线跳转实用

00a4e1ed89c9435caeeafedb8f96e1f4.png

 1. 创建自己的视频计划(任务)

cdd4e0dfd65544768bef5494c7766b5d.png

2. 批量根据所选模式上传所需要的素材

91a736b7be4349ff861cd03600b02265.png

3. 可视化选择横屏、竖屏、标题,内容,文案布局的预设设定

4. 多个窗口投放入口,选择效果好的视频一键多账号,多平台发布投放

5. 投放数据分析,视频分析,点赞,粉丝趋势,关注,回复,意向线索概览分析 

代码展示

 //标题、文案配置参数
        $title_font     = $this->request->getStrParam('title_font');
        $title_size     = $this->request->getIntParam('title_size', 12);
        $title_color    = $this->request->getStrParam('title_color');
        $title_position = $this->request->getIntParam('title_position', 80);
        $write_font     = $this->request->getStrParam('write_font');
        $write_size     = $this->request->getIntParam('write_size', 14);
        $write_color    = $this->request->getStrParam('write_color');
        $write_position = $this->request->getIntParam('write_position', 340);

        $video_bg   = $this->request->getIntParam('video_bg', 1);
        $sigma_val  = $this->request->getStrParam('sigma');
        $color_bg   = $this->request->getArrParam('color');
        $color_list = [];
        foreach ($color_bg as $color => $val) {
            array_push($color_list, $color);
        }
        $select_type    = $this->request->getIntParam('select_type', 1);
        $vcn    = $this->request->getArrParam('a_vcn');
        $bgm    = $this->request->getIntParam('bgm', 20);
        $vcn_on = [];
        foreach ($vcn as $key => $val) {
            if ($val == 'on') {
                $vcn_on[$key]   = $key;
            }
        }
        if ($video_duration > 120) $this->displayJsonError('视频长度不建议超过2分钟');
        if ($video_use < 3 || $video_use > 60) {
            $this->displayJsonError('场景或组合数,需介于3-60');
        }
        $video_cfg  = [
            'title_font'    => $title_font,
            'title_size'    => $title_size,
            'title_color'   => $title_color,
            'title_position'=> $title_position,
            'write_font'    => $write_font,
            'write_size'    => $write_size,
            'write_color'   => $write_color,
            'write_position'=> $write_position,
            'select'    => $select_type,
            'vcn'   => $vcn_on,
            'yushu' => 50,
            'yinliang'  => 50,
            'bgm'   => $bgm,
            'videobg'   => $video_bg,
            'bgcolor'   => $color_list,
            'sigma'     => $sigma_val,
        ];
        //主表数据
        $updata = [
            'dv_title'      => $video_name,
            'dv_video_mode' => $video_mixed,
            'dv_video_layout'   => $video_layout,
            'dv_video_shot' => $video_shot,
            'dv_video_count'=> $video_count,
            'dv_video_use'  => $video_use,
            'dv_video_duration'     => $video_duration,
            'dv_video_open' => 0,   //随机视频开幕
            'dv_video_transition'   => $video_transition,
            'dv_video_filter'       => $video_filter,
            'dv_video_effect'       => $video_effect,
            'dv_de_id'  => $select_type,//字幕配音形式
            'dv_use_only'   => $use_only,
            'dv_use_platform'   => json_encode($platform_list),
        ];

        if (empty($dv_id)) {//新增
            $indata = [
                'dv_s_id'       => $this->sid,
                'dv_platform'   => json_encode($video_cfg),
                'dv_create_time'=> time(),
            ];
            $indata = array_merge($updata, $indata);
            $ret    = $video_model->insertValue($indata);
        } else {//编辑
            $video_item = $video_model->getRowByIdSid($dv_id, $this->sid);
            if (empty($video_item)) {
                $this->displayJsonError('参数错误');
            }
            $curr_platform  = json_decode($video_item['dv_platform'], 1);
            $curr_platform  = is_null($curr_platform) ? [] : $curr_platform;
            $updata['dv_platform']  = json_encode(array_merge($curr_platform, $video_cfg));
            $ret    = $video_model->updateById($updata, $dv_id);
            //切换模式或更改场景组合数,则需要重新生成组合
            if($video_item['dv_video_mode'] != $video_mixed || $video_item['dv_video_use'] != $video_use){
                //清空素材排列组合及缓存视频
                $VideoMaterialPailie_model = new App_Model_Douyin_MysqlVideoMaterialPailieStorage();
                $VideoMaterialPailie_model->clearPailie($dv_id);
                //清除素材
                $video_meta_model   = new App_Model_Douyin_MysqlVideoMaterialStorage();
                $vm_where   = [
                    ['name' => 'dvm_ds_id', 'oper' => '=', 'value' => $this->sid],
                    ['name' => 'dvm_dv_id', 'oper' => '=', 'value' => $dv_id],
                ];
                $video_meta_list    = $video_meta_model->getList($vm_where, 0, 0);
                foreach ($video_meta_list as $item) {
                    //新旧模式相同,并且视频对应场景不大于新的场景数
                    if ($item['dvm_video_mixed_mode'] == $video_mixed && $item['dvm_scene'] <= $video_use) {
                        continue;
                        //与新模式不同,则清除
                    }
                    //场景顺序组合,减少了场景数
                    /*
                    if ($item['dvm_scene'] > $video_use) {

                    }
                    */
                    //智能混剪模式1,删除视频素材
                    if ($item['dvm_video_mixed_mode'] == 1 && $item['dvm_material_type'] == 1) {
                        $file_path  = PLUM_DIR_ROOT.$item['dvm_material_content'];
                        if (is_file($file_path)) {
                            unlink($file_path);
                        }
                    }
                    //视频素材删除ts素材
                    if ($item['dvm_material_type'] == 1) {
                        $file_path  = PLUM_DIR_ROOT.$item['dvm_material_videots'];
                        if (is_file($file_path)) {
                            unlink($file_path);
                        }
                    }

功能开发目录:

1. 支持多账号多平台一键 授权管理

2.支持矩阵视频批量剪辑,批量发布

3. 多平台关键词布局,提升企业及产品曝光

4. 评论区关键词自动回复,意向线索智能挖掘

5. 多账号投放数据统计,省时省力

6. 留资线索,私信线索,意向线索,智能收集

7. 7*24小时智能在线客服,实时接待提升转化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值