Ai đó ở Brazil vừa cắt một clip dài 15 giây 11 phút trước

201441 clip đã được cắt bằng AppsGolem.

API dành cho nhà phát triển · máy chủ MCP

Cắt clip YouTube ngay từ code của bạn.

Một REST API đơn giản và một máy chủ MCP dành cho các tác nhân AI — làm được mọi thứ mà công cụ cắt web đang làm, nhưng bằng lập trình. Tín dụng trả trước, không cần thuê bao.

API + MCP cho agent lập trình →

# one clip = 1 credit — failed cuts never billed
curl -X POST https://appsgolem.com/v1/cuts \
  -H "Authorization: Bearer ag_live_…" \
  -d '{"url":"youtu.be/…","start":"0:00",
       "end":"0:10","mode":"video"}'
Cách hoạt động

Mới đến đây? Toàn bộ mô hình trong một phút.

Bạn mua credit trả trước, tạo một API key, rồi gọi một endpoint để cắt clip. Việc cắt là bất đồng bộ: bạn gửi một job, thăm dò định kỳ cho đến khi job được tạo xong, rồi tải file từ một URL có token. Máy chủ MCP gói tất cả những bước đó vào một lệnh gọi công cụ duy nhất dành cho các AI agent. Không cần đăng ký thuê bao, không cần chỗ ngồi — bạn chỉ trả tiền cho mỗi clip được tạo ra.

1 · Xác thực
Gửi key của bạn dưới dạng Authorization: Bearer ag_live_… trong mỗi yêu cầu.
2 · Gửi & thăm dò
POST /v1/cuts trả về một job id; thăm dò GET /v1/cuts/{id} cho đến khi job được tạo xong.
3 · Tải xuống
Lấy download_url từ job đã hoàn tất — không cần header, token đã xác thực sẵn.
Bắt đầu nhanh

Từ con số 0 đến một đoạn clip chỉ trong bốn lệnh gọi.

01
Tạo một khóa API
Buy a credit pack (from €5), then generate a key in your dashboard. Keys look like ag_live_… and are shown once — store it somewhere safe.
02
Gửi yêu cầu cắt
curl -X POST https://appsgolem.com/v1/cuts \
  -H "Authorization: Bearer ag_live_…" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://youtu.be/aqz-KE-bpKQ",
       "start":"0:00","end":"0:10",
       "resolution":"1080p","mode":"video"}'
202 Accepted
{ "id": "e48d…b1a2", "state": "queued", "credits_reserved": 1, "poll_url": "/v1/cuts/e48d…b1a2" }
03
Thăm dò URL tải xuống
# GET /v1/cuts/{id} — repeat every few seconds until state is produced
{ "state": "produced",
  "download_url": "/v1/download/…/clip.mp4" }
Trạng thái chuyển theo trình tự accepted → queued → produced → delivered (hoặc failed → refunded). Một clip ngắn thường sẵn sàng chỉ sau vài giây; hãy thăm dò mỗi 3–5 s.
Liên kết tải xuống sẽ hết hạn sau 72 giờ kể từ khi clip được tạo — hãy tải xuống trong khoảng thời gian đó.
04
Tải đoạn clip xuống
URL có mã token này phát trực tuyến MP4 — có thể dùng lại cho đến khi hết hạn. Công cụ MCP cut_youtube_video thực hiện các bước 2–4 giúp bạn chỉ trong một lệnh gọi.
Dành cho các tác nhân AI · MCP

Một dòng lệnh cho Claude, Cursor & Codex.

Máy chủ MCP cung cấp công cụ cắt dưới dạng ba công cụ mà bất kỳ MCP client nào cũng có thể gọi. Cài đặt bằng npx — không cần cài đặt gì trên toàn cục.

Claude Desktop — claude_desktop_config.json
{ "mcpServers": {
  "appsgolem": {
    "command": "npx",
    "args": ["-y","appsgolem-mcp"],
    "env": { "APPSGOLEM_API_KEY":
      "ag_live_…" } } } }
Claude Code
claude mcp add appsgolem \
  -e APPSGOLEM_API_KEY=ag_live_… \
  -- npx -y appsgolem-mcp
Codex CLI — ~/.codex/config.toml
[mcp_servers.appsgolem]
command = "npx"
args = ["-y", "appsgolem-mcp"]
env = { APPSGOLEM_API_KEY = "ag_live_…" }
cut_youtube_video()
Gửi một yêu cầu cắt (bất kỳ chế độ, tùy chọn nào, hoặc một mảng clip) và nhận lại URL tải xuống.
get_cut_status()
Kiểm tra một tác vụ theo id và lấy URL tải xuống của nó.
get_account_balance()
Credit khả dụng và giới hạn hàng giờ của bạn.
Những gì cần nói với agent của bạn — mọi khả năng
“Cắt video từ 0:30 đến 1:15 ở độ phân giải 1080p”
cut_youtube_video(url, start="0:30", end="1:15", resolution="1080p")
“Lấy âm thanh của video đó từ 2:00–5:00 dưới dạng MP3 320 kbps”
cut_youtube_video(…, mode="audio_only", audio_format="mp3", bitrate="320")
“Xuất video và một file MP3 của 30 giây đầu tiên”
cut_youtube_video(…, end="0:30", mode="both")
“Tạo video dọc 9:16 từ đoạn nổi bật 10:00–10:45”
cut_youtube_video(…, start="10:00", end="10:45", mode="short")
“Chuyển đoạn 0:05–0:12 thành GIF”
cut_youtube_video(…, mode="gif")
“Trích xuất một contact sheet gồm các khung hình cách nhau 5 giây từ 1:00–2:00”
cut_youtube_video(…, mode="frames", interval_ms=5000, sheet=true)
“Stitch đoạn 0:10–0:20 và 1:00–1:10 thành một clip”
cut_youtube_video(url, clips=[…], stitch=true)
“Thực hiện một lần cắt fast, stream-copy cho 30 giây đầu tiên”
cut_youtube_video(…, end="0:30", fast=true)
“Cắt đoạn 0:00–0:20 ở tốc độ 1.5×, chất lượng 4K”
cut_youtube_video(…, speed=1.5, resolution="2160p")
“Tôi còn lại bao nhiêu credit API?”
get_account_balance()
“Kiểm tra job e48d…b1a2”
get_cut_status(job_id="e48d…b1a2")
Agent sẽ tự điền các tham số từ yêu cầu của bạn — bạn không cần viết JSON.
Tài liệu tham khảo API

Mọi endpoint, kèm ví dụ.

Bốn endpoint. Ba endpoint đọc/ghi yêu cầu Authorization: Bearer <key>; URL tải xuống được xác thực bằng token riêng của nó, nên không cần header.

POST /v1/cuts Bearer
Yêu cầu · video
{ "url": "https://youtu.be/aqz-KE-bpKQ",
  "start": "0:00", "end": "0:10",
  "resolution": "1080p", "mode": "video" }
Phản hồi · 202 Accepted
{ "id": "e48db1a2-…", "state": "queued", "credits_reserved": 1, "poll_url": "/v1/cuts/e48db1a2-…" }
Truyền vào hoặc start+end, hoặc một mảng clips (1–10 khoảng). Thêm header Idempotency-Key (≤200 ký tự) để một yêu cầu gửi lại dùng chung job thay vì bị tính phí hai lần.
Nội dung yêu cầu theo từng chế độ
audio_onlymp3 · m4a · wav · flac
{ "url":"youtu.be/…", "start":"2:00", "end":"5:00",
  "mode":"audio_only",
  "audio_format":"mp3", "bitrate":"320" }
bothMP4 + MP3, nén zip
{ "url":"youtu.be/…", "start":"0:00", "end":"0:30",
  "mode":"both", "resolution":"1080p" }
short9:16, smart-crop bằng AI
{ "url":"youtu.be/…", "start":"10:00", "end":"10:45",
  "mode":"short" }
nosoundMP4, không âm thanh
{ "url":"youtu.be/…", "start":"0:00", "end":"0:15",
  "mode":"nosound", "fast":true }
gif≤ 5 phút, một clip
{ "url":"youtu.be/…", "start":"0:05", "end":"0:12",
  "mode":"gif" }
framesẢnh tĩnh JPG · ≤ 1800
{ "url":"youtu.be/…", "start":"1:00", "end":"2:00",
  "mode":"frames", "interval_ms":5000,
  "sheet":true }
clips + stitch1–10 → một file
{ "url":"youtu.be/…", "mode":"video",
  "clips":[{"start":"0:10","end":"0:20"},
          {"start":"1:00","end":"1:10"}],
  "stitch":true }
speed · 4K0.5–2× · 2160p
{ "url":"youtu.be/…", "start":"0:00", "end":"0:20",
  "mode":"video", "speed":1.5,
  "resolution":"2160p" }
GET /v1/cuts/{id} Bearer
Phản hồi · 200 · produced
{ "id": "e48db1a2-…", "state": "produced", "credits_reserved": 1,
  "created_at": "2026-08-22T12:00:00+00:00",
  "download_url": "/v1/download/…/clip.mp4" }
state là một trong các giá trị accepted · queued · produced · delivered · failed · refunded. download_url sẽ xuất hiện khi token đã sẵn sàng — nếu chưa có, hãy thăm dò lại.
GET /v1/account Bearer
Phản hồi · 200
{ "balance": 412, "hourly_cap": 60 }
GET /v1/download/{token}/{file} Token trong URL
Phản hồi · 200
# streams the file
Content-Type: video/mp4
Content-Disposition: attachment; filename="clip.mp4"
Không cần header Bearer — token trong đường dẫn đã xác thực sẵn. URL có thể dùng lại cho đến khi hết hạn.
Lỗi

Mỗi lỗi đều trả về một body JSON kèm mã error và mã trạng thái HTTP. Thử lại 429 sau retry_after giây; sửa lỗi và gửi lại với 400.

402 insufficient_credits
{ "error":"insufficient_credits",
  "message":"need 2 credits", "balance":1 }
429 rate_limited
{ "error":"rate_limited",
  "retry_after":12 }
400 invalid_*
{ "error":"invalid_resolution",
  "message":"resolution must be…" }
401 · 404
{ "error":"invalid_api_key" }  // 401
{ "error":"not_found" }        // 404
Giới hạn tần suất: Chỉ các lượt gửi yêu cầu cắt mới bị giới hạn tốc độ — theo số lượt gửi/giờ của gói của bạn (xem phần Giá). Việc kiểm tra tiến trình của một tác vụ không bị giới hạn tốc độ khi sử dụng thông thường, vì vậy việc polling không bao giờ tính vào giới hạn đó. Hãy tuân thủ poll_after trong mỗi phản hồi (và Retry-After trong trường hợp hiếm gặp mã 429); công cụ MCP sẽ tự điều chỉnh nhịp độ này giúp bạn bằng wait=true.
Khả năng

Mọi chế độ mà công cụ cắt web hỗ trợ.

MODE video
MP4 lên đến 4K
144p–2160p, 60fps, không có hình mờ.
MODE audio_only
Âm thanh
mp3 / m4a / wav / flac, có thể chọn bitrate.
MODE both
Video + âm thanh
MP4 và MP3 cùng nhau, dưới dạng file zip.
MODE nosound
Video tắt tiếng
Video đã loại bỏ track âm thanh.
MODE short
Dọc 9:16
Tự động crop thông minh bằng AI cho Shorts, Reels và TikTok; nếu không khả dụng sẽ dùng khung viền mờ (letterbox) để thay thế.
MODE gif
GIF động
Tối đa 5 phút, lấy trực tiếp từ một đoạn clip.
MODE frames
JPG frames
Mỗi 100ms–10s, kèm dấu thời gian + bảng tổng hợp ảnh.
OPTION fast
Chế độ nhanh
Sao chép luồng (stream-copy), nhanh hơn khoảng 10×; giữ nguyên định dạng container gốc (WebM ở 1440p/2160p).
OPTION speed
Tốc độ 0.5–2×
Điều chỉnh lại tốc độ phát khi xuất file.
OPTION clips
Ghép nhiều clip
Tối đa 10 đoạn được ghép thành một file.
Tài liệu tham khảo

Tham số

Trường
Loại
Ghi chú
url
string
URL xem / chia sẻ YouTube / youtu.be.
start, end
string
"SS" / "MM:SS" / "HH:MM:SS" (≤ 300h). Bỏ qua khi dùng clip.
resolution
enum
144p · 240p · 360p · 480p · 720p · 1080p · 1440p · 2160p (4K; tổng thời lượng cắt ≤ 60 phút).
mode
enum
video · audio_only · both · nosound · short · gif · frames.
audio_format
enum
mp3 · m4a · wav · flac — chỉ dành cho audio_only; both luôn là MP3.
bitrate
enum
Bitrate mất dữ liệu 320 · 256 · 192 · 128 kbps — MP3/M4A (audio_only), MP3 (both); bị bỏ qua với wav/flac.
fast
boolean
Stream-copy, nhanh hơn khoảng 10× — chỉ video, nosound, both; buộc speed về 1×.
speed
number
Tốc độ phát 0.5 · 1 · 1.25 · 1.5 · 2 — video, nosound, both, audio_only.
interval_ms
integer
Lấy mẫu khung hình: 100 · 500 · 1000 · 2000 · 5000 · 10000 ms; ≤ 1800 JPG tổng cộng.
burn_ts
boolean
Khung hình — in đè dấu thời gian gốc lên mỗi ảnh JPG.
sheet
boolean
Khung hình — một ảnh JPG duy nhất dạng bảng xem trước (một clip); tắt burn_ts.
clips
array
1–10 khung {start,end}; bật stitch để gộp thành một file.
stitch
boolean
Với clips, ghép chúng thành một tệp — video, audio_only, both, short, nosound.
Idempotency-Key
header
Được gửi dưới dạng header HTTP (≤ 200 ký tự), không phải trường dữ liệu trong body — các lần thử lại sẽ dùng lại cùng một job.
Điểm cuối: POST /v1/cuts · GET /v1/cuts/{id} · GET /v1/account — Xác thực bằng Bearer.
GET /v1/download/{token}/{file} — Xác thực bằng token trong URL, không cần header Bearer.
Giá

Trả tiền theo clip, không theo số người dùng.

Tín dụng trả trước vận hành API cắt video & máy chủ MCP của AppsGolem — mỗi clip tạo ra thành công tương ứng với 1 tín dụng, và các lần cắt thất bại sẽ không bao giờ bị tính phí. Mua một gói nếu bạn dùng không thường xuyên, hoặc đăng ký nếu bạn dùng đều đặn hằng tháng để có giới hạn tốc độ cao hơn.

№ 01  /  Gói trả trước

Trả tiền theo mức sử dụng.

Mua một lần, không tự động gia hạn. Tín dụng có hiệu lực trong 12 tháng.

Gói khởi đầu
€5 một lần

25 tín dụng · ≈ 25 clip chuẩn

Hiệu lực 12 tháng

Bắt đầu
Gói PAYG Đáng giá nhất
€25 một lần

150 tín dụng · ≈ 150 clip chuẩn

Hiệu lực 12 tháng · €0,17 / tín dụng

Bắt đầu

№ 02  /  Gói thuê bao

Cắt video hằng tháng.

Tín dụng được làm mới mỗi kỳ và giới hạn tốc độ của bạn sẽ tăng lên. Hủy bất cứ lúc nào.

Khởi đầu
€19 / tháng

hoặc €190 / năm · miễn phí 2 tháng

250 tín dụng / tháng

  • 30 yêu cầu / giờ
  • Tín dụng được làm mới hằng tháng
  • Hủy bất cứ lúc nào
Bắt đầu
★ Phổ biến nhất Pro
€49 / tháng

hoặc €490 / năm · miễn phí 2 tháng

1000 tín dụng / tháng

  • 60 yêu cầu / giờ
  • Tín dụng được làm mới hằng tháng
  • Hủy bất cứ lúc nào
Bắt đầu
Mở rộng
€149 / tháng

hoặc €1490 / năm · miễn phí 2 tháng

5000 tín dụng / tháng

  • 120 yêu cầu / giờ
  • Tín dụng được làm mới hằng tháng
  • Hủy bất cứ lúc nào
Bắt đầu

Gói đăng ký cấp trước toàn bộ tín dụng của cả kỳ và nâng giới hạn yêu cầu/giờ của bạn. Gói năm chỉ tính phí 10 tháng cho 12 tháng sử dụng.

№ 03  /  Tín dụng hoạt động như thế nào

Chi phí cho mỗi lần cắt.

  • Clip chuẩn (tối đa 1080p; chỉ âm thanh thì không giới hạn độ phân giải)1 tín dụng
  • Clip video 4K (2160p)4 tín dụng
  • Video gốc dài hơn 2 giờ (khi xác định được)+1 / tác vụ
  • Xử lý hàng loạt N clip (nén zip hoặc ghép nối)N × mỗi clip

Ví dụ minh họa

Ba clip nổi bật 1080p + một clip 4K từ video dài 25 phút → 3×1 + 4 = 7 credits.

Một podcast dài 3 giờ được cắt thành một file MP3 → 1 + 1 = 2 credits (+1 là phụ phí cho >2 h).

№ 04  /  FAQ

Điều cần biết.

Tín dụng là gì?

Một clip tạo ra thành công = một tín dụng. Clip 4K tốn 4 tín dụng, và xử lý theo lô sẽ nhân theo số lượng clip.

Tín dụng có hết hạn không?

Tín dụng từ gói lẻ có hiệu lực trong 12 tháng. Tín dụng từ gói đăng ký chỉ có hiệu lực trong kỳ thanh toán mà chúng được cấp.

Giới hạn yêu cầu/giờ là gì?

Là số lượng lệnh gọi API bạn có thể gửi mỗi giờ. Gói lẻ giữ mức mặc định là 30; gói Pro nâng lên 60 và gói Scale nâng lên 120.

Tôi có thể hủy bất cứ lúc nào không?

Có. Gói đăng ký có thể hủy chỉ với một cú nhấp chuột; bạn vẫn giữ được mọi tín dụng đã được cấp cho đến khi hết hạn.

Điều gì xảy ra nếu quá trình cắt thất bại?

Các lần cắt thất bại sẽ không bao giờ bị tính phí — tín dụng đã giữ chỗ sẽ được hoàn lại tự động khi đợt cấp vẫn còn hiệu lực.

Tôi có thể kết hợp gói lẻ với gói đăng ký không?

Có. Tín dụng từ gói lẻ và gói đăng ký được cộng dồn; nhóm tín dụng hết hạn sớm nhất luôn được sử dụng trước.