03-homepage-inventory-and-discovery-method
Yomiya 首页内容盘点与探寻方法
Section titled “Yomiya 首页内容盘点与探寻方法”状态:基于 iOS TestFlight
0.7.0 (99)首页盘点。 事实来源:线上 beta/v2/featured响应、公开 playlist API、Admin playlist 视频状态接口、iOS0.7.0标签对应的首页契约、服务端与 Admin 仓库检查。 最后检查:2026-05-21,Asia/Shanghai。
1. 文档目的
Section titled “1. 文档目的”这份文档记录当前 Yomiya iOS 首页到底有哪些内容,以及这些信息是如何探寻出来的。它不是一次性的聊天总结,而是后续沉淀「首页规划 skill」时可以复用的事实底稿。
核心原则:
- 不只依赖记忆、截图或手写产品列表做首页规划。
- 先确认 iOS 实际读取的接口契约,再拉取真实首页 API,再把每个栏目和内容项映射回 Admin 或服务端能管理的对象。
- 首页规划的结论必须能回到
/v2/featured和 iOS 渲染结果中验证。
2. 当前首页结构
Section titled “2. 当前首页结构”iOS 0.7.0 首页是服务端驱动的结构:
- UI 入口:
FeaturedViewController->FeaturedView - 数据入口:
FeaturedRepository.featuredV2(language:) - API 路径:
/v2/featured?language=... - 缓存场景:
featured_home_v2 - 网络模型:
FeaturedV2Response - 渲染适配:
FeaturedHomeSectionV2Adapter
首页顶部的 chips 不是 /v2/featured 返回的 section,而是 iOS 本地根据首页数据组织出的 tab:
推荐播客:只有当首页内容中能还原出 podcast shows 时才展示。
其中 推荐 tab 渲染 /v2/featured.home_sections。
3. 线上 API 快照
Section titled “3. 线上 API 快照”本次探寻使用的请求:
curl -sS \ -H 'x-client-platform: ios' \ -H 'x-client-version: 0.7.0' \ -H 'x-client-build: 99' \ 'https://beta-api.yomiya.app/v2/featured?language=zh-CN'当时返回:
- HTTP:
200 schema_version:2home_sections:11- 响应大小:
53524bytes
4. 栏目盘点
Section titled “4. 栏目盘点”| 顺序 | 栏目 | kind | item 类型 | 展示/候选 | 当前内容 |
|---|---|---|---|---|---|
| 1 | 顶部频道 rail | collection_rail | channel | 6/6,limit 6 | 1. NHK NEWS WEB EASY(NHK) 2. Yahoo! 娱乐新闻(YahooNewsEntertainment) 3. 简单日语(Watanoc) 4. 多读训练场(Yomujp) 5. 福娘童话(Hukumusume) 6. Yahoo! News IT & Science(YahooNewsITScience) |
| 2 | 精选推荐 | vertical_content_list | youtube_playlist | 5/5,limit 5 | 1. 日本民间故事 N5-N4 低速 2. 日语情景小剧场 3. 日本旋律:边听边学 4. JLPT 临考必看!全级别考点神总结 5. 高阶挑战 · 东大学霸神仙打架 · 原生语速 |
| 3 | 日语初学入门 | collection_rail | youtube_playlist | 5/5,limit 5 | 1. 从零开始练读写(平假名&片假名) 2. 日语口语短语:从初级到中级 3. N5|N4 日语语法 4. 平假名读读写写 5. 影子跟读慢速练习 |
| 4 | 日语播客随身听 | vertical_content_list | podcast_episode | 4/4,limit 4 | 1. 第3回:新しい自分を見つける近道+私は私(中村Radio|日本外教纯正日语(中高级)) 2. Fight Argue/喧嘩 - JapanesePodcast#12(Everyday Japanese Podcast) 3. 【N5-N4】Ep263 Freedom / Japanese Podcast for Beginners(Japanese with Shun) 4. Vol.452 コスタリカ旅行の話 (Japanese Radio for Listening practice)(YUYUの日本語Podcast【Japanese Podcast】) |
| 5 | 日语场景练习 | collection_rail | youtube_playlist | 3/3,limit 3 | 1. 日语情景小剧场 2. 边走边看:全注音日常日语 3. さくらニュース2022 |
| 6 | 听歌学日语 | vertical_content_list | youtube_playlist_video | 4/4,limit 4 | 1. HANA - Blue Jeans / THE FIRST TAKE(听歌学日语) 2. 中島美嘉 - 僕が死のうと思ったのは / THE FIRST TAKE(听歌学日语) 3. 中島美嘉 - 雪の華 / THE FIRST TAKE(听歌学日语) 4. DISH// (北村匠海) - 猫 / THE FIRST TAKE(听歌学日语) |
| 7 | 日语磨耳朵 | collection_rail | youtube_playlistchannel | 3/3,limit 3 | 1. 日语口语短语:从初级到中级 2. 多读训练场(Yomujp) 3. N5|N4 日语语法 |
| 8 | 日语时事新闻 | vertical_content_list | news | 5/5,limit 5 | 1. 習近平国家主席とプーチン大統領が会って話をした(NHK NEWS WEB EASY) 2. 鹿児島県の奄美地方で強い地震があった(NHK NEWS WEB EASY) 3. 「綾瀬はるかが2人おる」「やっぱり似てる」26歳女優TV共演にSNS沸く「顔のタイプが似てる2人が共演してる」綾瀬に憧れ芸能界に(Yahoo! 娱乐新闻) 4. 新しい学校のリーダーズSUZUKA、制服脱いだ姿にネット衝撃「超ハンパない」「控えめに言っても最強」「笑顔素敵すぎな」(Yahoo! 娱乐新闻) 5. 手のひらに“溶けて”眠るハムスター⇨安心して懐く様子に「お餅より伸びてる」「骨どこにいった!?」の声(Yahoo! News IT & Science) |
| 9 | 高阶全速日语 | collection_rail | youtube_playlist | 3/3,limit 3 | 1. 高阶挑战 · 东大学霸神仙打架 · 原生语速 2. TEDx 日本演讲精选 3. 日本职人志:探秘顶级手工料理刀 |
| 10 | 福娘经典童话 | vertical_content_list | news | 5/5,limit 5 | 1. 死んだ人たちの集会(福娘童话) 2. トルーデおばさん(福娘童话) 3. おばあさんの頼み(福娘童话) 4. あまいアメの雨(福娘童话) 5. つぐみのひげの王様(福娘童话) |
| 11 | 儿童学日语 | collection_rail | channelyoutube_playlist | 3/3,limit 3 | 1. 福娘童话(Hukumusume) 2. 平假名读读写写 3. 日本民间故事 N5-N4 低速 |
5. 对象级盘点
Section titled “5. 对象级盘点”5.1 旧频道 rail
Section titled “5.1 旧频道 rail”首页第一排保留了老版本遗留频道,主要是照顾已有用户的使用习惯,让旧内容入口仍然可见。
| object | id | 展示标题 | Source key |
|---|---|---|---|
channel | 1 | NHK NEWS WEB EASY | NHK |
channel | 3 | Yahoo! 娱乐新闻 | YahooNewsEntertainment |
channel | 4 | 简单日语 | Watanoc |
channel | 5 | 多读训练场 | Yomujp |
channel | 2 | 福娘童话 | Hukumusume |
channel | 56 | Yahoo! News IT & Science | YahooNewsITScience |
5.2 作为首页合集使用的 YouTube playlists
Section titled “5.2 作为首页合集使用的 YouTube playlists”这些 playlist 是当前首页学习内容组织的核心,它们承担了分层学习、场景练习、听歌、磨耳朵和高阶输入等任务。
| id | 标题 | YouTube playlist id | 当前出现位置 |
|---|---|---|---|
| 1 | 日本民间故事 N5-N4 低速 | PLgnsmqQq_8mmtKgexbjDuN3YKVkoX4EBg | 精选推荐、儿童学日语 |
| 18 | 日语情景小剧场 | PLWbbTej6f09ihlJqP5_VhKB-WuYUalZrb | 精选推荐、日语场景练习 |
| 20 | 日本旋律:边听边学 | PLINFE8v4DOhtzhoO8UEni4CMdkO3wMqpu | 精选推荐 |
| 27 | JLPT 临考必看!全级别考点神总结 | PLINFE8v4DOht0FpOfdw6R8XcbBMEpShKg | 精选推荐 |
| 16 | 高阶挑战 · 东大学霸神仙打架 · 原生语速 | PLWPrDZ_jwb2RNeHYBghFVHod9OnaIsxvv | 精选推荐、高阶全速日语 |
| 26 | 从零开始练读写(平假名&片假名) | PLVGw_A21plC4pxEbXC3Sv_9N6NizqxM3M | 日语初学入门 |
| 6 | 日语口语短语:从初级到中级 | PL41R2vH_CL40PRnrrD1CMTGVXLiSNQbdo | 日语初学入门、日语磨耳朵 |
| 10 | N5|N4 日语语法 | PLP6jQzrtQ718MfJthddI8Gv74SDb5Na64 | 日语初学入门、日语磨耳朵 |
| 5 | 平假名读读写写 | PLs_Rh96nh6ulFeClYRoHVaEOBuMLC_Nvq | 日语初学入门、儿童学日语 |
| 21 | 影子跟读慢速练习 | PLDLW62yOhLg4jAPebYqTaXADD7LoTTeOn | 日语初学入门 |
| 19 | 边走边看:全注音日常日语 | PLFGs3d9SobfjFHWguksKU91CC5cyEFeWi | 日语场景练习 |
| 3 | さくらニュース2022 | PLKeSkVQhqoOpUwHUqyqfvce4Wtxny7RQG | 日语场景练习 |
| 4 | TEDx 日本演讲精选 | PLsRNoUx8w3rOHjXIU5EE4KOiIagv9yQaG | 高阶全速日语 |
| 17 | 日本职人志:探秘顶级手工料理刀 | PLlMHo2E1ine74IpWFIAgRv18dt0g14hHO | 高阶全速日语 |
5.3 竖向内容流中的对象
Section titled “5.3 竖向内容流中的对象”当前竖向栏目主要暴露三类对象:
podcast_episode:用于日语播客随身听。youtube_playlist_video:用于听歌学日语,每个 item 同时带有生成的newsid 和youtube_video_id。news:用于日语时事新闻和福娘经典童话。
这些类型不是单纯的展示标签,而是决定了 Admin、服务端和 iOS 跳转链路的归属。
| item type | 用户点击目标 | 当前 Admin 归属 | 对首页规划的影响 |
|---|---|---|---|
channel | 频道页 | Channels | 封面、可见性、命名会直接影响首页 rail |
youtube_playlist | playlist 详情页 | YouTube Playlists 列表页 + playlist 详情视频状态页 | playlist 的发现、筛选、转录状态、可见性和栏目归属需要沉淀成 skill/Admin 工作流 |
youtube_playlist_video | news detail / YouTube 模式 | 导入和转录后的 Articles | 排查卡住或缺失时必须保留 playlist 上下文 |
podcast_episode | 生成后的 news detail | PodcastShows episode drawer + Articles | episode 能否出现在首页,取决于转录任务和生成 news 的可见性 |
news | news detail | Articles | visibility、频道、图片、风险和新鲜度会影响首页展示 |
5.4 首页 playlist 准备度与隐藏已入库内容
Section titled “5.4 首页 playlist 准备度与隐藏已入库内容”本节回答一个更运营化的问题:有些 playlist 已经有节目转录完成并入库,但因为生成的 news.visibility 仍是 INVISIBLE,用户在首页或 playlist 详情页看不到这些节目。
统计口径:
- 首页 playlist 来源:
/v2/featured?language=zh-CN中的youtube_playlist和youtube_playlist_videoitem。 - 用户可见数:公开
/v1/youtube-playlists?page=1&page_size=100&language=zh-CN返回的video_count。 - 已入库数:Admin
GET /admin/v1/youtube-playlists/:id/videos?page=...中status = RECORDED且有news_id的行。 - 已入库但未外露:
status = RECORDED,有news_id,但visibility NOT IN ('VISIBLE','MEMBERSHIP_VISIBLE','TIME_LIMIT_VISIBLE')。 NEW_ON_YOUTUBE表示 playlist 里发现了视频,但还没有转录生成news;TRANSCRIPTION_FAILED表示转录链路失败,不应算作“已准备好”。
截至 2026-05-21 16:05,本次复查覆盖首页涉及的 15 个 YouTube playlist:
- 用户可见节目合计:94 条。
- 已入库节目合计:94 条。
- 已入库但未外露节目合计:0 条。
#21 影子跟读慢速练习与#27 JLPT 临考必看!全级别考点神总结已从用户侧空详情恢复为各 3 条可见节目。#27的 Admin 详情入口:https://admin.yomiya.app/YoutubePlaylists/27。
| playlist | 首页栏目 | 用户可见 | 已入库 | 已入库但未外露 | 判断 |
|---|---|---|---|---|---|
#1 日本民间故事 N5-N4 低速 | 精选推荐、儿童学日语 | 34 | 34 | 0 | 内容充足,可作为稳定样板。 |
#3 さくらニュース2022 | 日语场景练习 | 5 | 5 | 0 | 已补齐到 5 条,可作为场景栏目稳定内容。 |
#4 TEDx 日本演讲精选 | 高阶全速日语 | 5 | 5 | 0 | 已补齐到 5 条,高阶栏目可用。 |
#5 平假名读读写写 | 日语初学入门、儿童学日语 | 4 | 4 | 0 | 能填首页,但详情内容仍偏薄。 |
#6 日语口语短语:从初级到中级 | 日语初学入门、日语磨耳朵 | 4 | 4 | 0 | 能填首页,但详情内容仍偏薄。 |
#10 N5|N4 日语语法 | 日语初学入门、日语磨耳朵 | 2 | 2 | 0 | 明显偏少,需要继续导入/转录候选内容。 |
#16 高阶挑战 · 东大学霸神仙打架 · 原生语速 | 精选推荐、高阶全速日语 | 5 | 5 | 0 | 已补齐到 5 条,高阶栏目可用。 |
#17 日本职人志:探秘顶级手工料理刀 | 高阶全速日语 | 3 | 3 | 0 | 可见内容偏少,需要继续导入/转录候选内容。 |
#18 日语情景小剧场 | 精选推荐、日语场景练习 | 7 | 7 | 0 | 首页与详情都有一定厚度,可继续作为场景练习主力。 |
#19 边走边看:全注音日常日语 | 日语场景练习 | 4 | 4 | 0 | 能填首页,但详情内容仍偏薄。 |
#20 日本旋律:边听边学 | 精选推荐 | 6 | 6 | 0 | 已补齐,听歌学习方向可用。 |
#21 影子跟读慢速练习 | 日语初学入门 | 3 | 3 | 0 | 空详情已修复;仍需继续扩容到 5 条以上。 |
#24 听歌学日语 | 听歌学日语 | 4 | 4 | 0 | 当前竖向栏目能填满,后续仍需补更多歌。 |
#26 从零开始练读写(平假名&片假名) | 日语初学入门 | 5 | 5 | 0 | 已补齐到 5 条,入门读写栏目可用。 |
#27 JLPT 临考必看!全级别考点神总结 | 精选推荐 | 3 | 3 | 0 | 空详情已修复;仍需补 N4/N5 或更多考前冲刺内容。Admin 入口:https://admin.yomiya.app/YoutubePlaylists/27。 |
5.5 已入库但未外露节目明细
Section titled “5.5 已入库但未外露节目明细”本轮复查时,首页相关 playlist 中已经没有 RECORDED + INVISIBLE 的节目。此前 #3/#4/#16/#18/#20/#21/#26/#27 的 19 条隐藏已入库节目,已经全部变成用户可见状态。
因此当前不是“已有内容未外露”的问题,而是“部分 playlist 详情深度仍偏薄”的问题。
5.6 栏目层面的准备度判断
Section titled “5.6 栏目层面的准备度判断”按用户体验优先级看,当前首页已经从“有空详情入口”恢复为“所有首页 playlist 都至少有可见内容”,但内容厚度仍不均衡:
- 已经可作为稳定样板:
#1、#3、#4、#16、#18、#20、#26。这些 playlist 至少有 5 条可见内容,用户点进去不再显得空。 - 能填首页但详情偏薄:
#5、#6、#19、#21、#24。这些目前 3-4 条可见内容,建议继续补到 5-8 条。 - 明显需要扩容:
#10、#17、#27。其中#10只有 2 条,#17/#27只有 3 条;#27虽然空详情已修复,但作为 JLPT 考前内容,应补齐 N4/N5 或按等级做更完整分层。
后续首页规划 skill 应把建议从“发布隐藏内容”转为“扩容薄弱 playlist”:
- 每次改可见性后,先复查公开
video_count是否等于 AdminRECORDED数。 - 对少于 5 条的 playlist,优先寻找同主题、同难度、同学习场景的候选视频。
- 对
TRANSCRIPTION_FAILED的行,单独判断是重试、换 provider,还是不适合导入。 - 对
NEW_ON_YOUTUBE很多但RECORDED很少的 playlist,重点不是前台配置,而是导入/转录队列和质量筛选。
6. 本次信息是怎么探寻出来的
Section titled “6. 本次信息是怎么探寻出来的”这一节是后续首页规划 skill 最应该固化的流程。
6.1 先读仓库说明,确定边界
Section titled “6.1 先读仓库说明,确定边界”先读服务端和 Admin 仓库说明:
/Users/cc/Documents/yomiya-service/AGENTS.md/Users/cc/Documents/yomiya-service/CLAUDE.md/Users/cc/Documents/yomiya-service/services/admin/CLAUDE.md
目的:
- 确认服务端和 Admin 的目录形态。
- 避免凭空假设 Admin 已经有某个管理能力。
- 把代码事实、规划文档和产品判断分开。
6.2 再确认 iOS 当前版本的首页契约
Section titled “6.2 再确认 iOS 当前版本的首页契约”确认首页时要用匹配 TestFlight 版本的 tag 或干净 worktree,而不是脏工作区里的未提交代码。
对 0.7.0 来说,可用:
git -C /Users/cc/Documents/EveryDayJapanese-iOS/.worktrees/yomiya-project-reconcile-main \ grep -n "v2/featured\\|FeaturedV2Response\\|FeaturedHomeSectionV2Adapter" \ 0.7.0 -- EveryDayJapanese Modules能证明当前首页契约的关键文件:
Modules/Sources/Core/Repository/FeaturedRepository.swift- endpoint 是
v2/featured; - query param 是
language; - cache scene 是
featured_home_v2。
- endpoint 是
Modules/Sources/Core/Model/Featured/FeaturedV2Response.swift- response 包含
schema_version和home_sections; - 支持的 section kind 是
collection_rail和vertical_content_list; - 支持的 item type 是
channel、news、podcast_episode、youtube_playlist、youtube_playlist_video。
- response 包含
EveryDayJapanese/Controller/Featured/FeaturedHomeSectionV2Adapter.swift- 把服务端 response 映射为 iOS 可渲染的 section;
- 丢弃未知 section kind 或未知 item type;
- 在安全时派生 fallback target。
EveryDayJapanese/Controller/Featured/FeaturedViewModel.swiftrecommendSections来自/v2/featured;podcastShows从首页 items 中还原;播客tab 只有在 podcast shows 存在时才出现。
6.3 拉取真实首页 API
Section titled “6.3 拉取真实首页 API”使用和 iOS 相同语义的 client hints:
curl -sS \ -H 'x-client-platform: ios' \ -H 'x-client-version: 0.7.0' \ -H 'x-client-build: 99' \ 'https://beta-api.yomiya.app/v2/featured?language=zh-CN'解析时至少要记录:
data.schema_versiondata.home_sections[].iddata.home_sections[].kinddata.home_sections[].titledata.home_sections[].eligible_total_countdata.home_sections[].home_exposed_limitdata.home_sections[].items[].type- 每种 item type 对应的 typed content:
channel_content.channelyoutube_playlist_content.playlistyoutube_playlist_video_content.playlist/news/youtube_video_idpodcast_episode_content.show/episodenews_content.news/channel
不能只读 section title。一个真正可用的首页规划 skill 必须保留 item type、target type、后端 id、外部 YouTube playlist id、视频数量、来源频道或来源 show。
6.4 回到服务端和 Admin 检查可管理能力
Section titled “6.4 回到服务端和 Admin 检查可管理能力”在 /Users/cc/Documents/yomiya-service 中搜索:
rg -n "v2/featured|home_sections|FeaturedHomeLayout|collection_rail|vertical_content_list|youtube_playlist|podcast_episode" \ internal cmd services/admin docs/plans docs/audits本次看到的仓库事实:
- Admin 已有 Articles、Channels、YouTube channel、PodcastShows、AI Explanations 等相关页面。
- 最新服务端已经有 YouTube playlist 管理页面:
- Admin 页面:
services/admin/pages/YoutubePlaylists/index.vue - playlist 详情页:
services/admin/pages/YoutubePlaylists/[id].vue #27线上入口:https://admin.yomiya.app/YoutubePlaylists/27- Admin API:
GET /admin/v1/youtube-playlists、GET /admin/v1/youtube-playlists/:id/videos
- Admin 页面:
- playlist 详情视频状态页会透出
status、news_id、visibility,因此可以判断“已入库但未外露”的节目。 - 首页 section 管理仍应回到
FeaturedHomeLayout//v2/featured的真实契约确认,不要只凭 Admin 页面存在就假设 iOS 已经渲染。 - 已有文档已经指出:首页工作不能从自由发挥的视觉原型开始,而应该从真实
/v2/featured对象模型开始。
6.5 深入 playlist 统计隐藏已入库内容
Section titled “6.5 深入 playlist 统计隐藏已入库内容”公开 API 只能证明用户能看到多少节目,不能证明 playlist 里是否已经有隐藏的已入库节目。比如:
curl -sS \ -H 'x-client-platform: ios' \ -H 'x-client-version: 0.7.0' \ -H 'x-client-build: 99' \ 'https://beta-api.yomiya.app/v1/youtube-playlists/27/videos?page=1&page_size=100&language=zh-CN'#27 返回 total = 0 只能说明用户侧不可见,不代表后台没有准备好的内容。真正要看 Admin 详情视频状态:
- 页面入口:
https://admin.yomiya.app/YoutubePlaylists/27 - 对应 API:
curl -sS \ -H 'Authorization: Bearer <admin-token>' \ 'https://beta-api.yomiya.app/admin/v1/youtube-playlists/27/videos?page=1&page_size=100&sort=added_desc'判定逻辑:
已入库 = status == RECORDED && news_id 非空用户可见 = visibility in (VISIBLE, MEMBERSHIP_VISIBLE, TIME_LIMIT_VISIBLE)已入库但未外露 = 已入库 && !用户可见如果没有 Admin API 权限,也可以用线上库执行同等 SQL。注意要排除已从 playlist 移除的成员:
SELECT yp.id AS playlist_id, yp.name AS playlist_name, pv.video_id, n.id AS news_id, n.title, n.visibility, t.statusFROM youtube_playlists ypJOIN youtube_playlist_videos pv ON pv.youtube_playlist_id = yp.idJOIN transcription_tasks t ON t.unique_id = CONCAT('YouTube_', pv.video_id)JOIN news n ON n.id = t.news_idWHERE yp.deleted_at IS NULL AND pv.removed_at IS NULL AND pv.uploader_channel_id IS NOT NULL AND n.deleted_at IS NULL AND yp.id IN (1, 3, 4, 5, 6, 10, 16, 17, 18, 19, 20, 21, 24, 26, 27) AND n.visibility NOT IN ('VISIBLE', 'MEMBERSHIP_VISIBLE', 'TIME_LIMIT_VISIBLE')ORDER BY yp.id, pv.position, pv.added_to_playlist_at DESC;6.6 谨慎参考开源 YouTube skill
Section titled “6.6 谨慎参考开源 YouTube skill”浏览器当时打开的是 ZeroPointRepo/youtube-skills。已检查该仓库元信息和 skill 目录:
- GitHub:
ZeroPointRepo/youtube-skills - 定位:给 AI agents 使用的 YouTube transcript/search/channel browsing skills
- 当时 stars:213
- License:MIT
- skill 目录包括:
skills/youtube-searchskills/youtube-channelsskills/youtube-playlistskills/youtube-full
这里值得借鉴的是 workflow 形态,而不是直接复制它的依赖:
- 搜索或解析 YouTube channel / playlist;
- 拉取候选元数据;
- 必要时收集 transcript 或 item detail;
- 输出结构化候选,交给人审核。
对 Yomiya 来说,未来首页规划 skill 应该把这个形态适配到 Yomiya 的真实对象:
- 候选 YouTube channel / playlist;
- 适合放入的首页栏目;
- 语言阶段、学习场景、用户价值判断;
- 导入前的准备程度;
- 缩略图、字幕、转录状态等缺口;
- 建议的 Admin 或人工操作;
- 操作后的
/v2/featured验证命令。
7. 对后续首页规划的含义
Section titled “7. 对后续首页规划的含义”当前首页已经覆盖了日语学习用户的多个典型需求:
- 旧频道入口保留了老用户熟悉的内容路径。
- playlist 栏目覆盖入门、场景、听力、听歌、高阶输入等学习模式。
- podcast episode 给用户提供随身听材料,并能进入生成后的文章详情。
- 新闻和经典童话同时提供新鲜内容与常青内容。
后续首页规划 skill 不应该只回答“能不能搜索 YouTube 频道”。它应该回答这些更贴近产品的问题:
- 这个候选内容能增强首页哪个栏目?
- 它应该被建模为
channel、youtube_playlist、youtube_playlist_video、podcast_episode还是news? - 它适合 beginner、scenario、listening、music、news、advanced、children 中的哪类学习任务?
- 这个栏目是否有足够内容填满
home_exposed_limit? - 它出现在
/v2/featured前,Admin 或服务端必须先具备哪个对象? - 操作完成后,
/v2/featured是否真的返回了它,iOS 是否能渲染它的类型?
8. 未来 skill 草案清单
Section titled “8. 未来 skill 草案清单”未来可以沉淀一个 yomiya-homepage-planner,默认执行以下清单:
- 从当前 tag 或 TestFlight 匹配源码读取 iOS 首页契约。
- 带上
x-client-platform、x-client-version、x-client-build拉取线上/v2/featured。 - 把 sections 解析成标准化 inventory JSON。
- 按用户任务重新分类栏目:
- 旧频道和内容连续性;
- 初学入门;
- 听力和 podcast;
- 场景练习;
- 听歌学日语;
- 磨耳朵;
- 时事新闻;
- 高阶全速日语;
- 经典童话;
- 儿童学习。
- 只有在当前 inventory 已经明确后,再去搜索候选 YouTube channel / playlist。
- 每个候选都要输出:
- 建议放入的栏目;
- 放入理由;
- source URL / id;
- 预期 item type;
- 缺失 metadata;
- 导入或转录准备程度;
- 需要的 Admin / service 人工动作;
- 验证命令。
- 在
/v2/featured返回该 item 且 iOS 能渲染该类型之前,不声明它已经影响首页。