transcribe
Extract spoken words from captionless player pages or local audio/video files, using existing subtitles first and Whisper as the fallback.
Instructions
Read the spoken words when read_url says a player page has no captions, or transcribe a local audio/video file. A YouTube watch URL, a TikTok video, an Instagram reel, a v.redd.it file, or an X post that has a video is a player page: read_url returns its captions, or an error that names this tool for the audio. Subtitles-first: existing captions via yt-dlp need no API key; otherwise Whisper (Groq/OpenAI if configured, else keyless local whisper.cpp, bundled; provider=local-fw forces the temporary faster-whisper fallback. The PyPI wheel is CPU-only today; GPU-enabled wheels are a follow-up. prefer_subtitles defaults true; set false to force audio. Local options: model (small default, turbo, base), hint (names or words the audio contains, e.g. from the page title), translate (to English; not with turbo). The local model is downloaded once: without yes=true the call returns an Error naming its size and source; ask the user, then call again with yes=true. cookies_from_browser is opt-in (chrome/firefox/…) and uses THIS machine's browser cookies; read_url does not copy them. The compressed audio (never the video) is kept for 24 hours in ~/.searchts/cache/audio, so a repeat of the same URL skips the download; pass fresh=true to download again, and the receipt's audio_cache says hit, miss or off (off for a local file, cookies, or caching turned off). Returns the transcript text, then a transcribed_by: JSON line (source, engine, model, device, detected language, audio_cache). Missing-model consent is returned as structured JSON with the exact yes=true approval; other failures use an 'Error: ...' string. Update check: when a newer release exists, a successful result also carries 'update_available' plus, at most once per 24 hours, one line telling the agent. The check is one GET to the GitHub latest release of capad-xyz/searchts, at most once per 24 hours, cached in ~/.searchts/update-check.json, with a searchts User-Agent and nothing about the user. Nothing is installed or changed. SEARCHTS_NO_UPDATE_CHECK=1 turns the check and the note off.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"source": "<source>"
},
"name": "transcribe"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| yes | No | ||
| hint | No | ||
| fresh | No | ||
| model | No | ||
| source | Yes | ||
| provider | No | auto | |
| translate | No | ||
| prefer_subtitles | No | ||
| cookies_from_browser | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |