开发背景:
抖音账号矩阵系统源码是一款基于PHP语言开发的混剪工具,可以方便地将多个抖音账号的视频素材进行混剪,生成一个新的视频。该工具使用了多线程、协程和异步编程等技术,可以显著提高处理速度,并且支持自动去重和自动合成背景音乐等功能。
1.账号管理模块
该模块实现了对抖音账号的添加、删除、修改和查询等操作,同时支持将多个账号组成一个账号矩阵,便于进行混剪操作。账号信息包括账号名、密码、设备信息、代理设置和登录状态等。
2.视频素材管理模块
该模块用于管理抖音账号上传的视频素材,支持将视频素材按照账号分类管理,方便进行选择和混剪。视频素材信息包括视频标题、描述、封面、时长、大小和上传时间等。
3.混剪功能模块
该模块是整个系统的核心功能,用于将多个账号上传的视频素材进行混剪,生成一个新的视频,并通过各种算法处理去重,保证视频原创性等,并在此基础上接入个智能音乐库,智能标题,话题等以提升视频热度
4. 矩阵号分发功能
矩阵号为多个平台账号积累,如,抖音,快手,百家号等多个主流短视频平台,通过官方特定能力,实现通过服务器帮助用户发布视频的能力
4. 意向线索收集的能力
意向用户指在抖音 app 内与企业主发生互动(包括私信,留资等)的用户。
意向动作类型(action_type)对应含义
action_type |
含义 |
---|---|
1 |
私信 |
2 |
预约组件 |
3 |
个人主页 |
意向动作子类型(action_flag)对应含义,未标明即暂不公开
$daid = $this->request->getIntParam('daid', 0);
//应用类型输出
$where = [
['name' => 'cl_ds_id', 'oper' => '=', 'value' => $this->sid],
];
if (!empty($daid)) {
$where[] = ['name' => 'dl_qyh_uid', 'oper' => '=', 'value' => $daid];
}
$this->output['enter_id'] = $daid;
$sort = ['cl_create_time' => 'DESC'];
$chat_list_model = new App_Model_Douyin_MysqlChatListStorage();
$chat_result = $chat_list_model->getList($where, $this->index, $this->count, $sort);
$intent_model = new App_Model_Douyin_MysqlIntentUserStorage();
#$account_model = new App_Model_Douyin_MysqlDyAccountStorage();
$chat_list = [];
foreach ($chat_result as $item) {
#$account = $account_model->getRowByIdSid($item['cl_qyh_uid'], $this->sid);
$intention = $intent_model->getUserByOpenId($this->sid, $item['cl_from_openid']);
$each = [
'user_nickname' => empty($intention) ? '匿名' : $intention['iu_nickname'],
'user_avatar' => empty($intention) ? parent::TEMPLATE_PLACEHOLDER_IMAGE : $intention['iu_avatar'],
'user_newmsg' => $item['cl_new_text'],
'user_newtime' => date('Y-m-d H:i:s', $item['cl_new_time']),
'user_openid' => $item['cl_from_openid'],
'qyh_uid' => $item['cl_qyh_uid'],
'undo_count' => $item['cl_undo_count'],
];
array_push($chat_list, $each);
}
$this->displayJson($chat_list);
$from_openid = $this->request->getStrParam('from_openid');
$qyh_uid = $this->request->getIntParam('qyh_uid');
$letter_model = new App_Model_Douyin_MysqlLetterStorage();
$detail_result = $letter_model->getChatListOrder($from_openid, $qyh_uid, $this->sid, $this->index, $this->count);
$chat_detail = [];
foreach ($detail_result as $item) {
$each = [
'msg_type' => $item['dl_msg_type'],
'msg_content' => $item['dl_msg_content'],
'msg_time' => date('Y-m-d H:i:s', $item['dl_create_time']),
'send_receive' => intval($item['dl_send_receive']), //1收到的消息,2发送的消息
];
array_push($chat_detail, $each);
}
$account_model = new App_Model_Douyin_MysqlDyAccountStorage();
$qyh_account = $account_model->getRowByIdSid($qyh_uid, $this->sid);
$intent_model = new App_Model_Douyin_MysqlIntentUserStorage();
$from_account = $intent_model->getUserByOpenId($this->sid, $from_openid, $qyh_uid);
$return_data = [
'from_user' => [
'nickname' => empty($from_account) ? '匿名' : $from_account['iu_nickname'],
'avatar' => empty($from_account) ? parent::TEMPLATE_PLACEHOLDER_IMAGE : $from_account['iu_avatar'],
'openid' => $from_openid,
],
'to_user' => [
'nickname' => $qyh_account['da_nickname'],
'avatar' => $qyh_account['da_avatar'],
'qyh_uid' => $qyh_uid,
],
'chat_detail' => $chat_detail
];
$chat_list_model = new App_Model_Douyin_MysqlChatListStorage();
$cl_where = [
['name' => 'cl_ds_id', 'oper' => '=', 'value' => $this->sid],
['name' => 'cl_qyh_uid', 'oper' => '=', 'value' => $qyh_uid],
['name' => 'cl_from_openid', 'oper' => '=', 'value' => $from_openid],
];
$chat_list_model->updateValue(['cl_undo_count' => 0], $cl_where);
$this->displayJson($return_data);