Invidious缓存调优:3步让视频页面秒开 📅 发布时间:2026/9/5 20:54:15 👁 浏览次数: Invidious缓存调优3步让视频页面秒开【免费下载链接】invidiousInvidious is an alternative front-end to YouTube项目地址: https://gitcode.com/GitHub_Trending/in/invidious在 Invidious 上打开一个视频第一次访问时要实时去 YouTube 拉取标题、时长这些元数据网络一抖整个页面就卡住。Invidious 缓存机制正好治这个病数据拉回来一次后存到本地同一视频再来访问就直接读本地重复请求和出口带宽都能省下一截。看懂下面这两层缓存你第二次打开页面时基本是秒开。 30秒看懂原理先说清楚定位Invidious 不存视频文件画面数据由播放器直接向 YouTube 要。缓存管的是元数据——标题、时长、观看数再加上页面用到的 CSS、JS 和小图。你可以把它理解成快递柜第一次让快递YouTube送货上门货放进柜子里存着后面的人再来取直接开柜拿货不用快递再跑一趟。具体分两层第一层内存缓存管页面资源。静态文件第一次读取后会塞进内存之后直接从内存发总量上限 5MBCACHE_LIMIT 5_000_000 # 5MB cached_files {} of String {data: Bytes, filestat: File::Info}这两行来自 src/ext/kemal_static_file_handler.cr意思是少读磁盘顺带绕开打开文件数过多的报错。第二层数据库缓存管视频元数据。视频元数据写入 PostgreSQL 数据库保质期 6 小时由定时任务每小时清一次过期的WHERE updated (now() - interval 6 hours)这句 SQL 在 src/invidious/database/videos.cr 里定期清理由 src/invidious/jobs/clear_expired_items_job.cr 负责。带保质期的设计保证了你看到的观看数不会陈旧好几天。⚡ 立即能做的3件事6小时内重看同一个视频元数据还在缓存里不会再去敲 YouTube第二次打开几乎瞬间出页面。开启注释缓存把 config/config.example.yml 里的cache_annotations从false改成true老式视频注释也会入库省掉每次的拉取和解析。保持preload: true播放器在页面加载时就预缓冲一小段视频数据按播放键后不用对着黑屏干等。自托管用户盯住channel_refresh_interval默认 30m频道页按这个周期提前刷新值小则数据更新鲜值大则省带宽。进阶调优两处都要改源码后重新编译适合自托管实例1. 元数据保质期从 6 小时拉长到 12 小时WHERE updated (now() - interval 12 hours)改法是把上一节提到的 videos.cr 里的6 hours换成12 hours。效果缓存命中变多对 YouTube 的元数据请求接近砍半代价是数据最多陈旧 12 小时适合内容变动不快的实例。2. 静态资源内存缓存扩容把 kemal_static_file_handler.cr 里的CACHE_LIMIT从 5MB 提到 10MB写法是CACHE_LIMIT 10_000_000。效果更多 CSS/JS 能常驻内存重复访问连磁盘都不用碰代价是多占一倍内存动手前先看看机器剩余内存。常见坑与自查遇到同一个视频第二次打开还是慢可以试试打开浏览器网络面板看请求如果还有对 YouTube 的实时请求说明这条缓存已过期超过 6 小时被清掉并被清除等它重新拉取或按进阶部分把保质期拉长。遇到服务器报打开文件数过多可以试试检查静态文件处理器——内置的内存缓存就是为了少开磁盘文件设计的别改成每次直接读文件的模式扩容CACHE_LIMIT更稳妥。遇到老式视频的注释显示为空可以试试确认cache_annotations是否开启。注意空注释、只有卡片的注释本来就不会入缓存回落到实时拉取属于正常现象不用反复重启服务。遇到订阅频道页的数据显得陈旧可以试试把channel_refresh_interval从默认 30m 调到 10m频道刷新任务跑得更勤代价是后台对 YouTube 的请求变多。一句话总结Invidious 的缓存 静态资源进内存 视频元数据进数据库 定时任务自动清旧货照上面做三件事就能明显提速。如果你自托管的实例日后流量涨上来按订阅列表预缓存热门内容是下一个值得折腾的方向。【免费下载链接】invidiousInvidious is an alternative front-end to YouTube项目地址: https://gitcode.com/GitHub_Trending/in/invidious创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考