Automate TikTok Product Content Creation

March 15, 2026 · RenderIO

The content treadmill is killing your margins

TikTok Shop sellers face a relentless content demand. The algorithm favors accounts that post daily. Product listings with fresh video content rank higher. Competitors are uploading 10-20 videos per day.

If you're paying an editor 4,000/monthtoproduce10videosperday,thats4,000/month to produce 10 videos per day, that's 13 per video. Multiply by the 50-100 videos you actually need per week, and you're either overspending or under-producing.

Automation changes the economics. Your product catalog becomes the input. TikTok-ready videos become the output. No manual editing step in between.

Architecture overview

Product Database → Video Generation → Post-Processing → Scheduling → TikTok
  (Shopify API)    (FFmpeg + Template)   (RenderIO)      (Scheduler)   (Upload)

Each stage is automated. The entire pipeline runs on a trigger: new product added, price changed, or scheduled refresh.

Step 1: Connect your product data source

Shopify webhook

When a new product is created in Shopify, a webhook fires:

// n8n webhook node receives:
{
  "id": 7654321,
  "title": "Premium Yoga Mat",
  "variants": [{ "price": "34.99" }],
  "images": [{ "src": "https://cdn.shopify.com/s/.../yoga-mat.png" }],
  "body_html": "<p>Extra thick, non-slip surface...</p>",
  "tags": "fitness, yoga, home-workout"
}

WooCommerce REST API

Poll for new products:

curl https://yourstore.com/wp-json/wc/v3/products?after=2026-03-01T00:00:00 \
  -u consumer_key:consumer_secret

CSV import

For simpler setups, read from a Google Sheet or CSV:

// products.csv
// sku,name,price,image_url,selling_point
// YM-001,Premium Yoga Mat,$34.99,https://cdn.example.com/yoga-mat.png,Extra Thick

Step 2: Generate product video with RenderIO

For each product, make one API call:

curl -X POST https://renderio.dev/api/v1/run-ffmpeg-command \
  -H "X-API-KEY: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "ffmpeg_command": "-i {in_template} -i {in_product} -filter_complex \"[1:v]scale=500:-1,format=rgba,fade=t=in:st=0.5:d=0.8:alpha=1[img];[0:v][img]overlay=(W-w)/2:350:enable=gte(t\\,0.5),drawtext=text=Premium_Yoga_Mat:fontsize=40:fontcolor=white:x=(w-text_w)/2:y=1200:enable=gte(t\\,1),drawtext=text=$34.99:fontsize=52:fontcolor=#00FF88:x=(w-text_w)/2:y=1300:enable=gte(t\\,1.5),drawtext=text=Extra_Thick:fontsize=28:fontcolor=#AAAAAA:x=(w-text_w)/2:y=1400:enable=gte(t\\,2)[v]\" -map \"[v]\" -map 0:a -c:v libx264 -crf 20 -c:a copy -movflags +faststart -t 15 {out_video}",
    "input_files": {
      "in_template": "https://storage.example.com/tiktok-template.mp4",
      "in_product": "https://cdn.shopify.com/yoga-mat.png"
    },
    "output_files": { "out_video": "ym-001-tiktok.mp4" }
  }'

Step 3: n8n workflow

Here's the complete n8n workflow:

Node 1: Trigger

  • Type: Webhook or Cron

  • Config: Webhook receives Shopify product/create events, or Cron runs daily at 6 AM

Node 2: Get Products

  • Type: HTTP Request (for Shopify API) or Google Sheets (for CSV)

  • Config: Fetch products that don't have videos yet

Node 3: Generate Videos

  • Type: HTTP Request (one per product)

  • Method: POST

  • URL: https://renderio.dev/api/v1/run-ffmpeg-command

  • Headers: X-API-KEY: \{\{$env.RENDERIO_KEY\}\}

  • Body: Constructed from product data

{
  "ffmpeg_command": "-i {in_template} -i {in_product} -filter_complex \"[1:v]scale=500:-1[img];[0:v][img]overlay=(W-w)/2:350,drawtext=text='{{$json.title}}':fontsize=40:fontcolor=white:x=(w-text_w)/2:y=1200,drawtext=text='{{$json.price}}':fontsize=52:fontcolor=#00FF88:x=(w-text_w)/2:y=1300[v]\" -map \"[v]\" -map 0:a -c:v libx264 -crf 20 -c:a copy -movflags +faststart {out_video}",
  "input_files": {
    "in_template": "https://storage.example.com/template.mp4",
    "in_product": "{{$json.image_url}}"
  },
  "output_files": { "out_video": "{{$json.sku}}.mp4" }
}

Node 4: Wait for Processing

  • Type: Wait (30 seconds) + HTTP Request (poll status)

  • Loop: Until status equals "completed"

Node 5: Download Result

  • Type: HTTP Request

  • Config: GET the output file URL from the completed command

Node 6: Upload to TikTok

  • Type: HTTP Request

  • Config: POST to TikTok's Content Publishing API

Zapier alternative

For teams already on Zapier:

  1. Trigger: New row in Google Sheet (product catalog)

  2. Code by Zapier: Format product data for API call

  3. Webhooks by Zapier: POST to RenderIO API

  4. Delay by Zapier: Wait 30 seconds

  5. Webhooks by Zapier: GET command status

  6. Filter: Continue if status is "completed"

  7. Webhooks by Zapier: GET output file URL

  8. Google Drive: Save output for manual upload (or continue to TikTok API)

Handling product updates

Products change. Prices update. Images refresh. Set up a second workflow:

// Daily check for product updates
async function refreshOutdatedVideos() {
  const products = await getProductsUpdatedSince(yesterday);

  for (const product of products) {
    // Delete old video
    await deleteOldVideo(product.sku);

    // Generate new video with updated data
    await createProductVideo(product);
  }
}

This runs daily and regenerates videos for any product that changed. Price drop? New image? The video updates automatically.

Content calendar automation

Schedule content to publish throughout the week:

const schedule = {
  monday: 3,    // 3 new product videos
  tuesday: 3,
  wednesday: 3,
  thursday: 3,
  friday: 5,    // More on weekends
  saturday: 5,
  sunday: 3,
};

async function generateDailyContent(day) {
  const count = schedule[day];
  const products = await getProductsWithoutRecentVideo(count);

  const jobs = products.map(p => createProductVideo(p));
  return Promise.all(jobs);
}

25 videos per week, fully automated. That's 100 per month without any manual editing.

Cost analysis

ComponentMonthly cost
RenderIO (Growth plan, 1,000 commands)$29
n8n (self-hosted)$0
Shopify (existing)$0 incremental
Storage (Cloudflare R2)~$1-5
Total~$30-34/mo

Compare to:

  • Freelance editor: $2,000-5,000/mo for 200 videos

  • CapCut Pro + manual: $10/mo + 40 hours of your time

  • Full automation: $34/mo + 0 hours of your time

The automation pays for itself with the first product video.

Getting started

  1. Create a 15-second template video in CapCut or Canva (one time)

  2. Export your product catalog as CSV

  3. Sign up for RenderIO (plans start at $9/month)

  4. Run the batch script for your first 100 products

  5. Set up the n8n workflow for ongoing automation

From product catalog to TikTok content, fully automated. No editors. No manual exports. No bottleneck.