Files
jackwener__opencli/docs/adapters/browser/xiaoyuzhou.md
Kagura ab44d9f542 fix(xiaoyuzhou): migrate from broken SSR scraping to authenticated API (fixes #1023) (#1059)
* fix(xiaoyuzhou): migrate from broken SSR scraping to authenticated API (fixes #1023)

Xiaoyuzhou removed SSR rendering — /podcast/<id> and /episode/<id> pages
now return 404, breaking fetchPageProps() which scraped __NEXT_DATA__.

Migrate podcast, podcast-episodes, episode, and download commands to use
the existing authenticated API client (requestXiaoyuzhouJson) that
transcript.js already uses successfully.

Changes:
- podcast.js: use /v1/podcast/get API endpoint
- podcast-episodes.js: use /v1/podcast/listEpisode API endpoint
- episode.js: use /v1/episode/get API endpoint
- download.js: use /v1/episode/get API endpoint
- utils.js: remove unused fetchPageProps, keep format helpers
- Update all affected tests (download.test.js, utils.test.js)
- Change strategy from PUBLIC to LOCAL (requires credentials)

* fix(xiaoyuzhou): align local strategy contract

* fix(xiaoyuzhou): align local api metadata

---------

Co-authored-by: jackwener <jakevingoo@gmail.com>
2026-04-16 23:15:40 +08:00

1.6 KiB

Xiaoyuzhou (小宇宙)

Mode: 🔑 Local API · Domain: xiaoyuzhou.fm

Commands

Command Description
opencli xiaoyuzhou podcast View a podcast profile (requires local credentials)
opencli xiaoyuzhou podcast-episodes List podcast episodes (requires local credentials)
opencli xiaoyuzhou episode View episode details (requires local credentials)
opencli xiaoyuzhou download Download episode audio (requires local credentials)
opencli xiaoyuzhou transcript Download transcript JSON and extracted text (requires local credentials)

Usage Examples

# Podcast profile
opencli xiaoyuzhou podcast 6013f9f58e2f7ee375cf4216

# Recent episodes
opencli xiaoyuzhou podcast-episodes 6013f9f58e2f7ee375cf4216 --limit 5

# Episode details
opencli xiaoyuzhou episode 69b3b675772ac2295bfc01d0

# Download episode audio
opencli xiaoyuzhou download 69b3b675772ac2295bfc01d0 --output ./xiaoyuzhou

# Download transcript JSON + text
opencli xiaoyuzhou transcript 69dd0c98e2c8be31551f6a33 --output ./xiaoyuzhou-transcripts

# JSON output
opencli xiaoyuzhou episode 69b3b675772ac2295bfc01d0 -f json

# Verbose mode
opencli xiaoyuzhou transcript 69dd0c98e2c8be31551f6a33 -v

Prerequisites

  • No browser required — uses the authenticated Xiaoyuzhou API
  • All commands require local Xiaoyuzhou app credentials in ~/.opencli/xiaoyuzhou.json

Example credential file:

{
  "access_token": "your-access-token",
  "refresh_token": "your-refresh-token",
  "device_id": "81ADBFD6-6921-482B-9AB9-A29E7CC7BB55",
  "device_properties": "",
  "expires_at": 0
}