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

news2024/10/5 17:23:52

目录

产品功能亮点

产品介绍及开发背景

开发要求及实现流程


产品功能亮点

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

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

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

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

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

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

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

产品介绍及开发背景

云罗企客短视频矩阵系统主要是云罗科技基于抖音开放平台研发的集账号管理、视频创作。视频发布、数据统计、线索收集等为一体的短视频营销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或品牌水印的视频,会命中抖音的审核逻辑,有比较大的概率导致分享视频推荐降权处理/分享视频下架处理/分享账号被封禁处理。强烈建议第三方应用自行处理好分享内容中的不合规水印。
  • 视频审核逻辑与端上一致。

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

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

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

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

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);
                        }
                    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/575546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RTOS专栏(一) —— rt-thread简单介绍和qemu使用

本期主题&#xff1a; 简单介绍rt-thread介绍qemu和rt-thread怎么配合使用qemu的简单例子 rt-thread & qemu 1.rt-thread介绍2.qemu介绍3.搭建rt-thread和qemu开发环境4.简单例子 1.rt-thread介绍 RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统&#xff0…

《操作系统》期末主观题梳理

操作系统简答题 文章目录 操作系统简答题第一章第二章第三章第四章第五章第六章第七章第八章第九章 第一章 在计算机系统上配置OS(operating system, 操作系统)的目标是什么?作用主要表现在哪几个方面? 在计算机系统上配置OS, 主要目标是实现&#xff1a;方便性、有效性、可…

Error: Flash Download failed - Target DLL has been cancelled

文章目录 背景参考 背景 在使用keilv5进行STM32开发时&#xff0c;配置用JLink进行文件烧录&#xff0c;出现如下错误&#xff1a; 查阅资料&#xff0c;是因为Keil未识别烧录工具&#xff0c;需要进行下面的操作&#xff1a; 1.打开工程配置窗口&#xff0c;点开Debug选项卡…

并查集专题

⭐️前言⭐️ 本篇文章主要介绍与并查集相关的题目。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博主…

阿里「通义千问」内测详细使用体验

名人说&#xff1a;一花独放不是春&#xff0c;百花齐放花满园。——《增广贤文》 作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、简要介绍二、分类问题测试0️⃣自我介绍1️⃣生成内容2️⃣回答问题3️⃣对话协…

springboot+vue大学生租房系统(java项目源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的大学生租房系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌…

太稳了,支付系统就该这么设计

支付中心系统对内为各个业务线提供统一的支付、退款等服务&#xff0c;对外对接三方支付或银行服务实现资金的流转。如下图&#xff1a; 大部分公司基本都是这样的架构&#xff0c;主要有以下几方面的优点&#xff1a; 形成统一支付服务&#xff0c;降低业务线接入成本及重复研…

数据结构-树,森连,二叉树之间的转换

树》二叉树 1.给兄弟加线 2.给出长子外的孩子去线 3.层次调整 &#xff08;整体向左偏移45&#xff09; eg&#xff1a; 1.给兄弟加线&#xff1a; 2.给处长紫外的孩子去线 3.层次调整&#xff0c;整体向左偏移45 &#xff08;由兄弟转化来的孩子都是右节点&#xff0c…

DJ6-5 目录管理

目录 6.5.1 文件控制块和索引结点 1、文件控制块 FCB 2、索引节点 6.5.2 简单文件目录 1、单级目录结构 2、二级目录结构 3、树形目录结构 6.5.3 目录查询技术 1、线性检索法 2、Hash 方法 文件目录&#xff1a;是指由文件说明索引组成的用于文件检索的特殊文件…

chatgpt赋能python:Python文件复制到指定文件夹——实现简单又高效的文件操作

Python 文件复制到指定文件夹——实现简单又高效的文件操作 如今&#xff0c;人们对于数据的需求越来越多&#xff0c;因此在编程过程中&#xff0c;对于文件的操作也变得越来越重要。而Python作为一种高效而简洁的编程语言&#xff0c;其文件操作也是十分出色的。本文将会带领…

C/C++ ---- 内存管理

目录 C/C内存分布 常见区域介绍 经典习题&#xff08;读代码回答问题&#xff09; 选择题 填空题 C语言内存管理方式 malloc/free calloc realloc C内存管理方式 new和delete操作内置类型 new和delete操作自定义类型 operator new和operator delete函数 new和dele…

Linux环境变量总结

Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后&#xff0c;都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。 设置环境变量的方法 对所有用户生效的永久性变量 这类变…

K8s进阶6——pod安全上下文、Linux Capabilities、OPA Gatekeeper、gvisor

文章目录 一、Pod安全上下文1.1 配置参数1.2 案例11.2.1 dockerfile方式1.2.2 pod安全上下文方式 1.3 案例21.4 Linux Capabilities方案案例1案例2 二、pod安全策略2.1 PSP&#xff08;已废弃&#xff09;2.1.1 安全策略限制维度 2.2 OPA Gatekeeper方案2.2.1 安装Gatekeeper2.…

百度搜索迎来奇点 大模型掀起代际变革

每一轮技术革命掀起的浪潮&#xff0c;大部多数人还没来得及思考或者布局&#xff0c;已经消失于海浪中。机会是给有准备的人的&#xff0c;要发现新兴技术的亮点&#xff0c;并立足自身去积极拥抱它&#xff0c;最后转化为自身前进的动力&#xff0c;跨越周期&#xff0c;迎来…

网站出现403 Forbidden错误的原因以及怎么解决的方法

这几天刚接手一批新做的网站&#xff0c;在访问网站的时候&#xff0c;会时不时的出现403 Forbidden错误&#xff0c;浏览器会给出403 Forbidden错误提示&#xff0c;在打开Access Error中列出的URL之后, 出现以下错误&#xff1a; 403 Forbidden Access to this resource on…

SAP工具箱 批量下载指定表数据到EXCEL

点击蓝字 关注我们 一 前言 下载指定表内容到指定的EXCEL是一个比较简单的程序.但仔细考虑这个程序,还是可以在细节上找出一些关注点 多表内容同时下载,每个表生成一个文件多表选择时,先查看表的记录数大表下载时,拆分下载拆分到不同的文件中拆分到同一个文件中的不同的工作表下…

windows server 2016 ftp搭建详细教程

一.什么是FTP&#xff1f; FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议&#xff0c;使得主机间可以共享文件。 接下来我给大家分享快速搭建FTP服务器的方法。 二.安装FTP服务器 1.进入服务器系统打开“服务器管理器”&#xff0c;点击“添加角色和功…

【JavaSE】Java基础语法(二十三):递归与数组的高级操作

文章目录 1. 递归1.1 递归1.2 递归求阶乘 2. 数组的高级操作2.1 二分查找2.2 冒泡排序2.3 快速排序2.4 Arrays (应用) 1. 递归 1.1 递归 递归的介绍 以编程的角度来看&#xff0c;递归指的是方法定义中调用方法本身的现象把一个复杂的问题层层转化为一个与原问题相似的规模较…

C语言2:说心里话

描述 分两次从控制台接收用户的两个输入&#xff1a;第一个内容为“人名”&#xff0c;第一个内容为“心里 话”。 然后将这两个输入内容组成如下句型并输出出来&#xff1a; 1.(人名&#xff09;&#xff0c;I want to say&#xff0c;(心里话 2. 输入输出示例: 输入&#xff…

MybatisPlus SpringCloud Docker RabbitMQ ElasticSearch、Redis高级技术,分布式事务的综合应用

一、配置SpringCloud中的网关 1. nginx搭建 搭建好了启动nginx.exe即可出静态页面图 1.网关搭建 server:port: 10010 spring:application:name: api-gatewaycloud:nacos:server-addr: localhost:8848gateway:routes: #用户服务的路由&#xff1a;什么样的请求&#xff0c;让网…