How astronaut-free/social-media-collector works
Social Media Collector accepts CLI requests to collect metadata, download media, or list creator content across Douyin, Xiaohongshu, and Bilibili. Its Watchdog checks local or Feishu monitor lists, discovers new items, optionally collects full metadata, deduplicates by stable identity, and writes results and monitor updates. Feishu is optional; OpenCLI supports browser-session-dependent access. The graph reflects README capabilities where source excerpts were incomplete; links for unsampled implementations are limited to documented behavior.
Main entry points: router.py Platform router · cli.py Command router · watchdog.py Monitor runner · xiaohongshu.py Xiaohongshu collector
Components 15
CLI interface
- Command router
social_collector/cli.py - Runtime checks
social_collector/doctor.py
Collection
- Platform router
social_collector/router.py - Content models
social_collector/models.py - Douyin collector
social_collector/collectors/douyin.py - Xiaohongshu collector
social_collector/collectors/xiaohongshu.py - Bilibili collector
social_collector/collectors/bilibili.py
Watchdog
- Monitor runner
social_collector/watchdog.py - Local watch state
social_collector/watchdog.py
Integrations
- OpenCLI
social_collector/opencli.py - Feishu adapter
social_collector/feishu.py - Table schema
social_collector/feishu_schema.py
Other components
- User
- Platform services
- Feishu Bitable
Connections 16
- User → Command router: invokes
- Command router → Platform router: selects platform
- Command router → Runtime checks: checks runtime
- Command router → Monitor runner: runs monitoring
- Platform router → Douyin collector: selects collector
- Platform router → Xiaohongshu collector: selects collector
- Platform router → Bilibili collector: selects collector
- Douyin collector → Platform services: requests metadata/media
- Xiaohongshu collector → Platform services: requests content
- Bilibili collector → Platform services: requests metadata/media
- Xiaohongshu collector → OpenCLI: runs browser commands
- Monitor runner → Platform router: creates collectors
- Monitor runner → Local watch state: reads/writes state
- Monitor runner → Feishu adapter: syncs monitors/results
- Feishu adapter → Table schema: uses field definitions
- Feishu adapter → Feishu Bitable: reads/writes tables