如何通过Python以编程方式置顶YouTube顶级评论?
YouTube评论自动置顶解决方案
核心结论
官方YouTube Data API 不支持通过参数直接创建或修改置顶评论——不管是你当前用的commentThreads.insert接口,还是其他相关接口,都没有公开的置顶字段。
方案一:模拟网页端置顶请求(curl+Python子进程)
这是目前能实现自动置顶的可行方式,原理是模拟用户手动点击置顶按钮时的HTTP请求,具体步骤如下:
1. 抓取必要请求参数
登录YouTube网页版,打开浏览器开发者工具,手动置顶一条自己的评论,复制对应的POST请求详情,需要拿到:
- 请求URL(通常是
https://www.youtube.com/youtubei/v1/comment/set_pinned?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8,这个key是公开固定值) - 请求头里的
Cookie、X-Youtube-Identity-Token、X-CSRF-Token - 请求体JSON(包含
commentId、videoId、pinned: true等字段)
2. Python调用curl执行请求
把抓取到的参数填充到curl命令中,用subprocess调用执行:
import subprocess def pin_comment(comment_id, video_id, cookie, csrf_token, identity_token): curl_cmd = f""" curl 'https://www.youtube.com/youtubei/v1/comment/set_pinned?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8' \ -H 'Content-Type: application/json' \ -H 'Cookie: {cookie}' \ -H 'X-CSRF-Token: {csrf_token}' \ -H 'X-Youtube-Identity-Token: {identity_token}' \ --data-raw '{{ "context": {{ "client": {{ "clientName": "WEB", "clientVersion": "2.20240520.01.00" }} }}, "commentId": "{comment_id}", "videoId": "{video_id}", "pinned": true }}' """ subprocess.run(curl_cmd, shell=True, check=True) # 使用流程:先通过你的现有代码创建评论,拿到评论ID # comment_thread = self.youtube.commentThreads().insert(...).execute() # comment_id = comment_thread['id'] # 再调用置顶函数 # pin_comment(comment_id, vidId, "你的Cookie内容", "你的CSRF令牌", "你的Identity Token")
注意事项
- Cookie和令牌会过期,需要定期更新,或者用无头浏览器(如Selenium)自动获取
- 这种方式违反YouTube服务条款,可能导致账号受限,风险自负
方案二:无风险替代方案
如果不想冒账号风险,可以用以下方式模拟置顶效果:
- 在评论开头添加醒目标识,比如
【置顶】,让用户快速注意到 - 在视频简介里引导观众查看这条评论,比如
"置顶评论有重要说明👇"
内容的提问来源于stack exchange,提问作者Landon Ginn
相关产品推荐
相关产品推荐

