制作了一个 YouTube 的浏览器扩展 YouTubeTweak,以解决一些使用体验问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
dark495
V2EX    分享创造

制作了一个 YouTube 的浏览器扩展 YouTubeTweak,以解决一些使用体验问题

  •  2
     
  •   dark495
    xlch88 1 天前 2009 次点击

    制作了一个 YouTube 的浏览器扩展 YouTubeTweak ,以解决一些使用体验问题

    为什么会有这个东西?

    我是一个偏重度的 YouTube 用户,是 YouTube Premium 的长期订阅者,主要还是用 PC Web 版本。平时听歌以及看视频都在 YouTube 上完成。

    但 YouTube 的有些东西着实让我不爽,比如:

    • YouTube 的画质并不固定: 画质是根据 YT 判定的网络质量自动调整的,但不太聪明。导致有时候明明网络很好,但画质却莫名其妙地变低了。
    • 切换视频的播放倍速需要点击至少三次: 设定按钮 -> 播放速度 -> 选择倍速。
    • 不会记住每个频道的播放倍速: 我在看影片时,通常使用 1.5x ,而听歌必然是 1x ,但 YouTube 不会记住每个频道的播放倍速,这让我必须每次都手动调整倍速。
    • 不会记住每个频道的字幕启用状态: 有些视频是既有内嵌字幕,又有 CC 字幕,对于已有内嵌字幕的视频,当然没必要开启 CC 字幕,但 YouTube 不会记住每个频道的字幕启用状态,这让我必须每次都手动开启/关闭 CC 字幕。
    • 一堆没用的按钮: 我希望隐藏某些在播放器上的按钮,比如“迷你播放器”、“画中画”、“剧场模式”、“在电视上播放”等我完全用不到的按钮。
    • 结尾的“片尾画面”: 通常是一些作者的其他视频推荐,会遮挡视频的最后几秒钟并且无法关闭 (不过最近更新以后可以关闭了)
    • 强制且无法关闭的音量均衡: YouTube 会自动调整影片的音量大小以实现一个均衡的效果,但有些时候这个算法好像不太聪明,视频音量会过小。 (最近更新终于可以让用户选择是否开启音量均衡了)
    • 不会显示评论者的昵称: 自从某次更新后,所有人的评论都只显示用户名,只有点用户名进去才能显示昵称(或者说频道名)
    • 评论折叠以及翻译: 过长的评论必须手动点一次展开,并且翻译也是必须手动点击一下翻译按钮。
    • 首页推荐强制一行三个视频: 自从某次更新后,首页的视频布局从四个变为了三个,让老用户很难受。
    • 广告: 如果你没开 Premium ,会有视频广告+推荐位随机图文广告。且不论是不是 Premium ,在视频下方也会出现视频作者推荐的一些购物广告(比如周边什么的)
    • 短视频: 我不希望在 PC 上沉迷于短视频,我希望能在 PC 上彻底隐藏 Shorts 。

    作为一个码农,我想着手解决这些问题,至少让自己用的舒服一点。

    我采用了最简单便捷的方式来处理这些问题,这个项目一开始只是一个 UserScript ,在GithubGreasyFork上发布。

    后来觉得 UserScript 开发体验不太好,并且也想试着学习开发一个浏览器扩展,于是后面就改成了浏览器扩展的形式

    浏览器扩展程序

    在花了一段时间学习如何开发浏览器扩展,并且重构了代码以及自行测试了数月后,终于完成了一个 _我自己觉得可以公开发布的版本_。

    这个扩展的名字叫做 YouTubeTweak,目前已经在这些平台通过了测试并发布:

    Edge 暂时没有发布,因为我安装完 Windows 的第一件事就是彻底卸载 Edge 浏览器。
    (后续看情况可能会测试并发布。

    源代码仓库:https://github.com/xlch88/YoutubeTweak
    域名:YTTweak.com (目前还是什么东西都没有,我还没制作网站)

    功能

    一张图概括这个插件的功能以及 UI:

    YouTubeTweak 功能总览

    以及一些功能实际的样子:

    改首页每行视频数量

    改首页每行视频数量

    隐藏 Shorts

    隐藏前 隐藏后

    隐藏频道主购物推荐

    隐藏前 隐藏后

    显示评论昵称、翻译

    隐藏多余按钮、添加一键倍速按钮、半透明片尾画面

    关于开发

    这个项目是出于提升和我有同样困扰的用户的使用体验的目的而开发的,我不准备进行任何商业化或追踪器植入,确保代码的干净。

    整体使用 TypeScript + Vue + WXT 进行开发,全手写 SCSS 样式,未使用任何 UI 框架。

    整体插件功能模块化,每个功能都分成了单独的模块,方便后续维护和扩展。

    我希望有更多人能参与到这个项目中来,将你的想法变成现实。
    也欢迎参与代码的优化和审计,让我知道我哪里写得不够好。

    如果你有兴趣参与这个项目,请访问项目的 GitHub 仓库:https://github.com/xlch88/YoutubeTweak

    最后

    如果你觉得这个插件对你有帮助,欢迎在 Github 给我一个 以及 在扩展商店给我一个好评 ,让我知道有人在使用这个插件。

    以及,这个项目的多语言翻译来自我的几位朋友的帮助,非常感谢他们。
    如果你也愿意帮忙翻译成其他语言,请在 Github 仓库中提交 PR ,或者联系我。

    谢谢大家!

    42 条回复    2025-11-12 01:10:22 +08:00
    iOCZS
        1
    iOCZS  
       1 天前 via iPad
    能不能帮我跳过广告?
    xxxxi
        2
    xxxxi  
       1 天前
    已 star , 能否加个在前台显示视频播放进度?
    zhzy
        3
    zhzy  
       1 天前
    已安装试用一下, 好奇为啥没有 2.5 倍速

    另外之前用过这两个都还挺好用的:

    - youtube 播放视频倍速自定义,可记忆: https://greasyfork.org/zh-CN/scripts/381176-youtube%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%E5%80%8D%E9%80%9F%E8%87%AA%E5%AE%9A%E4%B9%89-%E5%8F%AF%E8%AE%B0%E5%BF%86
    - Enhancer for YouTube: https://chromewebstore.google.com/detail/enhancer-for-youtube/ponfpcnoihfmfllpaingbgckeeldkhle
    dark495
        4
    dark495  
    OP
       1 天前 via iPhone
    @xxxxi 这个是啥意思?
    dark495
        5
    dark495  
    OP
       1 天前 via iPhone
    @zhzy 的确大部分功能都有现成的可以替代,但是有一些比较小众的功能还是要我自己来实现,所以自己写是肯定要做的,那既然要做就做的好一点喽。

    )我实在想不出什么情况下会用 2.5 倍速?或许我会加一个自定义的按钮吧。
    jesky
        6
    jesky  
       1 天前
    @dark495 #4 大概就是一个常驻的进度条吧
    jesky
        7
    jesky  
       1 天前
    不错,已经用上了!
    Nyarime
        8
    Nyarime  
       1 天前
    用上了!是诉 qz 联通的那个大佬吧,膜拜了
    Avn
        9
    Avn  
       span class="ago" title="2025-11-11 00:12:56 +08:00">1 天前
    @iOCZS 屏蔽视频开始前和播放中的贴片广告用 uBlock Origin Lite
    https://chromewebstore.google.com/detail/ddkjiahejlhfcafbddmgiahcphecmpfh

    自动跳过视频中博主口播恰饭的赞助广告用 SponsorBlock for YouTube - Skip Sponsorships
    https://chromewebstore.google.com/detail/mnjggcdmjocbbbhaepdhchncahnbgone
    Earthman
        10
    Earthman  
       1 天前   1
    一些建议
    1. 禁用格式,av1 格式需要较新的硬件才能硬解,可以切换禁用或者只用 av1 会很方便,目前用脚本 https://greasyfork.org/zh-CN/scripts/466131-disable-youtube-av1

    2. 倍速,使用 ctrl+鼠标滚轮比较方便,像 (YouTube-Enhancer)[https://github.com/YouTube-Enhancer/extension] 一样在播放器中间绘制提示就更好了,倍速一般以 0.5x 步进足矣,不过慢放需要 0.1x 步进

    3. 按频道记忆播放速度非常好。如果能按频道跳过开头或者结尾 xx 秒就更好了,例如某些新闻台总是插入开头结尾。其他部分的赞助广告就靠 sponsorblock 了。

    4. 新标签页打开链接,这个目前也用脚本

    5. 隐藏会员限定影片,有些会员限定影片会出现在页面上,不需要

    目前和 Enhancer for YouTube 一起用,因为 Enhancer for YouTube 使用了老式播放器界面,新版播放器界面似乎对于字幕处理有问题。
    followad
        11
    followad  
       1 天前
    我试试
    xuejianxianzun
        12
    xuejianxianzun  
       1 天前
    Edge 浏览器也可以从 Chrome 网上应用店安装扩展的,而且兼容性基本都不会有问题,所以你也没必要专门去测试 Edge 浏览器
    zpvip
        13
    zpvip  
       1 天前
    太强了. 不知道能不能把进度条及其以下的控制栏移动到视频下方? 这样视频下面的部分就不会被遮挡了.

    现在显示器越来越大, 我想不明白为什么要把控制栏放在视频的下方, 遮挡住视频画面. 有时候拉动进度条的时候,如果定位不准,会造成在视频上单击的效果,视频会暂停.
    yeahwong
        14
    yeahwong  
       1 天前
    谢谢,挺好用的,不过 Firefox 上为什么需要 Access browser tabs 这个权限?
    taikobo
        15
    taikobo  
       23 小时 31 分钟前
    绝大多数功能我都用 ublock 实现了
    但是这样一个插件肯定更方便
    imicksoft
        16
    imicksoft  
       22 小时 0 分钟前 via Android
    好像很厉害,我试用下
    N9f8Pmek6m8iRWYe
        17
    N9f8Pmek6m8iRWYe  
       21 小时 56 分钟前
    很好用,点赞
    Sosocould
        18
    Sosocould  
       21 小时 37 分钟前
    评论显示在右侧的功能可以有吗
    root8
        19
    root8  
       21 小时 11 分钟前
    好用
    0xZaTe
        20
    0xZaTe  
       20 小时 56 分钟前
    很好用,是否能增加一个网页窗口全屏的按钮
    koolpass
        21
    koolpass  
       20 小时 53 分钟前
    感谢 别人推荐的 过来用了一下 满意。从 YouTube Redux 转到这个了
    dark495
        22
    dark495  
    OP
       20 小时 47 分钟前 via iPhone
    @yeahwong 用来实时的发送功能状态变更,你会发现在插件里启用或禁用、修改功能,完全不会需要重新刷新标签页,是实时修改生效的。
    cns
        23
    cns  
       19 小时 55 分钟前
    @dark495 #5 我也想要 2.5 倍速,2 倍速不够快,3 倍速又太快了
    djangovcps
        24
    djangovcps  
       19 小时 38 分钟前
    最想要英文视频自动开启 英文自动翻译字幕,每次都要点击字幕,滑到最后中文简体
    tangqiu0205
        25
    tangqiu0205  
       19 小时 35 分钟前
    评论能放在视频右侧吗
    test00001
        26
    test00001  
       19 小时 28 分钟前
    @iOCZS 一针见血的指出所有用户关心的问题。对于抠搜的程序员来说不能去除广告就是没有体验。
    iOCZS
        27
    iOCZS  
       19 小时 10 分钟前
    @test00001 #26 识别出广告,然后快进到出现 skip ad 按钮,模拟点击,这样就跳过广告了。希望这个可以自动化。
    dark495
        28
    dark495  
    OP
       17 小时 48 分钟前   1
    @iOCZS @test00001 可以看一下源代码,有三种方式跳过视频广告:

    1. 在播放广告时直接超级倍速+将广告播放时间设置为视频总长度,以实现点击 skip ad 按钮
    2. Hook 掉 YouTube 的`window.fetch`,拦截并修改 http 请求,在加载视频时就告知播放器这个视频没有广告
    3. 将 Skip ad 按钮样式尺寸改为全播放器,方便点击。

    1 和 2 会被 YouTube 检测,播放可能十几次或几十次以后会出现 YouTube 的提示,提醒你禁用广告拦截插件,否则无法继续播放视频,这里我也做了自动点击“我已知道”。
    后续的我没有测,因为我开了 Premium ,所以没有对此做更进一步的研究。

    3 是完全没问题。
    dark495
        29
    dark495  
    OP
       17 小时 7 分钟前
    @djangovcps 这个开启`记住字幕启用状态`就可以了
    xxxxi
        30
    xxxxi  
       16 小时 50 分钟前
    @dark495 #4 观看长视频的时候,希望能始终看到视频进度
    Pasical
        31
    Pasical  
       16 小时 46 分钟前
    Youtube 的切换倍速可以用 Shift + < 或 > 来实现,用过就回不来了,比起 B 站的 Shift + 1 、2 要直观多了
    realpg
        33
    realpg  
    PRO
       16 小时 22 分钟前
    太爽了 首页一行 10 个视频 终于可以利用我的 4K 100%缩放显示器了
    ala2008
        34
    ala2008  
       15 小时 45 分钟前
    我去,你干了我想要做的事情,刚需!
    ayanami520
        35
    ayanami520  
       15 小时 3 分钟前
    挺好用的,尤其是自动帮忙切换清晰度功能,之前是通过好几个不同的脚本来实现的,不过还有一个脚本帮我自动使用新标签页打开视频我觉得蛮有用的,希望能更新到这个扩展里
    Yien
        36
    Yien  
       14 小时 55 分钟前
    imicksoft
        37
    imicksoft  
       11 小时 17 分钟前
    每行视频数量增加了,但视频标题字体大小没变,显示的字数变少了,建议能缩小一下字体,能设置的指定 px 或%。
    usn
        38
    usn  
    PRO
       11 小时 14 分钟前 via iPhone
    op 提到的有几点我建议谷歌直接实装到油管本管
    lemoncoconut
        39
    lemoncoconut  
       10 小时 59 分钟前
    倍速播放我以前写过一个 userscript ,很简单的一个按钮,点一下就能直接来回在 1x 1.5x 2x 切换
    https://github.com/lemonteaau/YouTube-Speed-Control-Button
    jaysonmac
        40
    jaysonmac  
       9 小时 39 分钟前
    感觉不错。YT 太傻了,不知道为啥一排从 5 个变 4 个到现在 3 个越来越少。
    RhysJonas
        41
    RhysJonas  
       7 小时 44 分钟前
    好用,但是 youtube 的搜索结果,插件好像无效,无法屏蔽短视频和一行多个视频。
    murchef
        42
    murchef  
       5 小时 48 分钟前
    Vivaldi 有个窗口显示错误的 BUG github 报给楼主了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1026 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 22:58 PVG 06:58 LAX 14:58 JFK 17:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86