← 返回 Skills 市场
kevin37li

Gettr Transcribe

作者 Kevin37Li · GitHub ↗ · v1.0.1
cross-platform ⚠ suspicious
510
总下载
0
收藏
0
当前安装
2
版本数
在 OpenClaw 中安装
/install gettr-transcribe
功能描述
Download audio from a GETTR post or streaming page and transcribe it locally with MLX Whisper on Apple Silicon (with timestamps via VTT). Use when given a GE...
使用说明 (SKILL.md)

Gettr Transcribe (MLX Whisper)

Quick start

# 1. Parse the slug from the URL (just read it — no script needed)
#    https://gettr.com/post/p1abc2def  → slug = p1abc2def
#    https://gettr.com/streaming/p3xyz → slug = p3xyz

# 2. Get the audio/video URL via browser automation (see Step 1 below)
#    For /streaming/ URLs: extract the .m4a audio URL
#    For /post/ URLs: extract the og:video .m3u8 URL

# 3. Run download + transcription pipeline
bash scripts/run_pipeline.sh "\x3CAUDIO_OR_VIDEO_URL>" "\x3CSLUG>"

To explicitly set the transcription language (recommended for non-English content):

bash scripts/run_pipeline.sh --language zh "\x3CAUDIO_OR_VIDEO_URL>" "\x3CSLUG>"

Common language codes: zh (Chinese), en (English), ja (Japanese), ko (Korean), es (Spanish), fr (French), de (German), ru (Russian).

This outputs:

  • ./out/gettr-transcribe/\x3Cslug>/audio.wav
  • ./out/gettr-transcribe/\x3Cslug>/audio.vtt

Summarization is handled separately by the caller (see your prompt for summarization instructions).


Workflow (GETTR URL → transcript)

Inputs to confirm

Ask for:

  • GETTR post URL
  • Language (optional): if the video is non-English and auto-detection fails, ask for the language code (e.g., zh for Chinese)

Notes:

  • This skill does not handle authentication-gated GETTR posts.
  • This skill does not translate; outputs stay in the video's original language.
  • If transcription quality is poor or mixed with English, re-run with explicit --language flag.

Prereqs (local)

  • mlx_whisper installed and on PATH
  • ffmpeg installed (recommended: brew install ffmpeg)

Step 0 — Parse the slug and pick an output directory

Parse the slug directly from the GETTR URL — just read the last path segment, no script needed:

  • https://gettr.com/post/p1abc2def → slug = p1abc2def
  • https://gettr.com/streaming/p3xyz789 → slug = p3xyz789

Output directory: ./out/gettr-transcribe/\x3Cslug>/

Directory structure:

  • ./out/gettr-transcribe/\x3Cslug>/audio.wav
  • ./out/gettr-transcribe/\x3Cslug>/audio.vtt

Step 1 — Get the audio/video URL via browser automation

Use browser automation to navigate to the GETTR URL and extract the media URL from the rendered DOM.

For /streaming/ URLs (primary path)

Streaming pages provide a direct .m4a audio download. Extract it by deriving from the og:video meta tag:

  1. Navigate to the GETTR streaming URL and wait for the page to fully load (JavaScript must execute)
  2. Extract the audio URL via JavaScript:
    const ogVideo = document.querySelector('meta[property="og:video"]')?.getAttribute("content");
    // Replace .m3u8 with /audio.m4a to get the direct audio download URL
    const audioUrl = ogVideo.replace(".m3u8", "/audio.m4a");
    
  3. Use the .m4a URL for the pipeline in Step 2

The .m4a URL is a direct file download (no HLS), so it downloads faster and more reliably than the .m3u8 stream.

For /post/ URLs (fallback path)

Post pages do not have a "Download Audio" button. Extract the og:video URL from the rendered DOM:

  1. Navigate to the GETTR post URL and wait for the page to fully load
  2. Extract the video URL via JavaScript:
    document.querySelector('meta[property="og:video"]')?.getAttribute("content");
    
  3. Use the .m3u8 URL directly for the pipeline in Step 2

If browser automation is not available or fails, see references/troubleshooting.md for how to guide the user to manually extract the URL from their browser.

Step 2 — Run the pipeline (download + transcribe)

Feed the extracted URL and slug into the pipeline:

bash scripts/run_pipeline.sh "\x3CAUDIO_OR_VIDEO_URL>" "\x3CSLUG>"

To explicitly set the language (recommended when auto-detection fails):

bash scripts/run_pipeline.sh --language zh "\x3CAUDIO_OR_VIDEO_URL>" "\x3CSLUG>"

The pipeline does two things:

  1. Downloads audio as 16kHz mono WAV via ffmpeg (handles both .m4a and .m3u8 inputs)
  2. Transcribes with MLX Whisper, outputting VTT with timestamps

If the pipeline fails with HTTP 412 (stale signed URL)

This error occurs with /streaming/ URLs when the signed URL has expired. Re-run browser automation to get a fresh URL, then retry the pipeline.

If browser automation is not available or fails, see references/troubleshooting.md for how to guide the user to manually extract the fresh URL from their browser.

Notes:

  • By default, language is auto-detected. For non-English content where detection fails, use --language.
  • If too slow or memory-heavy, try smaller models: mlx-community/whisper-medium or mlx-community/whisper-small.
  • If quality is poor, try the full model: mlx-community/whisper-large-v3 (slower but more accurate).
  • If --word-timestamps causes issues, the pipeline retries automatically without it.

Bundled scripts

  • scripts/run_pipeline.sh: download + transcription pipeline (takes an audio/video URL and slug)
  • scripts/download_audio.sh: download/extract audio from HLS (.m3u8) or direct (.m4a) URL to 16kHz mono WAV

Error handling

  • No audio track: The download script validates output and reports if the source has no audio.
  • HTTP 412 errors: Occurs with /streaming/ URLs when the signed URL has expired. Re-run browser automation to get a fresh URL (see Step 1); if that fails, see references/troubleshooting.md.

Troubleshooting

See references/troubleshooting.md for detailed solutions to common issues including:

  • HTTP 412 errors (stale signed URLs)
  • Download errors
  • Transcription quality issues
安全使用建议
This skill appears to do what it says: extract a media URL from a GETTR page (you provide or the agent collects via browser automation), download audio with ffmpeg, and transcribe locally with mlx_whisper. Before installing, note: (1) it requires ffmpeg and mlx_whisper on PATH (brew/pip installs are suggested); (2) MLX Whisper may download large models from Hugging Face and could prompt for huggingface-cli login for some models — no credentials are required by default; (3) the agent does not handle private/gated GETTR posts (you must supply a direct media URL for those); (4) transcription is local but downloading media from GETTR means the skill will fetch remote content you point it at; and (5) CPU/ram/disk usage can be significant for large models. If you’re comfortable with those tradeoffs, the skill is internally coherent.
功能分析
Type: OpenClaw Skill Name: gettr-transcribe Version: 1.0.1 The skill is classified as suspicious due to a shell injection vulnerability present in `scripts/download_audio.sh` and `scripts/run_pipeline.sh`. These scripts directly use unsanitized user-controlled input, specifically the `$VIDEO_URL` and potentially the `$LANGUAGE` argument, within `ffmpeg` and `mlx_whisper` commands. While the `SKILL.md` instructs the agent to obtain the URL via browser automation from a GETTR page, an attacker could potentially craft a malicious URL or prompt-inject the agent to provide arbitrary input, leading to arbitrary command execution on the host system. There is no evidence of intentional malicious behavior such as data exfiltration or persistence mechanisms, classifying this as a vulnerability rather than outright malice.
能力评估
Purpose & Capability
Name/description (GETTR → local transcription) matches the files and runtime instructions: scripts only download media via ffmpeg and call mlx_whisper to transcribe. Required binaries (ffmpeg, mlx_whisper) are expected for this task and the install metadata lists only pip/brew installs relevant to transcription.
Instruction Scope
SKILL.md instructs obtaining the media URL via browser automation or manual DOM inspection, then running the provided scripts. The instructions do not request unrelated files, system credentials, or broad data collection; they only reference the GETTR URL, derived slug, and local output directory. The skill explicitly excludes gated/authenticated posts.
Install Mechanism
The only install steps are standard package installs: 'brew install ffmpeg' and 'pip install mlx-whisper' (both declared in metadata). There are no downloads from arbitrary/personal URLs or extracted archives in the install spec.
Credentials
No environment variables, credentials, or config paths are required. The only potential external access is to GETTR media URLs (user-supplied) and MLX Whisper may download models from Hugging Face if needed — the README/instructions note possible Hugging Face auth but do not demand credentials.
Persistence & Privilege
The skill does not request permanent presence (always=false), does not modify other skills or system-wide agent settings, and only writes output to a local subdirectory under ./out/gettr-transcribe/<slug> as expected.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install gettr-transcribe
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /gettr-transcribe 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
Republish to refresh scan-state sync and metadata.
v1.0.0
Initial release under new slug after rename from gettr-transcribe-summarize. Focused scope on transcription only (summarization moved to caller), browser-first URL extraction, and better streaming reliability via direct .m4a handling.
元数据
Slug gettr-transcribe
版本 1.0.1
许可证
累计安装 0
当前安装数 0
历史版本数 2
常见问题

Gettr Transcribe 是什么?

Download audio from a GETTR post or streaming page and transcribe it locally with MLX Whisper on Apple Silicon (with timestamps via VTT). Use when given a GE... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 510 次。

如何安装 Gettr Transcribe?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install gettr-transcribe」即可一键安装,无需额外配置。

Gettr Transcribe 是免费的吗?

是的,Gettr Transcribe 完全免费(开源免费),可自由下载、安装和使用。

Gettr Transcribe 支持哪些平台?

Gettr Transcribe 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Gettr Transcribe?

由 Kevin37Li(@kevin37li)开发并维护,当前版本 v1.0.1。

💬 留言讨论