tms
Manage downloads via Telegram Media Server (TMS) REST API — add by URL (video/magnet/torrent), list, delete, search torrents.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/nikitadmitryuk/tmsTMS (Telegram Media Server) API skill
Use this skill when the user wants to add downloads, check download status, stop a download, or search for torrents via the TMS backend. All requests go to the TMS REST API.
How to use: This skill does not add a "tms" command. The agent must make HTTP requests (GET/POST/DELETE) to the endpoints below. Base URL: use env TMS_API_URL if set; otherwise when TMS and OpenClaw run on the same host, use default http://127.0.0.1:8080 (TMS default API listen). Do not add a trailing slash. To get the full API contract, fetch {base_url}/api/v1/openapi-llm.yaml (e.g. http://127.0.0.1:8080/api/v1/openapi-llm.yaml).
Configuration
- Base URL: optional. From env
TMS_API_URL(e.g.http://tms-host:8080). When not set and agent runs on the same host as TMS, usehttp://127.0.0.1:8080(TMS default). - Authentication: optional. When TMS and OpenClaw run on the same host, TMS accepts requests from localhost without a key —
TMS_API_KEYcan be omitted. When OpenClaw runs on another host (or you want auth), setTMS_API_KEYand send every API request with eitherAuthorization: Bearer <TMS_API_KEY>or headerX-API-Key: <TMS_API_KEY>.
Operations
-
Health check —
GET {TMS_API_URL}/api/v1/health— returns{"status":"ok"}if the API is up. -
List downloads —
GET {TMS_API_URL}/api/v1/downloads— returns a JSON array of downloads withid,title,status(queued, downloading, converting, completed, failed, stopped),progress,conversion_progress,error(if failed),position_in_queue(if queued). Snapshot is best-effort. -
Add download —
POST {TMS_API_URL}/api/v1/downloadswith JSON body{"url": "<url>"}. URL can be: video URL (yt-dlp), magnet link (magnet:...), or .torrent file URL. Response:201with{"id": <number>, "title": "<string>"}. Useidfor delete or status. -
Delete download —
DELETE {TMS_API_URL}/api/v1/downloads/{id}— stops and removes the download. Response:204no body.idis the numeric id from the add response or list. -
Search torrents —
GET {TMS_API_URL}/api/v1/search?q=<query>&limit=20&quality=1080— requires Prowlarr configured on TMS.qis required;limit(1–100, default 20) andquality(optional filter) may be used. Returns array of{title, size, magnet, torrent_url, indexer_name, peers}. Usemagnetortorrent_urlin POST /downloads to add a download.
Full API spec for tools
Exact URL: {base_url}/api/v1/openapi-llm.yaml where base_url is TMS_API_URL if set, else http://127.0.0.1:8080 for same-host. Example: http://127.0.0.1:8080/api/v1/openapi-llm.yaml. Use this to get the full contract (parameters, schemas, examples) when building or invoking API calls.
Webhook (optional)
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-nikitadmitryuk-tms": {
"enabled": true,
"auto_update": true
}
}
}