A Docker-first self-hosted downloader for RedNote/Xiaohongshu, X/Twitter, and Douyin single videos, with a web UI and Telegram delivery.
Server exposes 9 tools with basic descriptions and partial schemas. Most tools lack comprehensive parameter documentation and output schema definitions. Naming follows verb_noun convention (resolve, download, getConfig, updateConfig) but descriptions are generic and under-optimized for LLM selection. Parameter types are present but descriptions are sparse or missing. No error handling guidance, no output schemas documented, no tool annotations. This is a typical community server with significant gaps against production baselines.
Download media from multiple resolved notes to the server directory with concurrent processing
Resolve multiple media URLs in batch with concurrent processing
Download media files from resolved URLs to the server's download directory
Download Douyin videos using an external jiji262/douyin-downloader REST service with job polling
Retrieve the current application configuration including Telegram and Douyin settings
Get comprehensive diagnostics including service health checks, Telegram runtime status, Douyin downloader health, and configuration hints
Get the current runtime status of the Telegram bot including enabled state and configuration details
No output schemas documented. Tools return unstructured responses; LLMs cannot predict field names or types for downstream chaining. E.g., resolve() returns parsed metadata but structure is undocumented.
Parameter descriptions are minimal or missing. 'input' param in resolve() lacks format guidance (what constitutes a valid share link?). 'cookie' param lacks security warning. 'urls' in download() lacks validation rules (max count, URL format).
No error handling guidance. Tools lack recovery hints. E.g., if resolve() fails on an invalid URL, what should the LLM do next? No actionable error messages documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Resolve and parse media URLs from RedNote/Xiaohongshu, X/Twitter, or Douyin share links to extract metadata and media file information
Update application configuration for Telegram bot settings and Douyin authentication
Credentials exposed as parameters. 'cookie' param in resolve(), downloadDouyinViaExternalService(), and batchResolve() accepts authentication tokens as input. Should use server-side secret injection via environment variables.
Tool naming ambiguity: downloadDouyinViaExternalService() is verbose and unclear. Does it differ from download()? When should LLM choose one vs. the other? Naming should clarify the distinction (e.g., download_douyin_external vs. download_media).