AI Agent Skill

MoneyPrinter TikTok

Generate viral TikTok videos automatically. Give this URL to your AI agent — it has everything it needs to create and manage videos.

Skill URL: https://tiktok.eliaspfeffer.de

How to use this skill

1
Make sure MoneyPrinter is running
On Elias's MacBook, open a terminal and type tiktok. This starts the API on localhost:7841 automatically.
2
POST a generate request
Send the video subject and parameters to http://localhost:7841/api/generate. You get a jobId back.
3
Poll until completed
Check GET /api/jobs/{jobId} every 2 seconds. State will be completed or failed when done (usually 1–3 minutes).
4
Download the video
The finished MP4 is at GET /api/videos/{resultPath}. Ready to upload to TikTok directly.

POST /api/generate

Request body

// Minimal example
{
  "videoSubject": "bit-chat.me — Send Bitcoin via Telegram. Zero fees.",
  "aiModel": "qwen3:4b",
  "voice": "en-US-AriaNeural",
  "paragraphNumber": 1,
  "useMusic": true,
  "color": "#FFFF00",
  "subtitlesPosition": "bottom",
  "customSearchTerms": ["bitcoin phone", "telegram chat", "crypto payment"],
  "customPrompt": "Start with a 3-second hook. End with: visit bit-chat.me"
}

Parameters

ParameterTypeDefaultDescription
videoSubjectrequiredWhat the video is about. Include product name, key benefit, URL.
aiModelstringqwen3:4bOllama model for script generation. qwen3:4b is fast and local.
voicestringen-US-AriaNeuralEdgeTTS voice for the narration. See voices list below.
paragraphNumberint1Script length. 1 = ~15s (TikTok), 2 = ~30s, 3 = ~45s.
useMusicboolfalseAdd background music. Songs are pre-loaded TikTok-style tracks.
colorstring#FFFF00Subtitle hex color. Yellow is most readable on TikTok.
subtitlesPositionstringbottom"bottom", "center", or "top".
customSearchTermsarray[]Pexels search terms for background video. If empty, AI picks.
customPromptstring""Extra instruction added to the AI script generation prompt.
threadsint2Render threads. Higher = faster but more CPU.

Response

{ "status": "success", "jobId": "3f2a1b4c-..." }

GET /api/jobs/{jobId}

{
  "job": {
    "state": "completed",  // "queued" | "running" | "completed" | "failed"
    "resultPath": "3f2a1b4c-....mp4",
    "errorMessage": null
  }
}

Poll every 2 seconds. Typical generation time: 1–3 minutes.

All jobs / video history

// GET /api/jobs  →  returns all jobs, newest first
{ "jobs": [{ "id": ..., "state": ..., "subject": ..., "resultPath": ... }] }

GET /api/videos/{filename}

Streams the MP4 file. Download it or pipe directly into a TikTok upload script.

# Download the finished video
curl -o video.mp4 http://localhost:7841/api/videos/{resultPath}

Full Python example

import requests, time

BASE = "http://localhost:7841"

# 1. Generate the video
resp = requests.post(f"{BASE}/api/generate", json={
    "videoSubject": "bit-chat.me — Send Bitcoin via Telegram to AI agents. Zero fees.",
    "aiModel": "qwen3:4b",
    "voice": "en-US-AriaNeural",
    "paragraphNumber": 1,
    "useMusic": True,
    "color": "#FFFF00",
    "subtitlesPosition": "bottom",
    "customSearchTerms": ["bitcoin telegram", "crypto phone", "lightning payment"],
    "customPrompt": "Open with a shocking hook. End with: visit bit-chat.me"
})
job_id = resp.json()["jobId"]

# 2. Poll until done
while True:
    job = requests.get(f"{BASE}/api/jobs/{job_id}").json()["job"]
    if job["state"] == "completed":
        video_url = f"{BASE}/api/videos/{job['resultPath']}"
        print(f"✓ Video ready: {video_url}")
        break
    elif job["state"] == "failed":
        print(f"✗ Failed: {job['errorMessage']}")
        break
    time.sleep(2)

Available voices

en-US-AriaNeural
US Female — recommended
en-US-JennyNeural
US Female — warm
en-US-MichelleNeural
US Female — clear
en-US-GuyNeural
US Male — natural
en-US-ChristopherNeural
US Male — deep
en-GB-SoniaNeural
UK Female
en-GB-RyanNeural
UK Male
de-DE-KatjaNeural
German Female

Tips for viral videos

🪝
Hook in 3 seconds. Set customPrompt to "Open with a shocking fact or provocative question in the first sentence."
⏱️
Keep it short. paragraphNumber: 1 produces ~15s videos — the TikTok algorithm favors full watches over long videos.
🎬
Match the visuals. Use customSearchTerms that match the script. For bit-chat: ["bitcoin phone", "telegram chat", "lightning payment"].
💛
Yellow subtitles. color: "#FFFF00" is the most readable subtitle color on TikTok — used in 90% of viral videos.
🎵
Always use music. useMusic: true adds a background track from the pre-loaded TikTok music library.

Product context: bit-chat

bit-chat
bit-chat.me

Bitcoin payments via Telegram, WhatsApp, Signal, and Email — for humans and AI agents. Built on Lightning Network. Zero fees for early users.

Lightning Network Zero fees Telegram-first AI agent payments No app needed Instant

Suggested CTAs for bit-chat videos