2.2 KiB
2.2 KiB
XHS Long Queue Downloader Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Add a resumable JSONL queue mode so long Xiaohongshu video download jobs can target large counts like 1000 videos.
Architecture: Keep XHS.py as the CLI entry point. Add queue record helpers, source URL helpers, discovery/processing orchestration, and CLI flags while reusing existing parsing, download validation, shared Chrome, and human browsing cadence.
Tech Stack: Python 3, unittest, JSONL files, DrissionPage, requests.
File Structure
- Modify
XHS.py: queue dataclass/helpers, source selection, queue orchestration, CLI flags. - Modify
test_xhs.py: queue unit tests and CLI plumbing tests. - Modify
README.md: long task command examples.
Task 1: Queue Persistence
- Write tests for queue load/save, deduping by note_id, counting downloaded records, and status updates.
- Run
python3 -m unittest test_xhs.py -vand verify failures. - Implement
QueueRecord,load_queue,save_queue,merge_note_urls_into_queue,count_queue_status. - Run tests and verify pass.
Task 2: Source Selection and CLI
- Write tests for
build_source_urland parser defaults for--source,--target-videos,--queue-file,--retry-limit. - Run tests and verify failures.
- Implement source URL selection and CLI argument plumbing.
- Run tests and verify pass.
Task 3: Queue Processing Orchestration
- Write tests for pure queue status transitions for success, skipped image, failed retry.
- Run tests and verify failures.
- Implement queue processing helpers and wire queue mode into
mainwhen--queue-fileor--target-videosis provided. - Run tests and verify pass.
Task 4: Docs and Verification
- Update README with 1000-video queue command and resume behavior.
- Run
python3 -m unittest test_xhs.py test_login_xhs.py -v. - Run a small smoke command with low target and short waits if browser is available.
- Commit and push.