PHP 抓取 Youtube视频评论获取方法

发布时间:2026/11/3 18:37:07

PHP 抓取 Youtube视频评论获取方法 在数据采集与内容分析的实际工作中YouTube 评论区往往是最有价值、也最难拿到的数据源之一。本文围绕「如何采集 YouTube 视频下的评论数据」这一具体问题展开从进入视频详情页、在浏览器控制台中定位真实请求接口到分析continuation参数的编码方式再到用 PHP 编写可运行的调用示例并解析返回结果完整走一遍从抓包到落地的流程。本文适合具备一定后端开发基础、熟悉 HTTP 请求与 JSON 解析并且对接口逆向和参数分析有兴趣的读者例如做数据采集、内容分析、舆情监控或爬虫工程的同学。阅读完本文你将能够理解 YouTube 评论接口的请求结构与关键参数掌握continuation参数的初步解码思路拿到一份可直接参考的 PHP 采集代码并清楚在实际使用中需要注意的 Cookie 更新、请求频率与代理稳定性等问题。目录评论数据采集方法打开进入视频详情页面控制台中解析需要的请求数据以及参数加密的分析获取视频下的评论数据PHP 调用示例打印调用结果注意事项评论数据采集方法打开进入视频详情页面作品详情链接格式https://www.youtube.com/watch?v{作品id}控制台中解析需要的请求数据以及参数加密的分析接口地址https://www.youtube.com/youtubei/v1/next?prettyPrintfalse请求方式为 POST请求头需要携带 Referer页面地址和页面 Cookie最好固定携带即可请求体参数主要为 context.client 和continuationYouTube 加密的参数简单分析一下continuation这个参数示例为 Eg0SC2JxSndMNHpwd3J3GAYyJSIRIgticUp3TDR6cHdydzAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D。我这边经过尝试是先进行 URL 解码然后再进行 Base64 解码能看到一点需要的参数。能看到其中携带了视频的 id然后跟着 comments-section 这个参数剩下的空白部分是一些二进制数据在浏览器里能显示但我没看懂。不过通过替换视频 id换成我们需要的再进行 Base64 等加密发现放到接口里也可以用但只能查看一页的评论数据想看全部评论还需要完全破解这个参数。如果有大佬能逆向出这个参数欢迎分享一下。获取视频下的评论数据以下是一个 PHP 调用示例代码需要根据业务再优化一下。?php class Youtube { const API https://www.youtube.com; const COMMENT_URL /youtubei/v1/next; /** 公共 CLIENT 请求参数 / const DEFAULT_CLIENT_CONFIG [ hl zh-CN, gl US, deviceMake Apple, deviceModel , userAgent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36,gzip(gfe), clientName WEB, clientVersion 2.20251102.09.00, osName Macintosh, osVersion 10_15_7, screenPixelDensity 2, platform DESKTOP, clientFormFactor UNKNOWN_FORM_FACTOR, screenDensityFloat 2, userInterfaceTheme USER_INTERFACE_THEME_DARK, timeZone Asia/Shanghai, browserName Chrome, browserVersion 142.0.0.0, memoryTotalKbytes 8000000, acceptHeader text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,/*;q0.8,application/signed-exchange;vb3;q0.7, ]; protected $commonHeader; public $cookie null; public function __construct($options []) { $this-commonHeader $this-getCommonHeader(); $this-cookie $this-getDefaultCookies(); if (isset($options[cookie])) { $this-cookie $options[cookie]; } } /** 公共 headers return string[] */ public function getCommonHeader(): array { return [ Content-Type: application/json, Authorization: SAPISIDHASH 1762228162_6381649b2de5c245cd744c6cca862c92d88aa804_u SAPISID1PHASH 1762228162_6381649b2de5c245cd744c6cca862c92d88aa804_u SAPISID3PHASH 1762228162_6381649b2de5c245cd744c6cca862c92d88aa804_u, User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 ]; } /** 默认 cookie return string */ public function getDefaultCookies(): string { return VISITOR_INFO1_LIVE0naC1y6HQgA; VISITOR_PRIVACY_METADATACgJVUxIEGgAgUA%3D%3D; HSIDAexUXBUZbpVBdv9nf....; } /** 获取评论 */ public function getCommentList($videoId, $extend []) { $apiUrl self::API . self::COMMENT_URL . ? . prettyPrintfalse; $client array_merge(self::DEFAULT_CLIENT_CONFIG,[ gl TW, remoteHost 36.231.173.75, visitorData CgswbmFDMXk2SFFnQSjC0KbIBjIKCgJVUxIEGgAgUA%3D%3D, originalUrl https://www.youtube.com/watch?v . $videoId, deviceExperimentId ChxOelUyT0RjMk5UWTFNakF5TlRrd09Ea3pNQT09EMLQpsgGGMLQpsgG, rolloutToken CL_QjIOqlZeOhgEQ9Mq5gvP0jQMYjtTfkMHXkAM%3D, screenWidthPoints 1176, screenHeightPoints 832, utcOffsetMinutes 480, connectionType CONN_CELLULAR_3G, configInfo [ appInstallData CMLQpsgGEK7WzxwQzNuBRCU/rAFEIKU0BwQlIPQHBC35M8cEL6KsAUQjcywBRC9mbAFEKaasAUQ0GvBRDevM4cELOQzxwQkaAE3kIATKMuRgBMotZuAEyiSo4ATKJalgBMovaaAEyiRr4ATKNiwgBMoxLGAEyjRsYATKOWygBMo87OAEyiTtIATKLy0gBMozrSAEyittYATKLi1gBMoxLaAEyiwt4ATKNu3gBMogriAEyj2uIATMjJBT2pGb3gxQXotY3ZuY1l1WjhZTUQzMTRnRkEzbDM2WVZKcEhSR3VTeUhLbkNsdV83QToyQU9qRm94MWcwRkYwMVpOaVlQWTMydUliaDhsbG14Z1VJU1FFT3Q4OEw5dDhkYzFGTFFCNENBTVNJZzBLb3RmNkZhN0JCcE5Oc3hiTVJ4VVczY19DRE5Qb0QtdTM1Z3ZZelFuemtBUT0%3D ], mainAppWebInfo [ graftUrl https://www.youtube.com/watch?v . $videoId, pwaInstallabilityStatus PWA_INSTALLABILITY_STATUS_UNKNOWN, webDisplayMode WEB_DISPLAY_MODE_FULLSCREEN, isWebNativeShareAvailable true ] ]); $body [ context [ client $client, ], continuation self::encodeCommentParams($videoId) ]; $postData json_encode($body, JSON_UNESCAPED_SLASHES); $this-commonHeader[] Referer: . self::API ./watch?v. $videoId; return $this-extracted($apiUrl, $postData, $this-commonHeader, [ cookies $this-cookie, ]); } /** 接口请求 param $postData param string $apiUrl param $cookie return bool|string */ private function extracted(string $apiUrl,$postData, $headers, $extend []) { $this-commonHeader[] Content-Length: . strlen($postData); $req curl_init($apiUrl); curl_setopt($req, CURLOPT_HTTPHEADER, $headers); curl_setopt($req, CURLOPT_POST, true); if (isset($extend[cookies])) { curl_setopt($req, CURLOPT_COOKIE, $extend[cookies]); } curl_setopt($req, CURLOPT_POSTFIELDS, $postData); curl_setopt($req, CURLOPT_RETURNTRANSFER, true); $response curl_exec($req); curl_close($req); return $response; } } $ytb new Youtube(); /** 评论数据调用及解析 param $videoId param $extend return array */ function ytbComment($videoId, $extend []) { global $ytb; $commentResponse $ytb-getCommentList($videoId, $extend); $commentArray json_decode($commentResponse, true); $mutationsList $commentArray[frameworkUpdates][entityBatchUpdate][mutations]; $commentList []; foreach ($mutationsList as $mutation) { if (isset($mutation[payload][commentEntityPayload][properties][content])) { $properties $mutation[payload][commentEntityPayload][properties]; $commentList[] [ text $properties[content][content], authorButtonA11y $properties[authorButtonA11y], commentId $properties[commentId], publishedTime $properties[publishedTime], ]; } } return $commentList; } $comment ytbComment(2KBjtrfaZzE); echo json_encode($comment, JSON_UNESCAPED_SLASHES);打印调用结果注意事项接口调用规范需要定期更新 Cookie适当增加请求间隔使用代理提高稳定性continuation 参数需要使用 JavaScript 计算签名逆向获取请求参数加密的方法
延伸阅读

更多相关文章

2026/11/3 18:37:07

6GB显存玩转AI视频生成:WanVideo_comfy开启创作民主化新时代

6GB显存玩转AI视频生成:WanVideo_comfy开启创作民主化新时代 你还在为AI视频生成需要高端显卡而发愁吗?普通创作者如何突破硬件限制,用消费级设备制作专业级视频内容?本文将详细解析WanVideo_comfy开源项目如何通过模型优化与社区…

2026/11/3 19:32:21

《深入理解Java虚拟机》第八章学习笔记:虚拟机字节码执行引擎

8.1 概述虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式从外观上来看,所有的Java虚拟机的执行引擎输入、输出都是一致的:输入的是字…

2026/11/3 19:32:21

空间智能终端正在从单点设备走向系统协同,行业竞争逻辑已经变了

过去几年,空间智能终端的竞争集中在硬件本身:摄像头像素、门锁识别速度、面板响应时间、传感器精度。但当一个项目从几百台设备扩展到几万台,从单一住宅延伸到公寓、酒店、商业、园区多业态共存时,真正的瓶颈不再是某个终端够不够…

2026/11/3 19:32:21

05 - 端口与实时画面(训练 / 评估)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 19:32:21

web打印插件四选一:从浏览器打印到可视化模板设计器

后台系统做到一定阶段,打印一定会变成最脏的活。 业务最初说"能打印就行",上线三个月后需求变成:表头要在每页重复、这张单要套打、批量打 200 张、不要弹框、能不能让业务自己改模板。等你把这些都补上,代码里已经堆了…

2026/11/3 19:27:21

网络安全-Javascript基础

网络安全-Javascript基础一般简称JS,然后用于嵌套在网页中,给网页添加动态效果用的node凭条,开发服务器也是用js 后期会用到recat、vue框架。常见的前端 HTML(结构层) 利用语言去搭建网页 CSS(样式层)利用样式美化网页…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑