Not in the top 1,000 by GitHub stars
Upload-Post/skill-autoshorts
Daily viral-clip pipeline: Whisper + Gemini 3 Flash + Upload-Post. Picks one long video per day, cuts the best moments, asks you on your phone which to publish, and learns from engagement data over time.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
e902b2a8d9dc → e902b2a8d9dc
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → e902b2a8d9dc
No earlier version was observed for comparison.
Heat
2.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
autoshorts
When your agent uses it
Daily pipeline that picks one long video from a folder, transcribes it with Whisper, uses Gemini 3 Flash multimodal to find every viral short-form moment, cuts each candidate with FFmpeg, adds a hook-text overlay, presents the candidates to the user for approval, and publishes the approved clips to TikTok / Instagram Reels / YouTube Shorts via the Upload-Post API. Use when the user wants to create shorts/reels/clips from longer videos, mentions autoshorts, viral clips, or content repurposing, or asks for the daily clip batch.
What it loads into context
Frontmatter
227 tokensAlways available to the agent
SKILL.md
5,211 tokensWhen the skill is activated
Reference documents
4,037 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup (only if not yet configured)
- Orchestration model
- Daily workflow
- Weekly learning loop (`learn`)
- Operating notes
Scripts executed separately
autoshorts.py
Files
.env.exampleasset261 bytes.gitignoreasset225 bytesREADME.mddoc18,015 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesSKILL.mdcore21,547 bytesautoshorts.pyruns42,572 bytesrequirements.txtdoc95 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- autoshorts
Repository facts
- License
- No license detected
- Created
- May 1, 2026
- Last pushed
- May 2, 2026
- Forks
- 26
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 17 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: SKILL.md:197
- 32 network referencesin 3 files: SKILL.md:7 README.md:5 autoshorts.py:46
- No hidden or obfuscated text
- No instruction overrides
- 1 executable scriptin 1 file: autoshorts.py:1
- 30 references to secretsin 5 files: autoshorts.py:32 SKILL.md:30 README.md:30 and 2 more
- No requests to vote in Hot
Show all 64 signals by file
.env.example
.gitignore
- Access to secretsline 1
[Credential-related source omitted]
README.md
- Network accessline 5
The idea is to keep a small backlog of long videos and forward a new one to your agent every time you record. The agent (Hermes / Openclaw / whatever you're running) saves it into the input folder for you — you don't manage paths yourself, - Network accessline 17
> Set up https://github.com/mutonby/skill-autoshorts for me. Read README.md. - Network accessline 28
4. Register `SKILL.md` with whichever agent harness is running. For Claude Code, copy or symlink it into `~/.claude/skills/autoshorts/SKILL.md`. For Hermes / Openclaw follow their skill registration docs. 5. Create `.env` from `.env.example - Network accessline 29
5. Create `.env` from `.env.example` and ask the user to paste the values you need: - `GEMINI_API_KEY` — https://aistudio.google.com/apikey (free tier is enough). - `UPLOAD_POST_API_KEY` and `UPLOAD_POST_PROFILE` — https://app.upload- - Network accessline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 31
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Network accessline 32
- Default `INPUT_FOLDER` and `OUTPUT_FOLDER` to `~/Documents/skill-autoshorts/input` and `.../output` unless the user says otherwise. Default `WHISPER_MODEL=medium` and `TIMEZONE=Europe/Madrid` (override if the user is in another timezone). - Network accessline 33
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 232
[Credential-related source omitted]
SKILL.md
- Network accessline 7
author: mutonby version: "2.0.0" homepage: "https://github.com/mutonby/skill-autoshorts" - Network accessline 8
version: "2.0.0" homepage: "https://github.com/mutonby/skill-autoshorts" --- - Network accessline 9
homepage: "https://github.com/mutonby/skill-autoshorts" - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Network accessline 41
### 4. Upload-Post account - Sign up at https://upload-post.com → dashboard at https://app.upload-post.com. - Network accessline 42
- Sign up at https://upload-post.com → dashboard at https://app.upload-post.com. - Network accessline 44
[Credential-related source omitted] - Network accessline 46
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Network accessline 65
2. **`ffmpeg`** in `PATH` — if missing, ask the user to `brew install ffmpeg` (do not install yourself; system-wide installs deserve confirmation). 3. **`.env` file** — check that every required key is set and non-empty: - `GEMINI_API_KE - Network accessline 66
3. **`.env` file** — check that every required key is set and non-empty: - `GEMINI_API_KEY` → if missing, ask: *"Falta la API key de Gemini. Pégamela (la generas en https://aistudio.google.com/apikey)."* - `UPLOAD_POST_API_KEY` and `U - Network accessline 67
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Network accessline 68
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Network accessline 69
- `INPUT_FOLDER` and `OUTPUT_FOLDER` → if missing, default to `~/Documents/skill-autoshorts/input` and `~/Documents/skill-autoshorts/output` and write them to `.env`. - `WHISPER_MODEL` → default `medium`. `TIMEZONE` → default `Europe/Mad - Network accessline 71
4. **Upload-Post platform health** — call `GET /api/uploadposts/users` and read `reauth_required` for each platform on the configured profile. If any platform requires reauth, surface it now so the user knows to either reauth (https://app.u - Dangerous shell operationline 197
[Credential-related source omitted] - Network accessline 197
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Network accessline 198
https://api.upload-post.com/api/uploadposts/users | python -m json.tool - Network accessline 201
If any platform shows `"reauth_required": true`, warn the user — that platform's upload will fail. Either drop that platform from `--platforms` or pause and let the user reauthorize in https://app.upload-post.com.
autoshorts.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 32
[Credential-related source omitted] - Network accessline 46
VIDEO_EXTS = {".mp4", ".mov", ".mkv", ".m4v", ".webm"} GEMINI_MODEL = "gemini-3-flash-preview" UPLOAD_POST_BASE = "https://api.upload-post.com/api" - Network accessline 48
UPLOAD_POST_BASE = "https://api.upload-post.com/api" - Access to secretsline 297
[Credential-related source omitted] - Access to secretsline 298
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted] - Access to secretsline 324
[Credential-related source omitted] - Access to secretsline 543
[Credential-related source omitted] - Access to secretsline 545
[Credential-related source omitted] - Access to secretsline 546
[Credential-related source omitted] - Network accessline 588
with video.open("rb") as fh: files = {"video": (video.name, fh, "video/mp4")} res = requests.post( - Network accessline 589
files = {"video": (video.name, fh, "video/mp4")} res = requests.post( f"{UPLOAD_POST_BASE}/upload", - Network accessline 590
res = requests.post( - Access to secretsline 592
[Credential-related source omitted] - Access to secretsline 751
[Credential-related source omitted] - Access to secretsline 752
[Credential-related source omitted] - Access to secretsline 754
[Credential-related source omitted] - Access to secretsline 756
[Credential-related source omitted] - Network accessline 786
[Credential-related source omitted] - Network accessline 787
[Credential-related source omitted] - Network accessline 788
[Credential-related source omitted] - Access to secretsline 865
[Credential-related source omitted] - Access to secretsline 937
[Credential-related source omitted] - Access to secretsline 939
[Credential-related source omitted] - Access to secretsline 995
[Credential-related source omitted]
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 61 facts
- Network access in prose of documentationREADME.md:5Low confidence
- Network access in prose of documentationREADME.md:17Low confidence
- Network access in prose of documentationREADME.md:28Low confidence
- Network access in prose of documentationREADME.md:29Low confidence
- Network access in prose of documentationREADME.md:30Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueREADME.md:30Low confidence
- Network access in prose of documentationREADME.md:31Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueREADME.md:31Low confidence
- Network access in prose of documentationREADME.md:32Low confidence
- Network access in prose of documentationREADME.md:33Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueREADME.md:33Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.md:232Low confidence
- Network access in the frontmatter of the SKILL.mdSKILL.md:7Low confidence
- Network access in the frontmatter of the SKILL.mdSKILL.md:8Low confidence
- Network access in the frontmatter of the SKILL.mdSKILL.md:9Low confidence
- Access to secrets in code of the SKILL.mdSKILL.md:30High confidence
- Access to secrets in code of the SKILL.mdSKILL.md:32High confidence
- Network access in prose of the SKILL.mdSKILL.md:41Low confidence
- Network access in prose of the SKILL.mdSKILL.md:42Low confidence
- Network access in prose of the SKILL.mdSKILL.md:44Low confidence
- Network access in prose of the SKILL.mdSKILL.md:46Low confidence
- Access to secrets in prose of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:46Low confidence
- Network access in prose of the SKILL.mdSKILL.md:65Low confidence
- Network access in prose of the SKILL.mdSKILL.md:66Low confidence
- Network access in prose of the SKILL.mdSKILL.md:67Low confidence
- Access to secrets in prose of the SKILL.mdSKILL.md:67Low confidence
- Network access in prose of the SKILL.mdSKILL.md:68Low confidence
- Access to secrets in prose of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:68Low confidence
- Network access in prose of the SKILL.mdSKILL.md:69Low confidence
- Network access in prose of the SKILL.mdSKILL.md:71Low confidence
- Dangerous shell operation in code of the SKILL.mdSKILL.md:197High confidence
- Network access in code of the SKILL.mdSKILL.md:197High confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:197Low confidence
- Network access in code of the SKILL.mdSKILL.md:198High confidence
- Network access in prose of the SKILL.mdSKILL.md:201Low confidence
- Executable script in code of a file that runsautoshorts.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueautoshorts.py:32Low confidence
- Network access in code of a file that runsautoshorts.py:46High confidence
- Network access in code of a file that runsautoshorts.py:48High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueautoshorts.py:297Low confidence
- Access to secrets in code of a file that runsautoshorts.py:298High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueautoshorts.py:299Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueautoshorts.py:324Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueautoshorts.py:543Low confidence
- Access to secrets in code of a file that runsautoshorts.py:545High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueautoshorts.py:546Low confidence
- Network access in code of a file that runsautoshorts.py:588High confidence
- Network access in code of a file that runsautoshorts.py:589High confidence
- Network access in code of a file that runsautoshorts.py:590High confidence
- Access to secrets in code of a file that runsautoshorts.py:592High confidence
and 11 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.