全民爱拍火山抖音等小视频自动上传辅助工具

modentime modentime     2022-12-14     617

关键词:

       当下小视频火得不得了,于是研究了一下排名前十得小视频平台,比如爱拍,火山,抖音之类的。发现每个平台的模式都比较类似,于是就想一个视频是不是可以自动发布到多个平台。是不是可以自动发布多个账号下的多个视频?经过研究,发现确实是可以这么玩的,于是就写了个小工具。在此记录一下。有需要验证的可以下载打包好的执行文件:

链接:https://pan.baidu.com/s/1AW8RrRdWC2ip4cGV01dxwA
提取码:ge2z

部分源码如下:

import sys
import re
import time
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QApplication, QMainWindow
import videoupload
import uploadprocess
import openpyxl
from openpyxl import Workbook
#import mutiTask
import logging
#import filerename

class FileUploadThread(QThread):
    signal = pyqtSignal(str, int)
    def __init__(self, parent=None,fileName=‘‘, resultFile=‘‘, taskIndex=1):
        super(FileUploadThread,self).__init__(parent)
        self.fileName = fileName
        self.resultFile = resultFile
        self.taskIndex = taskIndex
        
    def run(self):
        localTaskIndex = self.taskIndex
        localFileName = self.fileName
        self.signal.emit(‘开始上传 ‘ + localFileName, localTaskIndex)
        self.uploadFile()
        self.signal.emit(‘上传完成 ‘ + localFileName, localTaskIndex)
        ‘‘‘k = 1
        while True:
            self.signal.emit(‘上传完成 ‘ + str(k), localTaskIndex)
            k = k + 1
            time.sleep(5)‘‘‘
        
    def is_number(self, num):
        pattern = re.compile(r‘^[-+]?[-0-9]d*.d*|[-+]?.?[0-9]d*$‘)
        result = pattern.match(str(num))
        if result:
            return True
        else:
            return False
            
    def uploadFile(self):
        localTaskIndex = self.taskIndex
        localAccountFile = self.fileName
        localResultFile = self.resultFile
        uploadItem = uploadprocess.UploadProcess()
        accounts = uploadItem.getAccounts(localAccountFile)
        resultInfo = uploadItem.getResultInfo(localResultFile)
        resultFilePath = localAccountFile[0:localAccountFile.rindex(‘.‘)]
        #将上传账号的记录保存下来
        fileName = ‘result-‘ + time.strftime(‘%Y%m%d%H%M‘, time.localtime(time.time())) + ‘.xlsx‘
        resultFilePath = resultFilePath + fileName
        wb = Workbook()
        sheet = wb.active    
        k = 1
        if uploadItem.firstPageOpen():
            for i in range(0, len(accounts)):
                accountInfo = accounts[i][0]
                if self.is_number(accountInfo):
                    accountInfo = str(int(accounts[i][0]))
                self.signal.emit(‘开始登陆 ‘ + accountInfo, localTaskIndex)
                
                uploadedLastNum = 0
                try:
                    if((len(resultInfo) > 0) and (len(resultInfo[accountInfo]) > 0)):
                        print(‘in function‘)
                        uploadedLastNum = int(resultInfo[accountInfo])
                except:
                    self.signal.emit(‘上传结果文件内容有异常‘,localTaskIndex)
                    break
                filePaths = uploadItem.getUploadFiles(accounts[i][10][8:], uploadedLastNum)
                if len(filePaths) > 0:
                    k = k + 1
                    #0 -- username, 1 -- password, 10 -- 文件路径, 3 -- 默认评论
                    uploadItem.loginAccount(accountInfo, accounts[i][1])
                    uploadedNum = uploadItem.uploadForAccount(filePaths, accounts[i][3],self.signal, localTaskIndex)
                    self.signal.emit(accountInfo + ‘ 完成上传 ‘ + str(uploadedNum) + ‘ 个视频文件‘,localTaskIndex)
                    #self.saveUploadResult(i+1, accounts[i][0], uploadedNum)
                    uploadItem.logoutAccount()
                    sheet[‘A‘ + str(k)] = accountInfo
                    sheet[‘B‘ + str(k)] = str(uploadedNum)
            uploadItem.finishUpload()
        else:
            self.signal.emit(‘切换登录方式失败‘,localTaskIndex)
        wb.save(resultFilePath)
        self.signal.emit(‘上传完成,结果存储在文件:‘ + resultFilePath,localTaskIndex)

class WindowResourceInit(QMainWindow):
    fileName = ‘‘
    resultFile = ‘‘
    taskIndex = 1
    windowList = []
    def windowInit(self):
        ui.btnFileChoose.clicked.connect(self.getAccountFile)
        ui.btnStart.clicked.connect(self.startUpload)
        ui.btnResultChoose.clicked.connect(self.getResult)
        #ui.actionVideoRename.triggered.connect(self.fileRenameAction)

    def getAccountFile(self):
        self.fileName, fileType = QFileDialog.getOpenFileName(self, "打开账号文件", "C:\", "Excel 文件 (*.xlsx)")
        ui.txtFilePath.setText(str(self.fileName))        
        ui.btnStart.setEnabled(True)
        
    def getResult(self):
        self.resultFile, fileType = QFileDialog.getOpenFileName(self, "打开结果文件", "C:\", "Excel 文件 (*.xlsx)")
        ui.txtLastResult.setText(self.resultFile)
    
    def startUpload(self):
        try:
            ui.btnStart.setEnabled(False)
            if self.taskIndex > 1:
                #新建个Tab,result status
                tabName = ‘tab_‘ + str(self.taskIndex)
                gridName = ‘gridLayout_‘ + str(self.taskIndex + 1)
                statusName = ‘txtStatus_‘ + str(self.taskIndex)
                tabNameObj = QtWidgets.QWidget()
                tabNameObj.setObjectName(tabName)
                gridNameObj = QtWidgets.QGridLayout(tabNameObj)
                gridNameObj.setObjectName(gridName)
                statusNameObj = QtWidgets.QTextEdit()
                font = QtGui.QFont()
                font.setPointSize(15)
                statusNameObj.setFont(font)
                statusNameObj.setObjectName(statusName)
                statusNameObj.append(‘Init Logs‘)
                gridNameObj.addWidget(statusNameObj, 0, 0, 1, 1)
                ui.tabStatus.addTab(tabNameObj, "")
                ui.tabStatus.setCurrentIndex(self.taskIndex - 1)
                _translate = QtCore.QCoreApplication.translate
                ui.tabStatus.setTabText(ui.tabStatus.indexOf(tabNameObj), _translate("MainWindow", ‘任务‘ + str(self.taskIndex)))
            #ui.txtStatus.setText(‘‘)
            #新开一个线程来做上传
            self.thread = FileUploadThread(self, self.fileName, self.resultFile, self.taskIndex)
            self.thread.signal.connect(self.threadCallback)
            self.thread.start()    # 启动线程
            self.taskIndex = self.taskIndex + 1
        except Exception as e:
            print(e)
            logger = logging.getLogger()  # 创建logging对象
            # 使用.basicConfig打开当前目录下的LOG.log文件,并设置log的显示格式(即在文档中看到的格式)
            logging.basicConfig(filename=‘../LOG.log‘,format=‘[%(asctime)s-%(filename)s-%(levelname)s:%(message)s]‘, level=logging.DEBUG,filemode=‘a‘, datefmt=‘%Y-%m-%d%I:%M:%S %p‘)
            # 根据日志输出需要在相应的函数模块中设定日志的如下属性:
            logging.info = str(e)
            #需要把信息记录到日志文件
        ‘‘‘uploadItem = uploadprocess.UploadProcess()
        accounts = uploadItem.getAccounts(self.fileName)
        if uploadItem.firstPageOpen():
            for i in range(0, len(accounts)):
                #0 -- username, 1 -- password, 10 -- 文件路径, 3 -- 默认评论
                uploadItem.loginAccount(accounts[i][0], accounts[i][1])
                filePaths = uploadItem.getUploadFiles(accounts[i][10][8:])
                uploadedNum = uploadItem.uploadForAccount(filePaths, accounts[i][3])
                self.saveUploadResult(i+1, accounts[i][0], uploadedNum)
                uploadItem.logoutAccount()
            uploadItem.finishUpload()‘‘‘
            
    def threadCallback(self, data, taskIndex):
        if taskIndex == 1:
            ui.txtStatus.append(data)
        else:
            txtName = ‘txtStatus_‘ + str(taskIndex)
            print(txtName)
            print(ui.tabStatus.findChild(QTextEdit, txtName))
            ui.tabStatus.findChild(QTextEdit, txtName).append(data)

  

  

小视频-上传视频

 为什么做小视频?快手,抖音,小红书都是我们熟知的小视频。小视频的诞生可以获取更多的流量。 .pyclassUpload_img(APIView):#kindeditor上传方法defpost(self,request):item=file=request.FILES.get(‘file‘)orderno=datetime.datetime.now()orderno=str 查看详情

产品分析:普通人如何通过火山小视频赚钱

最近火山小视频突然爆红,大有突袭快手之意。对于我等吃瓜群众而言,最关注的是这里面是否有潜藏的赚钱机会。如果你对这个问题感兴趣,且听我一一道来。一、火山小视频火到什么程度?要想赚钱,首先要有流量和关注度... 查看详情

头条系定向流量包含哪些app

参考技术A头条系定向流量包含今日头条、抖音、火山小视频、懂车帝、悟空问答等。头条系定向流量包含抖音、今日头条、西瓜视频、抖音火山版、多闪、懂车帝、图虫、皮皮虾、海豚股票、海豚财富、gogokid、轻颜、好好学习... 查看详情

抖音企业号给运营带来巨大的帮助

...   字节跳动除了抖音这个app,还有今日头条和火山小视频app。只要你对抖音进行了蓝领认证,那你在今日头条app和火山小视频app也 查看详情

短视频去水印在线解析-抖音,快手,小红书,tiktok,twitter去水印在线解析

...瓜视频微信视频火山小视频B站美拍花椒陌陌YYTikTok皮皮虾全民K歌一直播映客斗鱼熊猫TV虎牙直播酷狗短视频小红书梨视频企鹅电竞etc.使用www.guijianpan.com的短视频去水印功能非常简单。只需要复制短视频链接,粘贴到工具中,然... 查看详情

基于uni-app多端「h5+小程序+app」高仿抖音小视频|直播|聊天实例(代码片段)

...开发短视频+直播聊天实例。全新研发的一款多端仿制抖音短视频+直播+聊天项目,基于uniApp+Vue.js+Vuex+Nvue+uViewUI+uaPopup等技术开发而成。支持播放/暂停/上下滑动切换、全屏沉浸式体验。功能特点导航条... 查看详情

火山引擎向企业客户开放上万款抖音同款特效

...,在其他平台上也能使用了。 7月28日,抖音联合火山引擎举办特效技术开放日,首次披露抖音特效的生产流程和技术原理。活动中,火山引擎宣布已向企业客户开放了上万款抖音同款特效,包括猴哥、漫画惊... 查看详情

如何下载无水印的快手抖音火山视频?

...一个可以下载各大小视频平台的一个软件工具(快手抖音火山)并且高清无水印,有了这个的话 一些有想法的小伙伴也能做个伪原创自媒体了 配合着我最近研究的便宜代刷网 刷点儿评论和双击啥的应该能上个热门赚... 查看详情

easyswoole+elasticsearch打造高性能小视频服务系统

...景解刨以及利用easySwoole打造高性能消息队列服务。第5章小视频服务平台-前后端分离以及平台后端整体架构本章介绍视频、视频技术栈、视频上传功能开发、性能优化以及利用easyswoole高性能消息队列处理视频上传处理任务。第6... 查看详情

短视频运营抖音推送机制|账号“完播率“数据

文章目录一、抖音推送机制二、账号"完播率"数据一、抖音推送机制抖音推送机制:初始分发阶段:每个新账号都会自动分配111万的初始分发流量,大约200200200~500500500左右的播放量;多级推荐阶段:平台根据用户的行为,对账号打&... 查看详情

如何下载各大网站的无水印视频?

...inie工具网免费下载无水印抖音、快手、皮皮虾、微视、火山、今日头条、秒拍、轻视频等无水印下载去水印工具免费使用。1.将各大视频网站的连接复制2.打开inie工具网将复制好的分享链接填写进去3.inie工具网会自动帮你解析出... 查看详情

小视频怎么转gif?在线转换的方法

...天的时候都有发送过gif动图,那么我们是怎么做到将一个小视频做成gif格式的呢?下面就简单给大家介绍一下。1、我们可以选择进入到迅捷PDF在线转换器网站的首页,然后点击视频音频转换中的视频转gif;2、之后进行文件的尺... 查看详情

oc录制小视频

OC录制小视频用 AVCaptureSession + AVCaptureMovieFileOutput 来录制视频,并通过AVAssetExportSeeion 手段来压缩视频并转换为MP4格 AVFoundation介绍AVCaptureSessionAVCaptureSession:媒体(音、视频)捕获会话,负责把捕获的音视... 查看详情

小火山视频-有趣有料有亮点的视频

娱乐休闲必备应用-高清视频在线观看-支持缓存,随时随地想看就看,看视频省流量,无WiFi也优雅-看视频无广告,深得人心-推荐超精准,不要太惊讶,通过人工智能揣摩你的兴趣并完成个性化推荐,越用它,他越懂你-海量视频... 查看详情

追求极致,揭秘抖音背后的rtc技术

...时、更加顺畅、更高画质。LiveVideoStackCon2021北京站,火山引擎视频云RTC产品负责人Julian,为大家分享火山引擎视频云RTC是怎样在抖音、西瓜、头条等产品的场景实践中,不断地追求极致的。文 |朱利安整理|LiveVideoStack... 查看详情

easyswoole+elasticsearch打造高性能小视频服务系统

第1章课程概述本章介绍课程技术点、需要的环境准备以及easyswoole的简介,让大家轻松掌握课程的特色,明确学好本门课的技术储备。第2章EasySwoole框架快速上手本章讲解easyswoole的安装、easyswoole的结构分析、easyswoole的其它特性... 查看详情

抖音有毒,同行勿近

...之后,又一款奇迹产品出现了。QuestMobile显示,春节期间抖音的日活已经达到6000万以上,数次登了Appstore免费榜单第一名,毫无疑问跻身在了内容消费产品的第一阵列。不知不觉间,“karmaisabitch”的换装小视频和“C哩C哩”凭借... 查看详情

c#windowsformapplication播放小视频

1.下载direcly-showlibDLL点击打开链接2.DxPlay.cs(可以在下载的例子中找到):  publicclassDxPlay:IDisposable{enumGraphState{Stopped,Paused,Running,Exiting}#regionMembervariables//Filenameweareplayingprivatestringm_ 查看详情