对接 Strapi CMS:awesome-seedance-2-prompts cms-client 提示词抓取与去重原理
对接 Strapi CMSawesome-seedance-2-prompts cms-client 提示词抓取与去重原理【免费下载链接】awesome-seedance-2-prompts 2000 curated Seedance 2.0 video generation prompts — cinematic, anime, UGC, ads, meme styles. Includes Seedance API guides, character consistency tips, and advanced video workflows.项目地址: https://gitcode.com/gh_mirrors/aw/awesome-seedance-2-promptsawesome-seedance-2-prompts 是一个收录 2000 条 Seedance 2.0 视频生成提示词的开源项目覆盖电影感、动漫、UGC、广告、表情包等多种风格。它的核心能力之一是通过 Strapi CMS 自动抓取提示词数据并在最新列表与精选列表之间做 ID 级去重最终一键生成 16 种语言的 README。本文将拆解 cms-client.ts 的抓取与去重原理帮你理解这条自动化内容流水线的运作方式。一、项目概览一个会自己长大的提示词库这个项目最聪明的地方是它不靠人工复制粘贴维护内容而是一条CMS → 脚本 → 多语言 README的自动化流水线数据源头Strapi CMS 中的video-prompts内容类型收录原始提示词、作者、出处链接、视频缩略图等抓取层scripts/utils/cms-client.ts 负责发起 API 请求并清洗数据生成层scripts/generate-readme.ts 按 16 种语言逐一生成README.md、README_zh.md等文件媒体层scripts/download-videos.ts 增量下载视频、压缩后上传地址记录在 video-urls.json整条链路只需一条命令即可运行pnpm generate二、抓取原理一次最新 精选双源查询核心函数是 fetchSeedancePrompts()它并不是简单地拉取全量数据而是拆成两次针对性查询这是理解整套设计的钥匙。2.1 为什么需要查两次查询筛选条件排序数量目的最新列表model seedance-2.0按sourcePublishedAt倒序200 条保证新提示词不遗漏精选列表model seedance-2.0且featured true按 CMS 的sort字段100 条保证运营手工排序的精选位不失效问题的关键在于一条提示词可能既是最新的又是精选的而且精选提示词往往发布时间较老可能根本不在最新 200 条之内。如果只查最新列表精选内容就会丢失如果只查精选列表新内容就进不来。所以必须双源查询再合并去重。2.2 请求细节每次请求都携带Authorization: users API-Key请求头密钥来自环境变量CMS_API_KEY并通过 qs-esm 序列化查询参数。共享的查询参数见 SHARED_QUERY_PARAMS做了两点优化depth: 2只展开两级关联字段避免拉取过深的嵌套数据select: { sourceMeta: false, raw: false }主动排除原始字段减小响应体积三、去重原理用 Set 按 ID 合并精选优先两次查询的结果在 合并逻辑 中处理思路非常简洁const seenIds new Setnumber(); // 记录已见过的提示词 ID const allDocs: VideoPrompt[] []; for (const doc of featuredData.docs) { // ① 精选优先入列 seenIds.add(doc.id); allDocs.push(doc); } for (const doc of mainData.docs) { // ② 最新列表跳过重复 ID if (!seenIds.has(doc.id)) { seenIds.add(doc.id); allDocs.push(doc); } }去重的关键就三处以 CMS 的主键id作为唯一标识——这是最可靠的去重键比标题、内容等文本字段更稳定用Setnumber做 O(1) 查重万级数据量下依然开销极低精选先入列、最新后入列——当同一条提示词同时出现在两个列表时保留精选列表中的版本确保运营方设置的sort排序和featured标记不被最新列表覆盖这样合并后数组的顺序天然就是精选在前、最新在后直接决定了最终 README 中提示词的展示顺序。四、清洗过滤五级缩略图提取链去重之后每条文档还要经过 processDoc() 的标准化处理其中最核心的过滤闸门是没有缩略图的提示词会被直接跳过——因为 README 中的每条提示词都配有一张可点击的视频封面。extractThumbnail() 定义了五级降级提取链按优先级依次尝试优先级数据源说明1videos[]Cloudflare Stream 缩略图或海报2results.docs[].video关联结果中的视频封面3sourceVideos[]外部源视频自带缩略图4media[]图片型提示词优先用 CDN 裁切的sizes.thumbnail5sourceMedia[]兜底的外部媒体地址这种逐级降级的写法让脚本对不同年代、不同字段结构的 CMS 数据都有容错能力——新数据走 Cloudflare Stream老数据也能靠sourceMedia兜底保证不会因为字段差异而漏掉内容。同理参考图与媒体图也都遵循结构化字段优先、sourceXxx平铺字段兜底的双通道策略见 参考图提取。五、增量更新让每次生成都更便宜抓取结果并不是每次都从零开始处理generate-readme.ts 中设计了增量机制视频增量下载video-urls.json记录了提示词 ID → Release 下载地址的映射只处理映射中不存在的新提示词DOWNLOAD_VIDEOSauto模式README 全量重写每次对 16 种语言见 SUPPORTED_LANGUAGES重新拉取并生成保证多语言版本始终与 CMS 同步配合 upload-to-github.ts 把压缩后的视频上传到 Release 并回写 URL整条流水线实现了只增量处理新增、全量保证一致的平衡。六、小结设计点做法收益双源查询最新 200 条 精选 100 条分开拉新内容与运营精选都不丢失ID 级去重Setnumber 精选优先合并后顺序即展示顺序逻辑极简五级缩略图提取结构化字段逐级降级到 source 兜底兼容新旧数据结构无图才丢弃增量视频处理video-urls.json映射新 ID重复运行成本低、速度快整套原理浓缩在一百多行的 cms-client.ts 中却支撑起了 2000 条提示词、16 种语言 README 的日常自动更新。对于想学习如何用 CMS 驱动文档生成的同学这套双源查询 ID 去重 字段降级兜底的组合拳是一个可以直接借鉴的轻量级数据管道范例。【免费下载链接】awesome-seedance-2-prompts 2000 curated Seedance 2.0 video generation prompts — cinematic, anime, UGC, ads, meme styles. Includes Seedance API guides, character consistency tips, and advanced video workflows.项目地址: https://gitcode.com/gh_mirrors/aw/awesome-seedance-2-prompts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AI Agent修bug:定位与修复任务拆分实战指南

AI Agent修bug:定位与修复任务拆分实战指南

1. 为什么“定位”和“修复”不能塞进同一个任务里1.1 一个让所有 Agent 开发者都踩过的坑如果你最近在折腾 AI Agent 自动修 bug,大概率遇到过这种场景:你写了一个提示词,让模型“找到这个报错的原因并修复它”,然后满怀期待地跑…

2026/10/31 0:35:58 阅读更多 →
Claude失忆怎么破?claude-mem用MCP给它装上外置记忆库

Claude失忆怎么破?claude-mem用MCP给它装上外置记忆库

你在终端里敲下一行命令,Claude 立刻进入状态,帮你分析需求、写代码、调配置,一切都行云流水。但只要把窗口一关,或者换一个会话重新开始,它就像失忆了一样,什么都不记得。这种感觉我相信每一位深度用过 Cl…

2026/10/28 14:14:22 阅读更多 →
claude-mem 实战:构建 AI 编程助手的长期记忆系统

claude-mem 实战:构建 AI 编程助手的长期记忆系统

1. 从零认识 claude-mem:它到底在解决什么痛点第一次看到claude-mem这个名字,很多人会下意识以为它又是一个"给 Claude 加记忆"的第三方插件。这个理解方向没错,但不够准确。真正用过一段时间之后你会发现,它要解决的核…

2026/10/28 14:14:23 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/31 0:19:11 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/30 9:20:34 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/30 10:19:21 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/30 0:01:37 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/30 10:19:39 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/30 9:21:37 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 17:32:24 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 10:28:40 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 0:09:01 阅读更多 →