YouTube আপলোড API ভিডিও ও Shorts শিডিউল করুন

একটি স্ক্রিপ্ট, CI জব বা AI এজেন্ট থেকে নিজের শিরোনাম, বিবরণ ও ভিজিবিলিটি দিয়ে নির্ধারিত সময়ে YouTube-এ ভিডিও আপলোড করুন। Google সাইন ইন দিয়ে চ্যানেলটি একবার যুক্ত করুন।

বেস URL https://api.so-me.studio/v1 · প্রমাণীকরণ X-API-Key · socialMedia: YOUTUBE

YouTube-এ আপনি যা পাবলিশ করতে পারেন

এই মানগুলোর একটি postType হিসেবে পাঠান। প্রতিটি পোস্টে টেক্সট লাগবে, আর ছবি বা ভিডিও আপনার মিডিয়া লাইব্রেরি থেকে fileId দিয়ে যুক্ত করা হয়।

VIDEO

একটি ভিডিও ফাইল। YouTube সর্বোচ্চ ৩ মিনিটের ভার্টিকাল ভিডিওকে Short হিসেবে গণ্য করে, তাই আলাদা কোনো Shorts টাইপ নেই।

YouTube পোস্ট শিডিউল করুন

মিডিয়া আপলোড করুন, তারপর পোস্ট তৈরি করুন। সঙ্গে সঙ্গে পাবলিশ করতে scheduledAt বাদ দিন।

  1. আপলোড URL রিজার্ভ করুন

    POST /v1/media/presign-upload ফাইলটি আপনার মিডিয়া লাইব্রেরিতে যোগ করে এবং একটি fileId ও একটি প্রি-সাইনড uploadUrl ফেরত দেয়।

    আপলোড URL রিজার্ভ করুন
    curl -X POST https://api.so-me.studio/v1/media/presign-upload \
      -H "X-API-Key: $SOME_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"files":[{"filename":"build-time.mp4","mimetype":"video/mp4","size":209715200}]}'
    
    # → [{ "fileId": "…", "uploadUrl": "https://…", "fileSrc": "…", "s3Key": "…" }]
  2. ফাইল আপলোড করুন

    আপনি যে Content-Type ঘোষণা করেছেন ঠিক সেটি দিয়ে uploadUrl-এ বাইটগুলো PUT করুন। URL-টি এক ঘণ্টা বৈধ থাকে।

    ফাইল আপলোড করুন
    curl -X PUT "$UPLOAD_URL" \
      -H "Content-Type: video/mp4" \
      --upload-file ./build-time.mp4
  3. পোস্ট তৈরি করুন

    fileId সহ POST /v1/posts করুন। রেসপন্স হলো SCHEDULED স্ট্যাটাসের পোস্টটি, আর এটি scheduledAt-এ একটি কিউয়ের মাধ্যমে পাবলিশ হয়, ব্যর্থ হলে কিউটি আবার চেষ্টা করে।

    পোস্ট তৈরি করুন
    curl -X POST https://api.so-me.studio/v1/posts \
      -H "X-API-Key: $SOME_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "socialMedia": "YOUTUBE",
        "postType": "VIDEO",
        "text": "কীভাবে আমরা বিল্ড টাইম অর্ধেকে নামিয়ে আনলাম",
        "fileIds": ["<fileId>"],
        "scheduledAt": "2026-11-08T16:00:00Z",
        "metaData": {
          "title": "কীভাবে আমরা বিল্ড টাইম অর্ধেকে নামিয়ে আনলাম",
          "description": "ক্যাশিং, প্যারালাল জব এবং একটি বিস্ময়কর ফ্ল্যাগ।",
          "visibility": "public"
        }
      }'

ওয়ার্কস্পেসে একটিমাত্র YouTube অ্যাকাউন্ট থাকলে accountId ঐচ্ছিক। না হলে GET /v1/accounts থেকে একটি id দিন।

fileIds দিয়ে যুক্ত ফাইলগুলো কিউতে যাওয়ার আগে নিচের YouTube সীমার সাথে মিলিয়ে দেখা হয়। কোনো ফাইল নিয়ম ভাঙলে প্রতিটি ফাইলের রিপোর্টসহ 400 ফেরত আসে।

YouTube অপশন

যেসব ফিল্ড YouTube-এ পোস্ট কীভাবে পাবলিশ হবে তা বদলায়।

ফিল্ডএটি কী করে
metaData.titleভিডিওর শিরোনাম। YouTube ১০০ অক্ষর পর্যন্ত অনুমতি দেয়, তাই বড় শিরোনাম কেটে ফেলা হয়। না দিলে text ব্যবহার হয়।
metaData.descriptionভিডিওর বিবরণ। না দিলে text ব্যবহার হয়।
metaData.visibilityprivate, unlisted বা public (privacyStatus একটি বিকল্প নাম হিসেবে কাজ করে)। এটি স্পষ্টভাবে সেট করুন: অবৈধ বা পরস্পরবিরোধী মান আপলোডের আগেই ব্যর্থ হয়।
firstCommentভিডিও লাইভ হওয়ার পর এর নিচে করা একটি কমেন্ট, সর্বোচ্চ ১০,০০০ অক্ষর।

YouTube মিডিয়া সীমা

Social media studio পাবলিশ করার আগে প্রতিটি ফাইল এই সীমাগুলোর সাথে মিলিয়ে দেখে। এগুলো আমাদের কনফিগার করা সীমা, YouTube-এর কোনো প্রতিশ্রুতি নয়: GET /v1/media/rules লাইভ টেবিলটি ফেরত দেয়, আর POST /v1/media/validate পোস্ট না করেই একটি ফাইল যাচাই করে।

পোস্টের ধরন VIDEO

ফরম্যাট
MP4, MOV
সর্বোচ্চ ফাইল সাইজ
350 MB
প্রতি পোস্টে ফাইল
1
সর্বোচ্চ সময়কাল
12 ঘণ্টা
ডাইমেনশন
≤ 7680 × 4320 px
ভিডিও কোডেক
H.264, H.265, VP9, AV1
ফ্রেম রেট
≤ 60 fps

কখন লাইভ হলো তা জানুন

পাবলিশিং অ্যাসিনক্রোনাস। post.published ও post.failed-এ সাবস্ক্রাইব করুন, অথবা postStatus POSTED বা FAILED না হওয়া পর্যন্ত GET /v1/posts/:id পোল করুন।

একবার সাবস্ক্রাইব করুন
curl -X POST https://api.so-me.studio/v1/webhooks/subscriptions \
  -H "X-API-Key: $SOME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/hooks/social",
    "categories": ["post"],
    "events": ["post.published", "post.failed"]
  }'

# The response includes the secret that signs every delivery.
প্রতিটি ডেলিভারি দেখতে যেমন
POST /hooks/social
X-Webhook-Event: post.published
X-Webhook-Signature: <hex HMAC-SHA256 of the raw body>

{
  "event": "post.published",
  "category": "post",
  "timestamp": "2026-11-03T15:00:07.412Z",
  "data": { "postId": "…", "platform": "YOUTUBE" }
}

প্রতিটি ডেলিভারি X-Webhook-Signature-এ HMAC-SHA256 দিয়ে সাইন করা থাকে। post.failed শেষ রিট্রাইয়ের পরে ট্রিগার হয়; কারণটি ঠিক করে POST /v1/posts/:id/retry কল করুন। প্রথম কমেন্টের ফলাফল আলাদাভাবে post.first_comment_posted বা post.first_comment_failed দিয়ে জানানো হয়।

AI এজেন্ট বানাচ্ছেন?

একই API কী ২০০+ টুলসহ একটি MCP সার্ভার এবং একটি CLI চালায়, তাই একটি এজেন্ট হাতে লেখা HTTP কল ছাড়াই YouTube-এ পোস্ট করতে পারে।

MCP সার্ভার

আপনার API কী দিয়ে সার্ভারটি Claude, Cursor বা যেকোনো MCP ক্লায়েন্টে যোগ করুন। OAuth-ও কাজ করে। YouTube-এর জন্য এজেন্ট REST রিকোয়েস্টের একই ফিল্ড দিয়ে এই টুলগুলো কল করে:

  • presign_media_upload
  • validate_post_media
  • create_post
mcp.json
{
  "mcpServers": {
    "so-me-studio": {
      "url": "https://api.so-me.studio/mcp",
      "headers": { "X-API-Key": "sk_live_…" }
    }
  }
}

CLI

npm i -g @social-media-scheduler/cli দিয়ে ইনস্টল করুন। এটি আপনার হয়ে লোকাল ফাইল আপলোড করে এবং JSON প্রিন্ট করে, তাই একটি স্ক্রিপ্ট বা CI জব একটি কমান্ডেই YouTube পোস্ট শিডিউল করতে পারে।

so-me
so-me posts:create --platform YOUTUBE --post-type VIDEO \
  -m ./build-time.mp4 \
  -c "কীভাবে আমরা বিল্ড টাইম অর্ধেকে নামিয়ে আনলাম" \
  -s 2026-11-08T16:00:00Z \
  --metadata '{"title":"কীভাবে আমরা বিল্ড টাইম অর্ধেকে নামিয়ে আনলাম","visibility":"public"}'

API, CLI ও MCP অ্যাক্সেস প্রতিটি পেইড প্ল্যানে অন্তর্ভুক্ত: Lite, Creator, Standard, Advanced ও Lifetime। প্ল্যান ও সীমা দেখুন

আরও পড়ুন

অন্যান্য প্ল্যাটফর্মের গাইড

হ্যাঁ। সর্বোচ্চ ৩ মিনিটের একটি ভার্টিকাল ভিডিও postType VIDEO হিসেবে আপলোড করুন। YouTube এটিকে Short হিসেবে শ্রেণিবদ্ধ করে; আলাদা কোনো Shorts সেটিং নেই।

হ্যাঁ। Social media studio প্রতিটি YouTube ভিডিও সর্বোচ্চ ৩৫০ MB পর্যন্ত গ্রহণ করে, যা YouTube-এর সীমার চেয়ে অনেক কম। লম্বা বা উচ্চ বিটরেটের ভিডিও আপলোডের আগে কম্প্রেস করুন।

হ্যাঁ। metaData.visibility private বা unlisted সেট করুন। মান অবশ্যই private, unlisted বা public হতে হবে।

না। আপনি Social media studio ড্যাশবোর্ডে YouTube-এ সাইন ইনের মাধ্যমে একবারই YouTube অ্যাকাউন্ট যুক্ত করেন। এর টোকেন এনক্রিপ্ট করে সংরক্ষণ করা হয় এবং আমাদের দিকে রিফ্রেশ করা হয়, আর আপনার কোড কেবল X-API-Key হেডারে আপনার Social media studio API কী পাঠায়।

না। পোস্ট কিউতে ঢোকামাত্রই এটি ফেরত আসে। পাবলিশিং এমন একটি ওয়ার্কারে চলে যা ব্যর্থ হলে আবার চেষ্টা করে, তাই post.published ও post.failed শুনুন, অথবা GET /v1/posts/:id পোল করুন।

REST API, CLI ও MCP সার্ভার প্রতিটি পেইড প্ল্যানে অন্তর্ভুক্ত: Lite, Creator, Standard, Advanced ও Lifetime। Lite, Creator, Standard ও Advanced ৭ দিনের ট্রায়াল দিয়ে শুরু হয় (কার্ড প্রয়োজন), আর Lifetime একবারের পেমেন্ট।

একবার শিডিউল করুন।
সবখানে পোস্ট করুন।

ট্যাব নিয়ে টানাহেঁচড়া বন্ধ করুন, একটিমাত্র ক্যালেন্ডার থেকেই ২০টি প্ল্যাটফর্মের জন্য লিখুন, সাজান ও প্রকাশ করুন।

YouTube আপলোড API: ভিডিও ও Shorts শিডিউল