
Return YouTube Dislike 项目解析Dislike 统计恢复原理与开放 API 调用指南【免费下载链接】return-youtube-dislikeChrome extension to return youtube dislikes项目地址: https://gitcode.com/gh_mirrors/re/return-youtube-dislike本篇技术指南以仓库瑞典语文档 READMEsv.md 为核心骨架系统梳理 Return YouTube DislikeRYD开源扩展的诞生背景、数据统计恢复原理以及面向第三方开发者的开放 API 使用规范——包括速率限制、/votes端点请求方式、JSON 响应字段与错误码语义。读完本文你将理解该扩展在 YouTube 移除公开 dislike 计数后的替代数据方案并能直接基于https://returnyoutubedislikeapi.com编写自己的投票数据获取程序。项目定位一个开源 Dislike 计数恢复扩展Return YouTube Dislike瑞典语Återinför YouTube Dislikes是一个开源浏览器扩展用于在 YouTube 界面上恢复视频的 dislike点踩数量显示。它同时提供两种形态Web 扩展面向 Chromium 系浏览器与 FirefoxJS Userscript面向其他支持用户脚本的浏览器。对应仓库中的实现位于 Extensions/combined扩展源码与 Extensions/UserScript/Return Youtube Dislike.user.js用户脚本。项目仓库以 GPLv3 协议开源根目录 LICENSE 可查看完整协议文本。背景故事YouTube 为何移除 dislikeRYD 如何应对2021 年 11 月 10 日Google 宣布将从 YouTube 平台移除 dislike 计数随后在 2021 年 12 月 13 日YouTube API 中的dislike字段也被正式移除。这带来一个直接后果观众在观看视频之前失去了通过公开数据评估内容质量的依据。RYD 的应对思路见 READMEsv.md 的 Vad det gör 小节是放弃依赖 YouTube API 的 dislike 字段改用爬取的 dislike 历史统计 基于扩展用户投票数据的推算组合方案。这一机制的具体细节在 Docs/FAQ.md 中有更完整的展开数据来源Google API 数据与爬取数据的组合所有可用数据会存档到项目数据库即使日后 Google 彻底关闭 dislike 计数历史数据仍可查询。缓存机制视频 dislike 数据带有缓存更新频率大约为每 23 天一次并非实时刷新。推算公式针对 API 关闭后上传的视频$$ \textup{RYD Dislike Count} \left( \frac{\textup{RYD Users Dislike Count}}{\textup{RYD Users Like Count}} \right) \times \textup{Public Like Count} $$即用 RYD 用户群体的踩/赞比值去放大推算公开点赞数对应的完整点踩数。若数据库中存有上传者提供或历史存档的真实点赞/点踩数则结合用户投票与存档值共同计算且存档值会随其年龄增长而降低影响权重。扩展端如何消费 API源码级调用链文档描述的 API 并非空中楼阁扩展本身就在实时使用它。追踪源码可以还原完整的调用链API 地址定义在 Extensions/combined/src/config.js 中生产环境 API 地址被定义为PROD_API_URL https://returnyoutubedislikeapi.com并通过getApiEndpoint()拼接具体端点路径。获取投票数据内容脚本在 Extensions/combined/src/state.js 的setState()中发起请求let response await fetch(getApiEndpoint(/votes?videoId${videoId}likeCount${likeCount || }), { method: GET, headers: { Accept: application/json }, }) .then((response) { if (!response.ok) displayError(response.error); return response; }) .then((response) response.json()) .catch(displayError);请求成功且响应中不含traceId错误追踪字段时结果会被送入processResponse()最终把 dislike 数字渲染到 YouTube 按钮区域。后台脚本转发后台服务 Extensions/combined/ryd.background.js 也承担 API 交互——收到内容脚本的set_state消息时转发/votesGET 请求当待上报的视频 ID 累积到 20 个时通过send_links消息以POST /votes批量提交观看记录用于改进统计推算。用户脚本实现无扩展框架的浏览器则直接由 Return Youtube Dislike.user.js 以原生fetch调用同一端点。网络权限三个浏览器 manifest 均声明了对该 API 域名的访问权限例如 manifest-chrome.json 中的*://returnyoutubedislikeapi.com/*Firefox 与 Safari 版本manifest-firefox.json、manifest-safari.json保持一致。开放 API 使用规范READMEsv.md 明确说明该开放 API 允许第三方使用但必须遵守以下两条限制归属要求Attribution使用方必须清晰标注本项目并提供指向 returnyoutubedislike.com 的链接。频率限制Rate Limiting每个客户端限额为每分钟 100 次、每天 10,000 次。超限时 API 会返回429状态码提示你的应用应当降低请求频率back off。API 基础地址为https://returnyoutubedislikeapi.com可用端点清单可通过以下地址查看Swagger 文档https://returnyoutubedislikeapi.com/swagger/index.html网站源码中对应页面的实现位于 Website/pages/docs/endpoints.vue它通过process.env.apiUrl在 Website/nuxt.config.js 中配置拼接出 Swagger 地址供在线查阅全部端点。获取投票数据GET /votes查询某个 YouTube 视频 ID 的投票数据请求格式如下/votes?videoIdkxOuG8jMIgI完整的 HTTP 请求示例Website/pages/docs/fetching.vue 中给出的参考请求头GET https://returnyoutubedislikeapi.com/votes?videoIdkxOuG8jMIgI Accept: text/html,application/xhtmlxml,application/xml;q0.9 Pragma: no-cache Cache-Control: no-cache Connection: keep-alive也可以直接用curl快速验证curl https://returnyoutubedislikeapi.com/votes?videoIdkxOuG8jMIgI响应字段说明以下为文档给出的真实示例响应{ id: kxOuG8jMIgI, dateCreated: 2021-12-20T12:25:54.418014Z, likes: 27326, dislikes: 498153, rating: 1.212014408444885, viewCount: 3149885, deleted: false }各字段含义如下字段类型说明idstring视频 ID与请求参数一致dateCreatedstring (ISO 8601)该记录在 RYD 数据库中创建的时间戳likesnumber公开的点赞数dislikesnumberRYD 推算/存档得到的点踩数核心返回值ratingnumber基于投票数据计算的评分值约为浮点数比率viewCountnumber视频观看次数deletedboolean记录是否已被标记删除补充说明较新版本的接口响应中可能额外包含rawDislikes、rawLikes等字段见 README.md 中的响应示例分别表示爬取到的原始点踩数与点赞数可用于与推算值对照。以服务端实际返回为准。错误码语义400 Bad Request请求中的 YouTube ID 格式不正确404 Not Found该 YouTube ID 在数据库中不存在即 API 尚未收录此视频的数据。超限场景则返回429对应前述频率限制条款。参与贡献与项目支持仓库欢迎社区参与READMEsv.md 指向了 贡献指南仓库根目录另有 CONTRIBUTINGcn.md 等中文等多语言版本包含代码规范、提交流程等要求。项目同时提供捐赠页面与 Patreon 赞助渠道详见 READMEsv.md 尾部用于支撑服务器与 API 的持续运营。延伸阅读Docs/FAQ.md数据来源、缓存周期、dislike 推算公式的权威说明Docs/SECURITY-FAQ.md隐私与安全相关问答另有 Docs/SECURITY-FAQcn.md 中文版Website/pages/docs/fetching.vue 与 Website/pages/docs/endpoints.vue网站版 API 文档页面源码Extensions/combined/src/state.js 与 Extensions/combined/ryd.background.js扩展端 API 调用的完整实现。【免费下载链接】return-youtube-dislikeChrome extension to return youtube dislikes项目地址: https://gitcode.com/gh_mirrors/re/return-youtube-dislike创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考