Side-Products-faceless-skill

faceless-skill

Create, render and publish AI faceless videos with Faceless.so. Use when the user asks about creating faceless videos, AI video generation from a script, auto-posting to YouTube, TikTok, Instagram or X, automated video series, scheduling short-form content across platforms, or checking Faceless credits and post analytics.
étoiles—
forks—
observateurs—
mise à jourNon disponible

Faceless.so

Faceless.so turns a narration script into a finished faceless video: TTS voiceover, AI-generated visuals, captions and music. Videos render in the cloud and publish to connected YouTube, TikTok, Instagram, X, Facebook, LinkedIn and Threads accounts, either immediately or on a schedule. Series generate and post new episodes automatically.

When to use this skill

  • "Make a faceless video from this script" -> videos create, poll status, render, publish
  • "Post this to YouTube Shorts / TikTok" or "schedule it for Friday 6pm" -> posts publish or posts schedule
  • "Set up a channel that posts a scary story every day" -> series create
  • "Generate the next episode now" -> series generate
  • "What is queued? How did my posts do?" -> calendar, analytics
  • "How many Faceless credits do I have?" -> credits

Setup: install the CLI if missing

  1. Check the CLI: faceless --version
  2. If not found, install it: npm install -g faceless-cli (or use npx -y faceless-cli <command> without installing)
  3. Authenticate, one of:
    • FACELESS_API_KEY environment variable already set: nothing to do
    • Otherwise ask the user for an API key (created at https://faceless.so/developers) and run faceless login
  4. Verify: faceless whoami

If npm is unavailable, fall back to the raw HTTP API (see the last section).

Core concepts

  • A team owns credits, API keys and connected social accounts; every command runs in the key's team context (faceless whoami shows it).
  • Credits are charged at video creation time, by model: storyboard 20, motion_lite 50, motion_pro 100 credits per video. Rendering and publishing are free.
  • Videos generate asynchronously: videos create returns an id immediately; poll videos status until completed, then videos render and poll renders get for the MP4 URL.
  • Series are set-and-forget channels: they generate and auto-post a new episode on their schedule, charging the per-episode model cost each time.
  • Scheduling to a platform requires that platform's post metadata on the video first (videos update), and a connected account (faceless accounts).
  • Always pass --json when running commands from a script or agent and parse the success field.

Command reference

CommandWhat it doesEndpoint
faceless whoamiIdentify the callerGET /me
faceless creditsCredit balance and historyGET /credits
faceless buy-creditsBuy a credit pack with an agent payment tokenPOST /credits
faceless videos createCreate a faceless video from a scriptPOST /videos
faceless videos captionsCaption an existing video or audio filePOST /videos/captions
faceless videos listList the team's videosGET /videos
faceless videos getGet one videoGET /videos/{id}
faceless videos updateUpdate a video's name or post metadataPATCH /videos/{id}
faceless videos select-thumbnailChoose which thumbnail a video usesPOST /videos/{id}/thumbnail
faceless videos statusPoll video generation progressGET /videos/{id}/status
faceless videos renderRender a video to MP4POST /videos/{id}/render
faceless videos deleteDelete a videoDELETE /videos/{id}
faceless renders getPoll render progressGET /renders/{id}
faceless series createCreate an automated video seriesPOST /series
faceless series listList the team's seriesGET /series
faceless series getGet one seriesGET /series/{id}
faceless series updateUpdate a seriesPATCH /series/{id}
faceless series deleteDelete a seriesDELETE /series/{id}
faceless series generateGenerate the next episode nowPOST /series/{id}/generate
faceless series episodesList a series' episodesGET /series/{id}/episodes
faceless posts publishPublish a rendered video to a platform nowPOST /posts
faceless posts scheduleSchedule a video to one or more platformsPOST /posts/schedule
faceless posts cancelCancel a scheduled postDELETE /posts/{id}
faceless calendarPosting calendarGET /calendar
faceless accountsList connected social accountsGET /accounts
faceless voicesList TTS voicesGET /voices
faceless optionsList content option catalogsGET /options
faceless assets createRegister a media asset by URLPOST /assets
faceless analyticsCross-platform posting analyticsGET /analytics
faceless ads searchSearch Meta ads shown in the EU and UKGET /ads/search
faceless ads savedList the team's saved adsGET /saved-ads
faceless ads saveSave an ad from a searchPOST /saved-ads
faceless ads unsaveRemove a saved adDELETE /saved-ads/{id}
faceless ads briefWrite an ad brief for your brand from a competitor's adPOST /ads/briefs

Full flag-level detail: references/api-reference.md (or https://faceless.so/llms-full.txt).

Common workflows

Script to published video, end to end

faceless videos create --script "Did you know the ocean has rivers of its own? ..." \
  --voice-id EXAVITQu4vr4xnSDxMaL --model storyboard --json   # charges 20 credits, returns id
faceless videos status <videoId> --json    # poll every 10-30s until status "completed"
faceless videos render <videoId> --json    # returns renderId
faceless renders get <renderId> --json     # poll every 5-15s until status "done", gives the MP4 url
faceless posts publish --video-id <videoId> --platform youtube --title "Underwater rivers are real" --json

Pick a voice with faceless voices --json; enumerate styles, niches, models and more with faceless options --kind <kind> --json.

Automated series

faceless series create --name "Deep sea facts" --source "Facts & stories" \
  --niche "Ocean facts" --voice EXAVITQu4vr4xnSDxMaL --duration 60 \
  --auto-post-time 18:00 --timezone America/New_York --json
faceless series generate <seriesId> --json   # force the next episode now (charges the model cost)
faceless series episodes <seriesId> --json   # track output

Schedule one video to several platforms

faceless videos update <videoId> \
  --youtube-title "Underwater rivers are real" --tiktok-title "underwater rivers #ocean" --json
faceless posts schedule --video-id <videoId> --platforms youtube,tiktok \
  --scheduled-time "2026-08-01T18:00:00Z" --json
faceless calendar --start-date 2026-08-01 --end-date 2026-08-07 --json   # confirm the queue

Every platform in --platforms must have its post metadata set on the video first; scheduling rejects platforms whose metadata is missing. Cancel with faceless posts cancel <videoId> --json.

Error handling

Errors look like { "success": false, "error": { "type", "message" } }.

  • unauthorized (401): re-run faceless login (or fix FACELESS_API_KEY)
  • forbidden_scope (403): the key lacks a scope; ask the user to create a key with the needed scopes at https://faceless.so/developers
  • insufficient_credits (402): tell the user to buy credits at https://faceless.so/credits
  • rate_limited (429): respect the Retry-After header, wait and retry
  • invalid_input (400): fix the flags per references/api-reference.md
  • not_found (404): the id is wrong or belongs to another team

Raw HTTP fallback (no CLI)

Base URL https://faceless.so/api/v1, header Authorization: Bearer $FACELESS_API_KEY.

curl -s https://faceless.so/api/v1/me -H "Authorization: Bearer $FACELESS_API_KEY"

Machine-readable surface: https://faceless.so/api/v1/openapi.json and https://faceless.so/llms-full.txt. A remote MCP server is also available at https://faceless.so/api/v1/mcp (same Authorization header).