跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(LCZ-Blue)
  • 不使用皮肤
  • LCZ-Green
  • LCZ-Blue
  • LCZ-Black
折叠
品牌标识

抡锤者

首页 版块 标签
硬件
装备秀
AI 广场 App
  1. 主页
  2. 版块
  3. 随便聊聊
  4. 把免费无广告的 NewTube 刷不出新视频这事用一个补丁解决了,安卓基友请享用!

把免费无广告的 NewTube 刷不出新视频这事用一个补丁解决了,安卓基友请享用!

已定时 已固定 已锁定 已移动 随便聊聊
编程
1 帖子 1 发布者 91 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • fcmeF
    fcmeF
    fcme
    王侯将相
    编写于 最后由 fcme 编辑
    #1

    不想用官方YouTube会员的朋友应该对电视的SmarTube和 手机的NewTube(SmartTube 的手机分支)有刚需,而这个手机版NewTube有个很闹心的毛病:下拉刷新,出来的还是刚才那几条视频,越刷越烦。

    查下来原因不在客户端缓存,而在未登录时 InnerTube 给的 browse 接口本身就是几个固定 topic feed 轮播:实测 FEtopics_music 23 张里重复 19 张、FEtopics_news 16 张里重复 11 张、FEtopics_gaming 50 张里重复 47 张,整体重复率 73% 到 94%。所以多刷新、多拉几页是没用的,服务端压根没给你新东西。

    刷新对比

    一、思路

    不改服务端,也不指望接口开恩。逻辑只有一条:今天已经给你看过的,就别再给你看第二遍。

    二、改了哪些地方

    基线是上游 1.17.1(commit 6f96a1b),主仓 10 个文件,477 行增、6 行删:

    RecentHomeCards + HomeFeedData:记住今天首页出现过的视频 id,上限 1500 个,24 小时后自动过期
    VideoGroup:只在 Home 和相关推荐这两个位置丢掉看过的,播放页、订阅、搜索完全不受影响
    每次刷新最多丢 40 张,避免整屏被丢空
    BrowsePresenter:首页缓存从 5 分钟缩到 60 秒;ShelfTail 原来一轮加不够规定张数就直接收工,现在允许再试 3 轮
    子模块 MediaServiceCore:匿名判定缓存从 30 分钟缩到 5 分钟,几个 topic 轮换着发

    核心逻辑就这两行:

    if (freshHomeCard && recent.shouldDrop(video.videoId)) return;  // 看过的直接不要
    if (freshHomeCard) recent.record(video.videoId);                // 留下来的记下来
    

    三、效果

    同一个首页连刷四次,看前 12 张里真正新增了几张:原版是 12、2、1、0,打完补丁是 12、12、12、12。四次抓取总共能拿到的不同卡片只有 155 张,也就是说原版从第二次刷新起就在反复嚼同一批。

    四、开关在哪

    Settings -> Tabs and feeds -> Show new videos on Home,默认开着,关掉就是原版行为。

    五、说明

    未登录才是重灾区。登录状态下首页有多粘我没能复现出来(匿名接口返回首页是 0 张视频加一个引导卡片),所以这套改动对不登录使用的场景收益最大。搜索、订阅、播放页相关推荐的排序都没动,chip 分类那一套也没碰。

    APK 是 debug 版,包名带 .debug,可以和商店版并存,不用先卸载;架构 arm64-v8a,很老的 32 位机器装不上。SHA-256:c3cdb11ef99021db85a69ec3900528fcba583ade3e79857a43675d7c11e480de

    个人的 repo,欢迎指教
    fork 的原仓库(补丁在 main,一个 commit 9c862ef6)
    https://github.com/halonc/NewTuber
    APK 下载页
    https://github.com/halonc/NewTuber/releases/tag/v1.17.1-fresh-home
    子模块也 fork 了(GitHub 的 fork 不带子模块内容,不 fork 编译不过)
    https://github.com/halonc/MediaServiceCore

    个人的repo,欢迎指教
    https://github.com/halonc/R9700-Strata-Qwen3.8-Flash-Next-Tuning
    https://github.com/halonc/AMD-R9700-rdna4-SGlang-Maxx

    1 条回复 最后回复
    0

    你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

    厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

    有了你的建议,这篇帖子会更精彩哦 💗

    注册 登录
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门
    • 用户
    • 群组