Hexo 腾讯视频追剧页插件:hexo-tengxun-eucalyptus 安装使用

Hexo 腾讯视频追剧页插件:hexo-tengxun-eucalyptus 安装使用

一个 Hexo 通用插件,自动同步腾讯视频「加追」和「预约」列表,生成卡片网格追剧页。不绑定 anzhiyu 主题,任何 Hexo 博客都能用。

阅读原文 →

最终效果

Demo:https://blog.eucalyptus.cc/zhuijus/

核心能力:

  • 账号同步:拉取腾讯视频「加追」和「预约」列表,自动按集数进度分组
  • 手动清单:不想绑账号也能手动填 cid 维护清单
  • 卡片网格:竖版海报墙 + tabs 切换 + 搜索过滤
  • 智能增量:集数没变的剧跳过详情接口,大幅缩短同步时间
  • Cookie 降级:登录态过期时自动用上一次缓存按标记重分组,页面不崩

安装

方式一:从 npm(推荐,稳定版)

bash 复制代码
npm install hexo-tengxun-eucalyptus

方式二:从 GitHub(跟随最新 master,适合想改源码的同学)

bash 复制代码
npm install git+https://github.com/ShiningStarLi/hexo-tengxun-eucalyptus.git

Hexo ≥ 5.0 自动识别插件,无需额外注册。

配置(可选)

在站点 _config.yml 里加一段 zhuiju_vqq:,所有字段都有默认值,不配也能用:

yaml 复制代码
zhuiju_vqq:
  enable: true            # 是否启用(默认 true)
  path: zhuijus/          # 生成的页面路径(默认 zhuijus/)
  title: 追剧列表         # 页面标题(默认「追剧列表」)
  quote: ''               # 页面顶部引言(可选)
  columns: 5              # 桌面端每行卡片数(默认 5)
  primary_color: null     # 主色调 null 时跟随 Hexo 主题变量 --anzhiyu-main
  groups:                 # 分组定义(顺序即 tabs 顺序)
    - { key: airing,    label: 追剧 }
    - { key: finished,  label: 已完结 }
    - { key: reserved,  label: 预约 }

两种运行模式

A. 账号同步(推荐)

在浏览器登录腾讯视频(https://v.qq.com)后:

  1. 打开 DevTools → Console
  2. 执行 copy(document.cookie) --- 整串 cookie 已复制到剪贴板
  3. 粘贴到博客项目根目录,保存为 .vqq-cookie(无扩展名)

然后跑同步命令:

bash 复制代码
npx hexo zhuiju -u

脚本自动调三个接口:

接口 鉴权 用途
getAlbumList 需要 Cookie 「加追」列表(scene=1)+ 「预约」列表(scene=2)
float_vinfo2 无 单部剧详情:标题/封面/年份/题材/主演/集数
GetGradeDetail 无 评分、评分人数、好评率

Cookie 通常一到两个月过期,过期时脚本会自动用上一次缓存兜底,页面照常显示,只是不会更新数据。什么时候想更新了,重新 copy(document.cookie) 覆盖 .vqq-cookie 再跑一遍就行。

B. 手动清单

不想用账号同步的话,在 source/_data/zhuiju_src.json 里手动填:

json 复制代码
{
  "airing": [
    { "cid": "xxx", "url": "https://v.qq.com/x/cover/xxx.html" }
  ],
  "finished": [
    { "cid": "yyy", "url": "https://v.qq.com/x/cover/yyy.html" }
  ]
}

cid 就是腾讯视频 URL https://v.qq.com/x/cover/<cid>.html 里那串字母数字。之后同样跑 npx hexo zhuiju -u。

构建部署

bash 复制代码
# 1. 同步数据(A 模式需要 Cookie,B 模式需要 zhuiju_src.json)
npx hexo zhuiju -u

# 2. 构建静态页面(zhuijus.json → public/zhuijus/index.html)
npx hexo clean && npx hexo generate

# 3. 本地预览
npx hexo s

# 4. 部署到你的服务器(用你自己的部署方式:rsync / git push / 云函数 ...)

构建后访问 https://你的域名/zhuijus/ 就能看到追剧页。

文件结构

复制代码
项目根目录/
├── node_modules/
│   └── hexo-tengxun-eucalyptus/   # npm 插件(自动注册 command + generator)
├── source/
│   ├── _data/
│   │   ├── zhuijus.json           # 同步结果缓存(构建时只读这个,不联网)
│   │   └── zhuiju_src.json        # 手动清单(B 模式,可选)
│   └── ...
├── .vqq-cookie                    # 腾讯视频登录 Cookie(A 模式,gitignore 建议忽略)
└── _config.yml                    # 可选:zhuiju_vqq 配置段

实现细节(源码阅读)

下面是插件内部的一些设计思路,对想二次开发的同学有用。

1. 并发抓详情

原脚本串行 for...of + sleep(250ms),27 部剧 × 2 个接口 ≈ 14 秒。

改成每批 5 个并发(Promise.all + chunk 分组),因为详情接口和评分接口都是无鉴权的,腾讯不会限流。耗时从 14s 降到 2-3s。

2. 智能增量更新

列表接口返回的 mark_label_list[].prime_text 已经告诉我当前集数了。和上次缓存对比一下,没变的剧直接沿用旧数据,跳过详情+评分接口。

实测效果:27 部里通常只有 3-5 部在更新,剩下 22 部全跳过 → 跑一轮 3-5 秒。

catch 到 ret=15006(登录态失效)不退出,而是读上次缓存 zhuijus.json,重新按 autoGroup 分组写回去,再跑 hexo generate。页面照常显示。

封面缩略分流

腾讯 vcover CDN 的缩略后缀横版竖版不通用:

CDN /0 原图 /220 /498
vt-pic(竖版海报) 1.17 MB 55 KB ✅ ✅
hz-pic(横版海报) 366 KB 400 ❌ 42 KB ✅

所以插件里按 URL 分流:

javascript 复制代码
// vt-pic 用 /220,hz-pic 用 /498
const sizedCover = (url) => {
  const clean = url.replace(/\/(0|220|300|498|640)$/, '');
  const thumb = /hz-pic/i.test(clean) ? '/498' : '/220';
  return `${clean}${thumb}`;
};

腾讯 CDN 不支持 AVIF 参数(imageView2、imageMogr2 都无响应),想转 AVIF 得自己下载 → 转码 → 传 CDN,收益不大。

主题适配

插件生成的页面用独立的 <style> 标签包裹,不污染主题样式。主色调默认跟随 Hexo 主题变量 var(--anzhiyu-main, #3db4f2) ------ anzhiyu 用户直接用,其他主题如果没这个变量会 fallback 到蓝色 #3db4f2,或者在 _config.yml 的 zhuiju_vqq.primary_color 里硬指定一个。

UI 设计参考

参考项目 说明 链接
Hexo AniList 卡片网格 + tabs + 搜索 + 评分徽章,本次追剧页的主要参考 https://ajratnam.github.io/hexo-anilist/customization.html
hexo-bilibili-bangumi anzhiyu 主题自带的 B 站追番页,同款卡片布局 主题内置 /bangumis/

仓库

有问题欢迎在评论区留言,看到都会回。


原文地址:腾讯视频追剧页部署全记录

相关推荐
怒放的生命19918 天前
本地用 pnpm 省磁盘,团队继续用 npm:极简实践
前端·npm·node.js
江屿风11 天前
【Plain Language Large Model】【从浏览器到全栈:一课精通Node.js三剑客】流食般投喂
笔记·前端框架·npm·node.js·js·npx
少年的范儿13 天前
Windows 安装 Node.js 教程:nvm 版本管理 + pnpm 安装配置
windows·npm·node.js
peach13 天前
同样是装依赖,为什么 npm 长成 node_modules,Maven 长成 .m2
npm·node.js·maven
chunyublog15 天前
HDFS 上传文件名空格问题排障教程
前端·javascript·npm
MasonYyp17 天前
安装npm依赖仓库Verdaccio
前端·npm·node.js
jiangliushi618 天前
GPT-6.1 Sol 免费用:PowerShell 装 Codex 报“禁止运行脚本 npm.ps1”?一条命令解决
前端·gpt·npm
Elcker19 天前
YnuoAgent(依诺):一个 npm 包,跑起属于自己的 AI 研发平台
前端·人工智能·npm
Patrick_Wilson22 天前
悬浮提示从哪来:LSP、tsserver 与 .d.ts
typescript·npm·前端工程化