Skip to content

Latest commit

 

History

History
289 lines (201 loc) · 10.3 KB

README.zh-Hans.md

File metadata and controls

289 lines (201 loc) · 10.3 KB

video working

⬆️ TikTok上传器

一个基于Selenium的自动化TikTok视频上传器

英文 · 简体中文 · 法文 · 西班牙文 · 德文

➡️ 在GitHub上查看tranzlate,这是一个使用ChatGPT翻译文本的工具。

Forks Stars Watchers

目录

安装

使用此程序的前提是安装一个Selenium兼容的网络浏览器。推荐使用Google Chrome

MacOS, Windows 和 Linux

python.org安装Python 3或更高版本。

从PyPI下载(推荐)

使用 pip 安装 tiktok-uploader

pip install tiktok-uploader

从源码构建

从源码安装允许更大的灵活性来修改模块的代码以扩展默认行为。

首先, clone并移动到存储库。然后,安装 hatch,这是此项目使用的构建工具1。然后,build项目。最后,使用 -e 或可编辑标志 install 项目。

git clone https://github.com/wkaisertexas/tiktok-uploader.git
cd tiktok-uploader
pip install hatch
hatch build
pip install -e .

使用方式

tiktok-uploader的工作原理是复制您浏览器的cookies,这使TikTok认为你是在一个远程控制的浏览器上登录的。

💻 命令行界面 (CLI)

使用CLI就像使用您的path(-v)、description(-d)和cookies(-c)调用tiktok-uploader一样简单:

tiktok-uploader -v video.mp4 -d "this is my escaped \"description\"" -c cookies.txt
from tiktok_uploader.upload import upload_video, upload_videos
from tiktok_uploader.auth import AuthBackend

# 单个视频
upload_video('video.mp4',
            description='this is my description',
            cookies='cookies.txt')

# 多个视频
videos = [
    {
        'path': 'video.mp4',
        'description': 'this is my description'
    },
    {
        'path': 'video2.mp4',
        'description': 'this is also my description'
    }
]

auth = AuthBackend(cookies='cookies.txt')
upload_videos(videos=videos, auth=auth)

⬆ 上传视频

这个库围绕upload_videos函数展开,该函数接收一个包含文件名描述的视频列表,如下所示:

from tiktok_uploader.upload import upload_videos
from tiktok_uploader.auth import AuthBackend

videos = [
    {
        'video': 'video0.mp4',
        'description': 'Video 1 关于 ……'
    },
    {
        'video': 'video1.mp4',
        'description': 'Video 2 关于 ……'
    }
]

auth = AuthBackend(cookies='cookies.txt')
failed_videos = upload_videos(videos=videos, auth=auth)

for video in failed_videos: #每个上传失败的输入视频对象 
    print(f'{video['video']} with description "{video['description']}" failed')

🫵 提及和主题标签

现在只要在后面跟着空格,提及和主题标签都可以工作。然而,你作为用户有责任在发布前验证提及或主题标签是否存在。

例子:

from tiktok_uploader.upload import upload_video

upload_video('video.mp4', '#fyp @icespicee', 'cookies.txt')

🪡 接缝,二人行和评论

要设置上传的视频是否允许接缝、评论或二人行,只需分别将 commentstitch 和/或 duet 作为关键词参数传递给 upload_videoupload_videos

upload_video(..., comment=True, stitch=True, duet=True)

默认情况下,允许评论,接缝和二人行。

🌐 代理

要设置一个代理,只能在浏览器设置为chrome时工作,允许用户:密码认证。

# proxy = {'user': 'myuser', 'pass': 'mypass', 'host': '111.111.111', 'port': '99'}  # user:pass
proxy = {'host': '111.111.111', 'port': '99'}
upload_video(..., proxy=proxy)

📆 计划

计划视频的datetime将被视为UTC时区。 计划的时间必须至少在未来的20分钟以内,最多为10天。

import datetime
schedule = datetime.datetime(2020, 12, 20, 13, 00)
upload_video(..., schedule=schedule)

🔐 认证

认证使用浏览器的cookies。这种变通方法是由于TikTok对由Selenium控制的浏览器的身份验证持更严格的立场。

您的 sessionid是认证所需的所有内容,可以作为参数传递给几乎任何函数。

🍪获取cookies.txt使得获取NetScape cookies格式的cookies变得容易。

安装后,在TikTok.com上打开扩展菜单,点击 🍪 获取 cookies.txt 显示您的cookies 。选择导出为⇩,并指定位置和名称以保存。

可选的cookies_list是一个包含namevaluedomainpathexpiry 键的字典列表,允许您传递您自己的浏览器cookies。

** 示例: **

cookies_list = [
    {
        'name': 'sessionid',
        'value': '**your session id**',
        'domain': 'https://tiktok.com',
        'path': '/',
        'expiry': '10/8/2023, 12:18:58 PM'
    }
]

upload_video(..., cookies_list=cookies_list)

👀 浏览器选择

Google ChromeTikTok上传器的首选浏览器。此包中使用的默认反检测技术是为此优化的。然而,如果您想使用不同的浏览器,您可以在 upload_videoupload_videos 中指定 browser

from tiktok_uploader.upload import upload_video

from random import choice

BROWSERS = [
    'chrome',
    'safari',
    'chromium',
    'edge',
    'firefox'
]

# 随机选择一款网络浏览器
upload_video(..., browser=choice(BROWSERS))

✅ 支持的浏览器:

  • Chrome (推荐使用)
  • Safari
  • Chromium
  • Edge
  • FireFox

🚲 自定WebDriver选项

默认应为Selenium应用了一些修改,这可以帮助它避免被TikTok检济出。

然而,你 可以 传入自定义的驱动配置选项。只需将 options 作为关键词参数传递给 upload_videoupload_videos 即可。

from selenium.webdriver.chrome.options import Options

options = Options()

options.add_argument('start-maximized')

upload_videos(..., options=options)

注意:确保使用适合您浏览器的selenium选项

🤯 无头浏览器

无头浏览器只能在Chrome上工作。使用Chrome时,使用CLI添加 --headless 标志或将 headless作为关键词参数传递给 upload_videoupload_videos 就足够了。

upload_video(..., headless=True)
upload_videos(..., headless=True)

🔨 最初设置

WebDriverManager用于管理驱动版本。

在最初启动时,您可能会被提示安装所选浏览器的正确驱动程序。然而,对于ChromeEdge,驱动程序会自动安装。

♻ 实例

📝 批注

这个bot并不完美。虽然我并没有被正式禁止,但是在上传过多视频后,视频将无法上传。在测试中,等待几个小时就足以解决这个问题。出于这个原因,请将这个工具更多的看作是一个用于TikTok视频的定时上传器,而不是一个垃圾邮件机器。

使用账户

  • @C_Span - 一个分屏频道,底部是移动游戏画面,上面是来自C-Span的YouTube频道的片段
  • @habit_track - 一个Reddit机器人,查看哪个SubReddit在TikTok上最火

如果你喜欢这个项目,请在GitHub上给它⭐以表达你的支持!❤️

Footnotes

  1. 如果对Hatch感兴趣,请查看网站