抖音矩阵系统源码部署技术分享--基于抖音开放平台

开发概述

开放平台基于开发者诉求和相关平台规则,提供了两种开放模式:能力开放、行业开放。

自研开发者介绍

自研开发者是指有自己的自营业务,或是有多种加盟方的角色,可以基于用户需求,提供完整的技术解决方案。

技术开发布局

通过持续的技术创新和用户需求分析,我们将更加注重个性化开发本套短视频矩阵源码系统,目前市面上涵盖的基本功能有视频剪辑、绑定发布、智能回复、数据统计等一些基本的功能。此外我们在开发的时候做了很多优化处理,服务器集群化、并级、1080p清晰度等,还站在市场的角度开发了(抖音小程序、本地生活服务,以及打通了手机端布局开发)

源码部署及搭建分享

相对于其他系统,该系统得开发及部署难度主要在各平台官方应用权限的申请上,据小编了解,目前抖音短视频平台部分权限内侧名额已满,巧妇难为无米之炊,在做相关程序开发前还是要先确保拿到各项开发权限的。

部署环境搭建

  1.  在您的云服务器上安装Python解释器。您可以使用以下命令来检查是否已安装Python:

    python -V
    

    如果没有安装Python,您可以使用以下命令来安装:

    sudo apt-get update
    sudo apt-get install python
    
  2. 安装pip,它是Python的包管理器。您可以使用以下命令来安装:

    sudo apt-get install python-pip
    
  3. 安装virtualenv,它是Python的虚拟环境。这将帮助您在同一台计算机上使用不同版本的Python。

    pip install virtualenv
    
  4. 创建一个新的虚拟环境。

    virtualenv venv
    
  5. 激活虚拟环境。

    source venv/bin/activate
    
  6. 安装所需的依赖项。

代码开发示例

场景:当普通对象属性更改后,触发所绑定的 onChange 回调;

思路:能更改属性的有 set 和 deleteProperty 这两个 trap,在其中调用 onChange 方法即可

请求样例

curl --location --request GET 'https://open.douyin.com/item/comment/list/?open_id=ba253642-0590-40bc-9bdf-9a1334b94059&cursor=0&count=10&item_id=@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==&sort_type=time' \
--header 'access-token: act.1d1021d2aee3d41fee2d2add43456badMFZnrhFhfWotu3Ecuiuka27L56lr' \

响应样例:

{
  "extra": {
    "sub_description": "",
    "logid": "202008121419360101980821035705926A",
    "now": 1597213176393,
    "error_code": 0,
    "description": "",
    "sub_error_code": 0
  },
  "data": {
    "cursor": 1,
    "error_code": 0,
    "description": "",
    "has_more": true,
    "list": [
      {
        "top": true,
        "comment_id": "",
        "comment_user_id": "",
        "content": "回复内容",
        "create_time": 1607399832,
        "digg_count": 647,
        "reply_comment_total": 12
      }
    ]
  }
}

代码展示样例

* 创建工程项目
     */
    public function createProjectAction() {
        $this->useLayout('dydqtshoppc-head.html');
        $id     = $this->request->getIntParam('id');

        //获取视频信息
        $video_model    = new App_Model_Douyin_MysqlVideoStorage();
        $video_info     = $video_model->getRowByIdSid($id, $this->sid);
        $use_platform   = empty($video_info['dv_use_platform']) ? [] : json_decode($video_info['dv_use_platform'], 1);

        if (!empty($video_info)) {
            $video_cfg  = empty($video_info['dv_platform']) ? null : json_decode($video_info['dv_platform'], 1);
        }

        //视频混剪模式
        $video_mixed_mode = plum_parse_config('project_mixed_mode','dydqt/project');

        $this->output['video_info']     = $video_info;
        $this->output['use_platform']   = $use_platform;
        $this->output['video_cfg']      = empty($video_cfg) ? null : $video_cfg;
        $this->output['video_mixed_mode']   = $video_mixed_mode;
        $this->output['font_map']   = (new App_Plugin_Ffmpeg_VideoPlugin())->getFontMap();
        $color_list = plum_parse_config('color_list', 'config');
        $this->output['color_list'] = $color_list;
        //火山引擎、腾讯云配音
        $huoshan_vcn    = plum_parse_config('hsyq_vcn', 'system');
        $tencent_vcn    = plum_parse_config('txy_vcn', 'system');
        $this->output['audio_vcn']  = empty($tencent_vcn) ? $huoshan_vcn : $tencent_vcn;
        $this->output['platform_list']  = plum_parse_config('platform_list', 'dydqt/project');
        $this->displaySmarty('dydqtshoppc/video/create-project.tpl');
    }   

 /*
     * 添加/编辑视频
     */
    public function addVideoAction(){
        $this->useLayout('dydqtshoppc-head.html');
        $id     = $this->request->getIntParam('id');

        //获取视频信息
        $Video_model    = new App_Model_Douyin_MysqlVideoStorage();
        $video_info     = $Video_model->getRowByIdSid($id, $this->sid);

        //视频混剪模式
        $video_mixed_mode = plum_parse_config('project_mixed_mode','dydqt/project');

        $this->output['video_info']     = $video_info;
        $this->output['video_mixed_mode']   = $video_mixed_mode;
        $this->displaySmarty('dydqtshoppc/video/addVideo.html');
    }
    /*
     * 保存工程配置
     */
    public function saveItemConfigAction() {
        $dv_id  = $this->request->getIntParam('dv_id');
        unset($_REQUEST['q']);
        unset($_REQUEST['dv_id']);
        //获取视频信息
        $video_model    = new App_Model_Douyin_MysqlVideoStorage();
        $video_info     = $video_model->getRowByIdSid($dv_id, $this->sid);
        if (empty($video_info)) {
            $this->displayJsonError('参数错误');
        }
        $curr_platform  = json_decode($video_info['dv_platform'], 1);
        $curr_platform  = is_null($curr_platform) ? [] : $curr_platform;
        //发音人合集
        if (isset($_REQUEST['a_vcn'])) {
            $vcn    = $this->request->getStrParam('a_vcn');
            $vcn    = explode(',', $vcn);
            unset($_REQUEST['a_vcn']);
            $curr_platform['vcn']   = array_combine($vcn, $vcn);
        }








猜你喜欢

转载自blog.csdn.net/buda_l/article/details/131594581