使用自定义播放器的无广告 YouTube
Source: Dev.to

随着“烂摊子化”不断推进——更多广告、更多暗黑模式、UI 设计服务于平台而非用户——我一直在编写 userscript 来重新夺回浏览器的控制权。网络上充斥着侵扰性的 UI:搜索结果把答案隐藏在 AI 摘要后面、诱导你同意的 cookie 横幅、以及点击诱饵的覆盖层。
YouTube 是其中最严重的违规者之一:前贴片广告、插播中断以及劫持屏幕的推荐视频覆盖层。幸运的是,YouTube 自己的嵌入域名 youtube-nocookie.com 不投放广告。通过拦截 youtube.com/watch?v=VIDEO_ID 链接并将其路由到第三方中转站(yout-ube.com),请求会被重写为 nocookie 嵌入,同时保留正确的 HTTP Referer。这样就避免了直接访问 nocookie URL 时导致播放中止的 “Error 153”。
第二个脚本在 nocookie 域上运行,以增强播放器,让你观看完整视频且零广告。

我构建的功能
加速保持
在视频上按住鼠标按钮即可加速播放:
- 上半部分 → 2× 速度
- 下半部分 → 3× 速度
松开后恢复到 1×。没有 UI 元素,只靠肌肉记忆。
双击全屏
YouTube 的覆盖层会吞掉原生的 dblclick 事件,所以脚本手动追踪点击。视频区域内 300 毫秒内的两次点击会切换全屏。
评论面板
播放器底部的可折叠面板通过 YouTube Data API v3 拉取评论。功能包括:
- 按“热门”或“最新”排序
- 点赞数、时间戳
- 点赞/点踩比例条
UI 清理
nocookie 播放器仍会渲染不需要的元素(例如 “watch on YouTube” 按钮、全屏推荐覆盖层、循环图标)。所有这些都通过 CSS 被移除:
player-fullscreen-action-menu,
.ytp-pause-overlay-container,
.watch-on-youtube-button-wrapper,
.ytFullscreenVideoRecommendationsHost {
display: none !important;
}音量、字幕和设置按钮被重新定位到自定义的底部栏,以获得更整洁的界面。
自行设置
- 视频演示:
- 完整的文字说明、两个脚本以及 API key 的配置方法: