Agent Economy Report

Skill code audit

CAUTION version 1.0.1 · audited 2026-09-17

youtube-transcript @xthezealot

This skill fetches YouTube video transcripts for a given video ID or URL and returns transcript text plus title and author. To do this it uses Python network requests and a WireGuard VPN that it checks and can automatically start, changing the host's network interface and routing settings. The setup guide also tells the user to install Python packages and write WireGuard keys to /etc/wireguard. The video ID is sent to noembed.com for metadata, and the skill's own card acknowledges that it may alter WireGuard and routing settings. No credential theft, hidden code execution, or payment redirection was found. Because it makes host-level networking changes and uses third-party/unpinned components, it requires careful review before use.

Declared purposeFetch and summarize YouTube video transcripts; use a residential IP proxy/VPN to bypass YouTube's cloud IP blocks.
Observed behaviorThe main script accepts a YouTube video ID or URL and optional language list. It checks WireGuard interface wg0 with wg show; if that fails, it runs wg-quick up wg0 and adds an ip rule. It then creates an HTTP session bound to 10.100.0.2, fetches a transcript using youtube-transcript-api, fetches title and author from noembed.com, and prints a JSON result. The script does not implement summarization itself; the setup guide requires pip installs and shell commands that generate WireGuard keys.
Verdict, rules onlyCAUTION · runs subprocesses or eval/exec
Verdict, AICAUTION
Final verdictCAUTION (never better than either pass)

Capabilities

capabilityvs purposedetail
networkneededMakes outbound HTTPS requests to YouTube services through youtube-transcript-api and to noembed.com for title/author metadata. The requests session is bound to VPN_SOURCE_IP 10.100.0.2.
shellneededRuns subprocess commands wg show, wg-quick up, and ip rule add to check or start the WireGuard VPN. User input is not passed to these commands.
filesystem_writeneededThe setup guide instructs writing WireGuard private/public keys to /etc/wireguard/privatekey and /etc/wireguard/publickey. The main script itself does not write files.
install_packagesneededThe setup guide tells the user to run pip3 install youtube-transcript-api requests. These dependencies are unpinned.

Findings

severityfinding
infoDeclared purpose includes bypassing YouTube cloud IP blocks
This line states that the skill will use a residential IP proxy to bypass YouTube's cloud IP blocks, so host-level VPN use is part of the stated purpose.
SKILL.md:3 description: Fetch and summarize YouTube video transcripts. Use when asked to summarize, transcribe, or extract content from YouTube videos. Handles transcript
mediumExecutes wg show to inspect VPN state
The Python code runs the system wg command with fixed arguments to check WireGuard interface wg0.
scripts/fetch_transcript.py:32 ["wg", "show", VPN_INTERFACE],
highAutomatically starts the WireGuard VPN
If check_vpn() returns false, main() calls bring_up_vpn(), which runs wg-quick up wg0. This changes the host network interface state and may disrupt networking if not properly configured.
scripts/fetch_transcript.py:48 subprocess.run(["wg-quick", "up", VPN_INTERFACE], capture_output=True, timeout=10)
highAdds a host routing policy rule
The script runs ip rule add from 10.100.0.2 table 51820 to route traffic from the VPN source IP through the WireGuard table, modifying the host routing policy.
scripts/fetch_transcript.py:49 ["ip", "rule", "add", "from", VPN_SOURCE_IP, "table", "51820"],
mediumSends YouTube video IDs to noembed.com
get_video_title() makes a GET request to noembed.com with the YouTube watch URL, so noembed.com sees the requested video ID. The skill card also discloses this at skill-card.md line 28.
scripts/fetch_transcript.py:92 f"https://noembed.com/embed?url=https://www.youtube.com/watch?v={video_id}",
mediumUnpinned Python dependencies
The setup guide installs youtube-transcript-api and requests without pinning versions. The skill card acknowledges that unpinned dependencies can change behavior across installs.
references/SETUP.md:18 pip3 install youtube-transcript-api requests
mediumInstructs writing WireGuard private key to /etc/wireguard
The setup documentation tells the user to generate and write WireGuard key material to /etc/wireguard/privatekey and /etc/wireguard/publickey. The main script does not write these itself.
references/SETUP.md:29 wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey
mediumInstructs VPS WireGuard key file creation
This repeats the key generation and write instruction for the VPS client configuration.
references/SETUP.md:48 wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey
lowAlternative SSH tunnel proxy
The setup guide suggests an SSH SOCKS proxy as an alternative to WireGuard, which would open a network tunnel through the user's home server.
references/SETUP.md:96 - **SSH tunnel**: `ssh -D 1080 user@home-server` + configure SOCKS proxy
mediumPublisher discloses host networking changes
The skill card explicitly acknowledges that the script may alter host-level WireGuard and routing settings, matching the runtime behavior at scripts/fetch_transcript.py lines 48-49.
skill-card.md:24 Risk: The skill may change host-level WireGuard and routing settings when bringing up the configured VPN interface.
infoPublisher discloses noembed.com metadata exposure
This confirms the noembed.com request is known to the publisher.
skill-card.md:28 Risk: Requested video IDs may be visible to noembed.com when the skill fetches title and author metadata.

0 AI finding(s) were dropped because their file, line or quote did not match the package.

Network destinations in the code

domainservice ratingwhere
clawhub.ainot in the service indexskill-card.md:9
noembed.comnot in the service indexscripts/fetch_transcript.py:92
www.youtube.comnot in the service indexSKILL.md:19

Other facts

Binaries invokedbash, curl, pip3, python, python3, ssh
Environment variables readnone
Hard-coded walletsnone
Pipes a download to a shell0
eval / exec / subprocess4
base64 blobs0
File writes2
Persistence0

Files audited

filelinessha256
SKILL.md44f8843aca94abffec…
_meta.json60d6b61d377586e21…
references/SETUP.md9838ece2a1d31bfbc1…
scripts/fetch_transcript.py149185ac655f26ba8b6…
skill-card.md571599084b9a44f7b4…

For agents

JSON: https://agenteconomy.report/k/youtube-transcript.audit.json · badge: https://agenteconomy.report/k/youtube-transcript.audited.svg · skill rating: /k/youtube-transcript · commission an audit of any skill: US$ 29 per version.

How this is computed

The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).