TikTok 视频长度分析与公共发布指标
Lead Scraping Automation Engineer
TL;DR:
- TikTok视频长度分析需要有效的持续时间值。 在分配视频分类之前排除缺失和零持续时间记录。
- 持续时间分类是分析师定义的比较组。 它们不是官方的性能推荐。
- 创作者和观察窗口需在每个比较中使用。 混合无关账户可能会掩盖受众、主题和发布节奏的差异。
- 样本计数、中位数和异常值应与每个持续时间结果并列。 一个有一个突发帖子的分类需要可见警告。
- 公共帖子指标并不揭示完成率或平均观看时长。 持续时间分析不应暗示那些不可用的措施。
- 免费开始。 新的Scrapeless账户通过Scrapeless仪表板包括免费积分。
引言:持续时间是一个格式维度,而不是裁决
视频持续时间易于分组且易于过度解读。一个短片和一个长教程可能服务于不同的受众需求,而公共播放或互动计数并不能揭示观众观看了多久。
本指南建立了一个TikTok视频长度分析,基于被跟踪创作者的帖子。它过滤不可用的持续时间,应用项目拥有的分类,比较公共指标在匹配的创作者和观察窗口内,并生成一个包含样本和异常值背景的持续时间带报告。
对于收集步骤,Scrapeless演员指南解释了结构化演员请求是如何融入应用程序的。
一览管道
| 阶段 | 操作 | 输出 |
|---|---|---|
| 收集 | 保存被跟踪创作者的帖子 | 原始帖子快照 |
| 验证 | 解析持续时间并移除不可用记录 | 有效视频数据集 |
| 分类 | 分配明确的持续时间区间 | 格式组 |
| 比较 | 计算创作者内部的统计数据 | 持续时间比较表 |
| 审查 | 曝露小样本和异常值 | 决策准备报告 |
该管道比较观察到的公共帖子结果。它不计算保留率或规定一个通用视频长度。
先决条件
- 来自
scraper.tiktok.user.work的保存响应 - 与响应一起存储的创作者身份和收集时间
- 在查看性能结果之前选择的持续时间分类
- 任何排名比较的最低帖子数量
- 从Scrapeless仪表板收集新数据时的Scrapeless API密钥
变换块是一个先决条件缺口,因为读者提供输入快照。它并不声称一个实时结果。
阶段1:在分类之前验证持续时间
TikTok帖子演员可以返回video_duration,单位为秒。对于不携带可用视频持续时间的记录,0的值可能出现,因此分析应从持续时间表中排除零、缺失、布尔值和非数字值。保留那些行在质量报告中,而不是默默删除它们。
TikTok的视频对象文档描述了其视频字段的持续时间(单位为秒)。其查询视频文档也将持续时间和公共互动计数列为单独的字段。这种分离很重要:持续时间是可观察的,而观看行为不是从此处使用的公共计数器得出的。
存储排除原因,如missing_duration、zero_duration或invalid_duration。排除计数应出现在最终图表附近,以便读者可以评估覆盖率。
阶段2:在查看结果之前选择分类
项目拥有的分类保持分析的可重复性。一个实用的起始方案是:
| 分类 | 规则 |
|---|---|
under_15s |
持续时间大于零且低于15秒 |
15_to_59s |
从15秒到59秒 |
60_to_299s |
从60秒到299秒 |
300s_plus |
300秒或更长 |
这些边界是分析设置,而不是对理想格式的声明。与输出记录分类版本,以便稍后的边界更改不会使两个报告看起来直接可比。
使用Scrapeless开始抓取
使用Scrapeless强大您的网络抓取和自动化工作流程!
今天注册并获得 $5的免费积分——无需信用卡。现在在Scrapeless仪表板索取您的免费积分。
阶段3:计算持续时间区间统计数据
使用一行每个有效帖子。保持公共计数为整数,仅在播放量为正时计算参与率,并在样本计数旁边比较中位数。
注意:下面的代码需要读者提供来自
scraper.tiktok.user.work的posts-snapshot.json。在合并来自多个帐户的快照之前,请添加创作者和观察窗口列。
python
import csv
import json
import statistics
def parse_duration(value):
if isinstance(value, bool):
return None
try:
duration = int(value)
except (TypeError, ValueError):
return None
return duration if duration > 0 else None
def duration_band(seconds):
if seconds < 15:
return "under_15s"
if seconds < 60:
return "15_to_59s"
if seconds < 300:
return "60_to_299s"
return "300s_plus"
def count(value):
try:
return int(value)
except (TypeError, ValueError):
return 0
with open("posts-snapshot.json", encoding="utf-8") as source:
payload = json.load(source)
posts = (
payload.get("items", payload.get("data", payload))
if isinstance(payload, dict) else payload
)
groups = {}
excluded = []
for post in posts:
duration = parse_duration(post.get("video_duration"))
if duration is None:
excluded.append(str(post.get("video_id") or ""))
continue
plays = count(post.get("play_count"))
engagement = sum(count(post.get(field)) for field in (
"digg_count", "comment_count", "collect_count"
))
group = groups.setdefault(duration_band(duration), {
"durations": [], "plays": [], "rates": []
})
group["durations"].append(duration)
group["plays"].append(plays)
if plays:
group["rates"].append(engagement / plays)
rows = []
for band, values in groups.items():
rows.append({
"duration_band": band,
"post_count": len(values["plays"]),
"median_duration_seconds": statistics.median(values["durations"]),
"median_plays": statistics.median(values["plays"]),
"max_plays": max(values["plays"]),
"median_engagement_rate": (
statistics.median(values["rates"]) if values["rates"] else ""
),
})
with open("duration-band-report.csv", "w", newline="", encoding="utf-8") as output:
fields = [
"duration_band", "post_count", "median_duration_seconds",
"median_plays", "max_plays", "median_engagement_rate"
]
writer = csv.DictWriter(output, fieldnames=fields)
writer.writeheader()
writer.writerows(rows)
print(f"excluded_duration_records={len(excluded)}")
最大播放列揭示了典型帖子与最强离群值之间的距离。Python 的 统计文档 定义了这里使用的中位数计算。
阶段 4:在创作者和观察窗口内比较
TikTok 视频时长参与表应首先比较同一创作者和收集窗口内的桶。这可以控制受众规模、内容类别和时间覆盖等一些明显差异,而不是假装控制每个因素。
对于多帐户基准测试,使用两级报告:
- 创作者级别的行显示每个帐户的持续时间带。
- 投资组合行总结创作者级的中位数,并显示有多少创作者进行了贡献。
当一个创作者贡献了大部分样本时,不要将每个帖子集中到一个表中。结果主要描述该帐户的发布组合。
阶段 5:构建时长比较图表
主图表可以将持续时间带放在横轴上,中央値播放或中位参与率放在纵轴上。直接在每个条形上显示帖子数量,并在伴随表中添加最大值或离群值标记。
完整的 TikTok 内容格式分析应显示:
- 创作者或队列名称
- 观察窗口
- 桶定义和版本
- 按带的有效帖子计数
- 排除的持续时间记录计数
- 中位播放和中位参与率
- 最大播放或另一个可见的离群指标
Scrapeless 通过 Scraping API 提供结构化的帖子收集。在设置创作者覆盖和快照频率之前,请查看 当前定价页面。
负责任地处理创作者指标
仅保留分析所需的公共帖子字段,限制对创作者级数据的访问,并记录报告目的。NIST隐私框架 提供了管理隐私风险和保留的一般指导。
时间段应告知内容测试。它们不应对创作者产生自动判断,并且在未收集这些字段时,绝不应将其作为完成率或平均观看时间分析呈现。
结论:将视频时长视为一个观察维度
TikTok 视频时长分析在过滤无效持续时间、提前修复桶规则并对等比较时最有用。在每个结果旁边发布样本计数、中位数、排除情况和离群值。输出可以指导新的内容测试,但仅凭公共帖子指标无法建立普遍的时长规则。
准备比较 TikTok 视频格式吗?
加入 Scrapeless Discord 或 Telegram 社区 讨论持续时间带报告。当创作者列表准备就绪时,在 Scrapeless Dashboard 创建一个帐户。
常见问题解答
问:TikTok 视频时长分析是如何工作的?
TikTok 视频时长分析将有效帖子持续时间分组到定义的带中,并在同一创作者和观察上下文中比较公共指标。
问:零持续时间记录应该进入最短桶吗?
零持续时间记录不应进入最短桶,因为零可以表示缺失或不可用的视频时长,而不是有效的短视频。
问:公共帖子指标能揭示平均观看时间吗?
公共播放、点赞、评论和收藏计数不会在此工作流程中揭示平均观看时间或完成率。
问:什么使 TikTok 视频表现基准具有可比性?
可比的基准使用一致的创作者组、观察窗口、桶规则、指标定义和样本阈值。
问:团队需要管理 TikTok 帖子选择器吗?
TikTok 帖子演员通过 API 响应返回结构化字段。调用者管理创作者选择、快照时机、存储、质量检查和分析。
问:抓取公共的 TikTok 帖子数据是否合法?
合法性取决于管辖权、目的、访问方式、适用条款和收集的数据。使用公共数据进行允许的目的,并针对预期工作流程寻求法律建议。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



