You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Colab中使用TikTokApi结合Selenium时遭遇width属性错误及byUsername与getUsername差异疑问

解决TikTokApi + Selenium在Colab中调用byUsername方法的AttributeError问题

你遇到的问题根源在于byUsername方法需要依赖TikTokApi实例的width和height属性来构造符合TikTok校验规则的请求,但在Selenium模式下这些属性没有被自动初始化,而getUser方法恰好不需要这些参数,所以能正常运行。下面是具体的解决步骤和方法差异说明:

一、快速修复方案

只需在创建TikTokApi实例后,手动添加缺失的屏幕尺寸属性即可:

  1. 先确保安装步骤完整(Colab环境是临时的,每次重启都需要重新执行):
!pip install TikTokApi
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
  1. 初始化API并补充必要属性:
from TikTokApi import TikTokApi

# 创建API实例
api = TikTokApi.get_instance(use_selenium=True, executablePath="/usr/bin/chromedriver")

# 手动添加模拟桌面浏览器的屏幕宽高属性
api.width = 1920
api.height = 1080

# 现在调用byUsername就不会报错了
username = 'fcbarcelona'
user_videos = api.byUsername(username, count=20)

二、版本兼容备选方案

如果上面的方法仍无效,可能是TikTokApi的版本兼容性问题,建议安装一个经过验证的稳定版本:

!pip uninstall -y TikTokApi
!pip install TikTokApi==5.1.2

之后再执行上面的初始化和属性补充步骤即可。

三、getUser和byUsername的核心差异

  • getUser:这个方法的核心目标是获取用户的基础资料(用户ID、头像、简介等),仅附带返回少量默认数量的用户视频(你看到的16条是默认返回量),它的请求逻辑简单,不需要依赖浏览器窗口尺寸这类环境参数,因此能正常运行。
  • byUsername:这个方法是专门为批量获取用户视频设计的,会模拟真实浏览器的请求头(包含屏幕宽高信息),TikTok服务器会校验这些参数,缺失就会触发属性错误。

内容的提问来源于stack exchange,提问作者RiegelGestr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 12:12:44