Agent Economy Report

Skill code audit

CAUTION version 1.2.2 · audited 2026-09-17

youtube-api-skill @byungkyu

This package is a Markdown instruction guide for using the `maton` CLI and SDK to access the YouTube Data API through a Maton gateway. It documents OAuth/API-key login, YouTube read and write commands, pinned CLI/SDK installation, hosted functions, scheduled triggers, and persistent event destinations. The guide contains no compiled or hidden executable payload; its actions are commands an agent would run in a shell. However, following it can install packages, access a long-lived Maton credential, run local scripts, and create standing automation or egress, so it requires careful review. It also ships reference catalogues for non-YouTube event sources such as Stripe, Gmail, GitHub, and Slack, including payment-card and private-message data descriptions.

Declared purposeYouTube Data API integration with managed OAuth via Maton, including search, videos, channels, playlists, comments, subscriptions, and optional Maton functions/triggers for automation.
Observed behaviorThe package is documentation plus shell examples. It instructs installing `@maton/cli@0.3.1`, logging in with OAuth or `MATON_API_KEY`, creating YouTube connections after approval, and calling `maton youtube ...` or `maton api '/youtube/...'` against the `api.maton.ai` gateway. It also documents deploying Python functions with `--network-policy DENY_ALL`, creating `time` triggers that POST to `*.maton.app`, creating persistent destinations, downloading function code, and a `maton trigger event watch --exec` path that runs a local handler per event. The package ships trigger-reference files for time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, and Stripe, with warnings about sensitive payloads.
Verdict, rules onlyCAUTION · reads credential-like environment variables: MATON_API_KEY
Verdict, AICAUTION
Final verdictCAUTION (never better than either pass)

Capabilities

capabilityvs purposedetail
networkneededCommands call the Maton gateway `api.maton.ai` for YouTube API requests, with a raw HTTPS fallback; trigger reference files document additional third-party service domains.
shellneededAllowed-tools include Bash; commands run `maton`, `npm`, `brew`, `pip`, `python`, and `bash` in a shell.
filesystem_readneededAllowed-tools include Read, Grep, and Glob; examples read local files such as `main.py` and `handle.sh` for function and trigger tasks.
filesystem_writeexceeds purposeCommands can download function code to `./v2`, create `main.py`, and install packages, so local writes are possible though not needed for basic YouTube reads.
credentialsneededHandles `MATON_API_KEY` and OAuth tokens; the raw HTTP fallback reads `os.environ["MATON_API_KEY"]` and sends it as a Bearer token to `api.maton.ai`.
paymentsexceeds purposeThe Stripe trigger reference contains payment/cardholder data and invoice URLs; the YouTube skill does not directly initiate payments.
persistenceneededCan create hosted functions, scheduled triggers, and destinations that persist on the Maton platform until deleted; no local OS persistence was found.
install_packagesneededDocuments pinned npm, Homebrew, and pip installs for the Maton CLI and SDK.

Findings

severityfinding
mediumDeclares shell and file-reading tools
The package allows Bash, Read, Grep, and Glob, enabling an agent to run shell commands and inspect local files. Bash is needed for the Maton CLI, but Read/Grep/Glob broaden local file access beyond basic API calls.
SKILL.md:7 allowed-tools: Bash, Read, Grep, Glob
mediumGlobal npm package install
Installs a third-party CLI globally with a pinned version. This is a documented installation path, but it gives a packaged workflow control over an installed binary.
SKILL.md:34 npm install -g @maton/cli@0.3.1
infoOAuth credentials stored in OS credential store
Authentication creates a local config profile and stores access/refresh tokens in the operating system credential store. The file later instructs agents not to extract these values.
SKILL.md:54 Opens the OAuth login page in the browser and waits for authorization. Once complete, it creates a profile in config.toml (eg. $HOME/.config/maton/config.toml)
mediumRaw HTTP fallback sends long-lived API key
The CLI-free path reads `MATON_API_KEY` from the environment and sends it as a Bearer token to `api.maton.ai`. This keeps a credential in process memory and child-process-visible environment state.
SKILL.md:1555 req.add_header("Authorization", "Bearer " + os.environ["MATON_API_KEY"])
infoYouTube traffic routes through Maton gateway
All documented YouTube requests are rewritten from `www.googleapis.com` to `api.maton.ai`, which centralizes authentication and creates a dependency on the Maton service.
SKILL.md:930 - Gateway: `api.maton.ai/youtube/youtube/v3/search`
mediumHosted Python function deployment
The skill documents deploying Python code to Maton's hosted sandbox. Such functions run with the deploying account identity and receive a runtime-injected `MATON_API_KEY`, so deployment should require explicit review.
SKILL.md:176 maton function create --name youtube-check --file main.py --network-policy DENY_ALL
mediumScheduled trigger with webhook destination
Documents creating a `time` trigger that POSTs to a `*.maton.app` URL. This creates standing automation on a schedule, though the example destination stays inside Maton.
SKILL.md:563 https://youtube-check-3k9xq2v.maton.app
highPersistent event forwarding capability
The package describes creating destinations that continuously forward event payloads to a URL. This is not hidden exfiltration, but it is exactly the kind of standing egress channel a user must approve explicitly and review closely.
SKILL.md:696 > **⚠ Persistent data forwarding:** A destination causes all matching trigger events to be automatically and continuously delivered to the specified URL. This i
highLocal code execution path on event data
The skill documents running a local handler script once per trigger event via `maton trigger event watch --exec`. It warns that the handler should be user-provided, but the capability remains a high-risk path if misused.
SKILL.md:864 > **⚠ `--exec` runs local code on untrusted input.** The handler is a local program that the CLI invokes once per event, with third-party event data on stdin.
lowNon-YouTube trigger catalogue contains payment data
The package includes a Stripe trigger reference describing PCI-scope payment event fields. It is not required for YouTube use, but if used with a Stripe connection and destination it could forward sensitive payment data.
references/stripe/triggers.md:5 > **Payment event payloads carry cardholder and customer PII.** The sample payloads below are abridged; real events include customer email addresses, billing ad
lowNon-YouTube trigger catalogue contains private email data
The package ships a Gmail trigger reference describing continuous forwarding of private correspondence. This is outside the core YouTube purpose and could expose sensitive data if misused.
references/google-mail/triggers.md:5 > **Email events forward private correspondence.** `email.received` payloads include sender and recipient addresses, subject lines, and message snippets — and t

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

Network destinations in the code

domainservice ratingwhere
api.calendly.comnot in the service indexreferences/calendly/triggers.md:13
api.github.comnot in the service indexreferences/github/triggers.md:16
api.maton.ainot in the service indexSKILL.md:702
avatars.githubusercontent.comnot in the service indexreferences/github/triggers.md:90
calendly.comnot in the service indexreferences/calendly/triggers.md:33
clawhub.ainot in the service indexSKILL.md:4
cli.maton.ainot in the service indexSKILL.md:1581
community.maton.ainot in the service indexSKILL.md:1582
connect.maton.ainot in the service indexSKILL.md:97
developers.google.comnot in the service indexSKILL.md:1570
docs.maton.ainot in the service indexSKILL.md:1579
github.comnot in the service indexreferences/github/triggers.md:61
invoice.stripe.comnot in the service indexreferences/stripe/triggers.md:294
linear.appnot in the service indexreferences/linear/triggers.md:37
maton.ainot in the service indexSKILL.md:14
my-fn-3k9xq2v.maton.appnot in the service indexSKILL.md:230
new.devnot in the service indexSKILL.md:753
octocat.github.ionot in the service indexreferences/github/triggers.md:1314
pay.stripe.comnot in the service indexreferences/stripe/triggers.md:51
uploads.github.comnot in the service indexreferences/github/triggers.md:1374
us05web.zoom.usnot in the service indexreferences/calendly/triggers.md:74
youtube-check-3k9xq2v.maton.appnot in the service indexSKILL.md:563

Other facts

Binaries invokedbash, git, npm, pip, python, python3
Environment variables readEVENT_JSON, HOME, MATON_API_KEY, MATON_EVENT_ID
Hard-coded walletsnone
Pipes a download to a shell0
eval / exec / subprocess0
base64 blobs0
File writes2
Persistence0

Files audited

filelinessha256
SKILL.md1583977b263a40804d27…
_meta.json6a3ad07c69ed11f3b…
references/calendly/triggers.md289ae92dbfb6dd4caf6…
references/github/triggers.md13857424d3be38ec400e…
references/google-mail/triggers.md645cc5065cd7db33dc…
references/hubspot/triggers.md334439d56e4d02e119e…
references/linear/triggers.md199641f6496f50e09fa…
references/notion/triggers.md185fdaf3840d8213dbd…
references/slack/triggers.md184b5ee099a215223a7…
references/stripe/triggers.md795ae091545396a376c…
references/time/triggers.md26b8f5a523501f8d03…
skill-card.md6756f32ab62c557a06…

For agents

JSON: https://agenteconomy.report/k/youtube-api-skill.audit.json · badge: https://agenteconomy.report/k/youtube-api-skill.audited.svg · skill rating: /k/youtube-api-skill · 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).