LiveBroadcasts

API এখন আপনার লাইভ সম্প্রচার "বাচ্চাদের জন্য তৈরি" হিসেবে চিহ্নিত করার সুবিধা প্রদান করে এবং liveBroadcast রিসোর্সে এখন একটি প্রপার্টি রয়েছে যা সেই লাইভ সম্প্রচারের "বাচ্চাদের জন্য তৈরি" স্ট্যাটাস শনাক্ত করে। এছাড়াও, YouTube API পরিষেবার শর্তাবলী এবং ডেভেলপার নীতি ১০ জানুয়ারি, ২০২০-তে আপডেট করা হয়েছে। আরও তথ্যের জন্য, YouTube Live Streaming API পরিষেবা এবং YouTube API পরিষেবার শর্তাবলী-এর রিভিশন ইতিহাস দেখুন।

liveBroadcast রিসোর্স এমন একটি ইভেন্টকে দেখায় যা YouTube-এ লাইভ ভিডিও ব্যবহার করে স্ট্রিম করা হবে।

পদ্ধতি

API-তে liveBroadcasts রিসোর্সের জন্য নিম্নলিখিত পদ্ধতি কাজ করে:

তালিকা
API অনুরোধের প্যারামিটারের সাথে মেলে এমন YouTube ব্রডকাস্টের তালিকা দেখায়। এখনই এটি ব্যবহার করে দেখুন।
যোগ করুন
ব্রডকাস্ট তৈরি করে। এখনই এটি ব্যবহার করে দেখুন।
আপডেট
ব্রডকাস্ট আপডেট করে। যেমন, আপনি liveBroadcast রিসোর্সের contentDetails অবজেক্টে উল্লেখ করা ব্রডকাস্ট সেটিংস পরিবর্তন করতে পারেন। এখনই এটি ব্যবহার করে দেখুন।
মুছে ফেলুন
ব্রডকাস্ট মুছে দেয়। এখনই এটি ব্যবহার করে দেখুন।
বাইন্ড করুন
কোনও YouTube ব্রডকাস্টকে স্ট্রিমে বাইন্ড করে অথবা ব্রডকাস্ট ও স্ট্রিমের মধ্যে আগে থেকে থাকা বাইন্ডিং সরিয়ে দেয়। একটি ব্রডকাস্ট শুধুমাত্র একটি ভিডিও স্ট্রিমের সাথে বাউন্ড করা যেতে পারে, যদিও একটি ভিডিও স্ট্রিম একাধিক ব্রডকাস্টের সাথে বাউন্ড করা যেতে পারে। এখনই এটি ব্যবহার করে দেখুন।
ট্রানজিশন
YouTube লাইভ ব্রডকাস্টের স্ট্যাটাস পরিবর্তন করে এবং নতুন স্ট্যাটাসের সাথে সম্পর্কিত যেকোনও প্রসেস শুরু করে। যেমন, আপনি যখন কোনও ব্রডকাস্টের স্ট্যাটাস testing-এ পরিবর্তন করেন, তখন YouTube সেই ব্রডকাস্টের মনিটর স্ট্রিমে ভিডিও ট্রান্সমিট করা শুরু করে। এই মেথড কল করার আগে, আপনার ব্রডকাস্টের সাথে যুক্ত স্ট্রিমের status.streamStatus প্রপার্টির ভ্যালু active কিনা তা কনফার্ম করে নিন। এখনই এটি ব্যবহার করে দেখুন।
cuepoint
লাইভ ব্রডকাস্টে কিউপয়েন্ট যোগ করে। কিউপয়েন্ট বিজ্ঞাপন বিরতি ট্রিগার করতে পারে।

রিসোর্স রিপ্রেজেন্টেশন

নিম্নলিখিত JSON স্ট্রাকচার liveBroadcasts রিসোর্সের ফর্ম্যাট দেখায়:

{
  "kind": "youtube#liveBroadcast",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "categoryId": string,
    "thumbnails": {
      (key): {
        "url": string,
        "width": unsigned integer,
        "height": unsigned integer
      }
    },
    "scheduledStartTime": datetime,
    "scheduledEndTime": datetime,
    "actualStartTime": datetime,
    "actualEndTime": datetime,
    "isDefaultBroadcast": boolean,
    "liveChatId": string
  },
  "status": {
    "lifeCycleStatus": string,
    "privacyStatus": string,
    "recordingStatus": string,
    "madeForKids": string,
    "selfDeclaredMadeForKids": string,
  },
  "contentDetails": {
    "boundStreamId": string,
    "boundStreamLastUpdateTimeMs": datetime,
    "monitorStream": {
      "enableMonitorStream": boolean,
      "broadcastStreamDelayMs": unsigned integer,
      "embedHtml": string
    },
    "enableEmbed": boolean,
    "enableDvr": boolean,
    "recordFromStart": boolean,
    "enableClosedCaptions": boolean,
    "closedCaptionsType": string,
    "projection": string,
    "enableLowLatency": boolean,
    "latencyPreference": boolean,
    "enableAutoStart": boolean,
    "enableAutoStop": boolean,
    "availabilityConfig": {
      "globalConfig": {
        "excludedRegionCodes": [
          string
        ],
        "interval": {
          "startTime": datetime,
          "endTime": datetime
        }
      },
      "regionsConfig": {
        "regionIntervals": [
          {
            "regionCode": string,
            "interval": {
              "startTime": datetime,
              "endTime": datetime
            }
          }
        ]
      }
    }
  },
  "statistics": {
    "totalChatCount": unsigned long
  },
  "monetizationDetails": {
    "adsMonetizationStatus": string,
    "eligibleForAdsMonetization": boolean,
    "cuepointSchedule": {
      "enabled": boolean,
      "pauseAdsUntil": datetime,
      "ytOptimizedCuepointConfig": string,
      "creatorCuepointConfig": {
        "scheduleStrategy": string,
        "repeatIntervalSecs": unsigned integer
      }
    }
  }
}

প্রপার্টি

নিম্নলিখিত সারণীতে এই রিসোর্সে দেখানো প্রপার্টিগুলি সংজ্ঞায়িত করা হয়েছে:

প্রপার্টি
kind string
API রিসোর্সের ধরন শনাক্ত করে। ভ্যালু হবে youtube#liveBroadcast।
etag etag
এই রিসোর্সের Etag.
id string
YouTube ব্রডকাস্টকে অনন্যভাবে শনাক্ত করার জন্য যে আইডি অ্যাসাইন করে।
snippet object
snippet অবজেক্টে ইভেন্ট সম্পর্কিত প্রাথমিক বিবরণ থাকে, যার মধ্যে ইভেন্টের নাম, বিবরণ, শুরুর সময় ও শেষের সময় অন্তর্ভুক্ত।
snippet.publishedAt datetime
YouTube-এর লাইভ ব্রডকাস্ট শিডিউলে ব্রডকাস্ট যোগ করার তারিখ ও সময়। ভ্যালু ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়েছে।
snippet.channelId string
যে চ্যানেল ব্রডকাস্ট প্রকাশ করছে, সেটি অনন্যভাবে শনাক্ত করতে YouTube যে আইডি ব্যবহার করে।
snippet.title string
ব্রডকাস্টের নাম। মনে রাখবেন, ব্রডকাস্টে ঠিক একটি YouTube ভিডিও দেখানো হয়। আপনি ব্রডকাস্ট রিসোর্স পরিবর্তন করে অথবা সংশ্লিষ্ট ভিডিও রিসোর্সের title ফিল্ড সেট করে এই ফিল্ড সেট করতে পারবেন।
snippet.description string
ব্রডকাস্টের বিবরণ। title-এর মতো, আপনি ব্রডকাস্ট রিসোর্স পরিবর্তন করে বা সংশ্লিষ্ট ভিডিও রিসোর্সের description ফিল্ড সেট করে এই ফিল্ড সেট করতে পারবেন।
snippet.categoryId string
ব্রডকাস্টের সাথে যুক্ত YouTube ভিডিওর বিভাগ। আপনি videoCategories.list পদ্ধতি ব্যবহার করে বিভাগের তালিকা পেতে পারেন।
snippet.thumbnails object
ব্রডকাস্টের সাথে যুক্ত থাম্বনেল ছবির ম্যাপ। এই অবজেক্টের মধ্যে থাকা প্রতিটি নেস্টেড অবজেক্টের জন্য, কী হল থাম্বনেল ছবির নাম এবং ভ্যালু হল একটি অবজেক্ট যাতে থাম্বনেল সম্পর্কে অন্যান্য তথ্য থাকে।
snippet.thumbnails.(key) object
সঠিক কী ভ্যালু হল:
  • default – ডিফল্ট থাম্বনেল ছবি। ভিডিওর ডিফল্ট থাম্বনেল – অথবা প্লেলিস্ট আইটেম বা সার্চ ফলাফলের মতো ভিডিওর রেফারেন্স দেয় এমন রিসোর্স – ১২০ পিক্সেল চওড়া এবং ৯০ পিক্সেল লম্বা হয়। কোনও চ্যানেলের ডিফল্ট থাম্বনেল ৮৮ পিক্সেল চওড়া ও ৮৮ পিক্সেল লম্বা হয়।
  • medium – থাম্বনেল ছবির আরও বেশি রেজোলিউশন ভার্সন। কোনও ভিডিওর (বা ভিডিওর সাথে সম্পর্কিত রিসোর্স) ক্ষেত্রে, এই ছবি ৩২০ পিক্সেল চওড়া এবং ১৮০ পিক্সেল লম্বা হয়। কোনও চ্যানেলের জন্য এই ছবিটি ২৪০ পিক্সেল চওড়া ও ২৪০ পিক্সেল লম্বা হয়।
  • high – থাম্বনেল ছবির হাই রেজোলিউশন ভার্সন। কোনও ভিডিওর (বা ভিডিও রেফার করে এমন রিসোর্স) জন্য এই ছবি ৪৮০ পিক্সেল চওড়া ও ৩৬০ পিক্সেল লম্বা হয়। চ্যানেলের ক্ষেত্রে, এই ছবি ৮০০ পিক্সেল চওড়া ও ৮০০ পিক্সেল লম্বা হয়।
  • standard – high রেজোলিউশনের ছবির চেয়েও আরও বেশি রেজোলিউশনের থাম্বনেল ছবি। এই ছবি কিছু ভিডিও এবং ভিডিওর সাথে সম্পর্কিত অন্যান্য রিসোর্সের জন্য উপলভ্য, যেমন প্লেলিস্ট আইটেম বা সার্চ ফলাফল। এই ছবিটি ৬৪০ পিক্সেল চওড়া এবং ৪৮০ পিক্সেল লম্বা।
  • maxres – থাম্বনেল ছবির হাই রেজোলিউশন ভার্সন। এই ছবির সাইজ কিছু ভিডিও এবং ভিডিওর রেফারেন্স দেয় এমন অন্যান্য রিসোর্সের জন্য উপলভ্য, যেমন প্লেলিস্ট আইটেম বা সার্চ ফলাফল। এই ছবি ১২৮০ পিক্সেল চওড়া এবং ৭২০ পিক্সেল লম্বা।
  • fhd – থাম্বনেল ছবির সম্পূর্ণ হাই ডেফিনেশন (1080p) ভার্সন। এই ছবির সাইজ কিছু ভিডিওর জন্য উপলভ্য। এই ছবিটি ১৯২০ পিক্সেল চওড়া এবং ১০৮০ পিক্সেল লম্বা।
  • qhd – থাম্বনেল ছবির কোয়াড হাই ডেফিনেশন (1440p / 2K) ভার্সন। এই ছবির সাইজ কিছু ভিডিওর জন্য উপলভ্য। এই ছবি ২৫৬০ পিক্সেল চওড়া এবং ১৪৪০ পিক্সেল লম্বা।
  • uhd – থাম্বনেল ছবির আল্ট্রা-হাই রেজোলিউশন (4K) ভার্সন। এই ছবির সাইজ কিছু ভিডিওর জন্য উপলভ্য। এই ছবিটি ৩৮৪০ পিক্সেল চওড়া এবং ২১৬০ পিক্সেল লম্বা।
snippet.thumbnails.(key).url string
ছবির URL.
snippet.thumbnails.(key).width unsigned integer
ছবির প্রস্থ।
snippet.thumbnails.(key).height unsigned integer
ছবির উচ্চতা।
snippet.scheduledStartTime datetime
যে তারিখ ও সময়ে ব্রডকাস্ট শুরু করার জন্য শিডিউল করা হয়েছে। মানটি ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে নির্দিষ্ট করা আছে। Creator Studio-তে শুরু হওয়ার সময়সূচী নির্ধারণ না করেই ব্রডকাস্ট তৈরি করার সুবিধা আছে। এই ক্ষেত্রে, চ্যানেল মালিক স্ট্রিমিং শুরু করলেই ব্রডকাস্ট শুরু হয়ে যায়। এইসব ব্রডকাস্টের জন্য, datetime ভ্যালু Unix epoch time zero-এর সাথে সম্পর্কিত এবং API বা Creator Studio ব্যবহার করে এই ভ্যালু পরিবর্তন করা যাবে না।
snippet.scheduledEndTime datetime
ব্রডকাস্ট শেষ হওয়ার জন্য শিডিউল করা তারিখ ও সময়। ভ্যালু ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়েছে। liveBroadcast রিসোর্স এই প্রপার্টির জন্য কোনও ভ্যালু নির্দিষ্ট না করলে, ব্রডকাস্ট অনির্দিষ্টকালের জন্য চলতে থাকবে। একইভাবে, আপনি এই প্রপার্টির জন্য কোনও ভ্যালু নির্দিষ্ট না করলে, YouTube ধরে নেয় যে ব্রডকাস্ট অনির্দিষ্টকাল ধরে চলবে।
snippet.actualStartTime datetime
ব্রডকাস্টটি আসলে যে তারিখে ও সময়ে শুরু হয়েছে। ব্রডকাস্টের স্ট্যাটাস live হলে তবেই এই তথ্য উপলভ্য হয়। মানটি ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে নির্দিষ্ট করা আছে।
snippet.actualEndTime datetime
ব্রডকাস্ট আসলে যে তারিখ ও সময়ে শেষ হয়েছে। ব্রডকাস্টের স্ট্যাটাস complete হলে তবেই এই তথ্য উপলভ্য হয়। ভ্যালু ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়েছে।
snippet.isDefaultBroadcast boolean
১ সেপ্টেম্বর, ২০২০ তারিখে বা তার পরে এই প্রপার্টি বন্ধ করে দেওয়া হবে। সেই সময়, কোনও চ্যানেল লাইভ স্ট্রিমিংয়ের জন্য চালু করা হলে YouTube ডিফল্ট স্ট্রিম ও ডিফল্ট ব্রডকাস্ট তৈরি করা বন্ধ করে দেবে। আরও বিবরণের জন্য বন্ধ করে দেওয়া সংক্রান্ত ঘোষণা দেখুন।
এই ব্রডকাস্টটি ডিফল্ট ব্রডকাস্ট কিনা তা এই প্রপার্টি থেকে বোঝা যায়।

ডিফল্ট ব্রডকাস্ট কীভাবে কাজ করে

কোনও YouTube চ্যানেলে লাইভ স্ট্রিমিং চালু করা হলে, YouTube সেই চ্যানেলের জন্য একটি ডিফল্ট স্ট্রিম ও ডিফল্ট ব্রডকাস্ট তৈরি করে। চ্যানেলের মালিক কীভাবে YouTube-এ লাইভ ভিডিও পাঠান তা স্ট্রিম থেকে বোঝা যায় এবং দর্শকরা কীভাবে ডিফল্ট স্ট্রিম দেখতে পান তা ব্রডকাস্ট থেকে বোঝা যায়। চ্যানেলের মালিক liveStreams.list এবং liveBroadcasts.list পদ্ধতি ব্যবহার করে এইসব রিসোর্স শনাক্ত করতে পারবেন।

কোনও চ্যানেল তার ডিফল্ট স্ট্রিমে ভিডিও স্ট্রিম করা শুরু করলে, ভিডিওটি চ্যানেলের ডিফল্ট ব্রডকাস্টে দেখা যায়। স্ট্রিম শেষ হয়ে গেলে, YouTube সম্পূর্ণ ব্রডকাস্টকে YouTube ভিডিওতে কনভার্ট করে এবং ভিডিওটিকে একটি YouTube ভিডিও আইডি অ্যাসাইন করে।

কনভার্সন সম্পূর্ণ হয়ে গেলে, ভিডিওটি চ্যানেলের আপলোড করা ভিডিওর তালিকায় যোগ করা হয়। ব্রডকাস্ট শেষ হওয়ার সাথে সাথেই ভিডিওটি উপলভ্য হয় না এবং ব্রডকাস্টের প্রকৃত দৈর্ঘ্যের উপর নির্ভর করে ভিডিওটি উপলভ্য হতে কতটা দেরি হবে।
snippet.liveChatId string
ব্রডকাস্টের YouTube লাইভ চ্যাটের আইডি। এই আইডির সাহায্যে, আপনি চ্যাট মেসেজ ফিরিয়ে আনতে, যোগ করতে বা মুছে ফেলতে liveChatMessage রিসোর্সের পদ্ধতি ব্যবহার করতে পারবেন। এছাড়াও, আপনি চ্যাট মডারেটর যোগ করতে বা সরাতে, লাইভ চ্যাটে অংশগ্রহণ করা থেকে ব্যবহারকারীদের নিষিদ্ধ করতে বা আগে থেকে থাকা নিষেধাজ্ঞা সরাতে পারবেন।
status object
status অবজেক্টে ইভেন্টের স্ট্যাটাস সম্পর্কে তথ্য থাকে।
status.lifeCycleStatus string
ব্রডকাস্টের স্ট্যাটাস। API-এর liveBroadcasts.transition পদ্ধতি ব্যবহার করে স্ট্যাটাস আপডেট করা যেতে পারে।

এই প্রপার্টির জন্য সঠিক ভ্যালু হল:
  • complete – ব্রডকাস্ট শেষ হয়ে গেছে।
  • created – ব্রডকাস্টের সেটিংস অসম্পূর্ণ, তাই এটি live বা testing স্ট্যাটাসে ট্রানজিট করার জন্য প্রস্তুত নয়, তবে এটি তৈরি করা হয়েছে এবং অন্যথায় বৈধ।
  • live – ব্রডকাস্ট চালু আছে।
  • liveStarting – ব্রডকাস্টটি live স্ট্যাটাসে ট্রানজিশন করার প্রসেসে রয়েছে।
  • ready – ব্রডকাস্ট সেটিংস সম্পূর্ণ হয়েছে এবং ব্রডকাস্ট live বা testing স্ট্যাটাসে ট্রানজিশন করতে পারে।
  • revoked – অ্যাডমিনিস্ট্রেটর অ্যাকশনের মাধ্যমে এই ব্রডকাস্ট সরিয়ে দেওয়া হয়েছে।
  • testStarting – ব্রডকাস্টটি testing স্ট্যাটাসে ট্রানজিশন করার প্রসেসে রয়েছে।
  • testing – ব্রডকাস্টটি শুধুমাত্র পার্টনার দেখতে পাবেন।
status.privacyStatus string
ব্রডকাস্টের গোপনীয়তা স্ট্যাটাস। মনে রাখবেন, ব্রডকাস্ট ঠিক একটি YouTube ভিডিওকে দেখায়, তাই গোপনীয়তা সেটিংস ভিডিওর জন্য কাজ করা সেটিংসের মতোই হয়। এছাড়াও, আপনি ব্রডকাস্ট রিসোর্স পরিবর্তন করে অথবা সংশ্লিষ্ট ভিডিও রিসোর্সের privacyStatus ফিল্ড সেট করে এই ফিল্ড সেট করতে পারেন।

এই প্রপার্টির জন্য বৈধ ভ্যালু হল:
  • private
  • public
  • unlisted
status.recordingStatus string
ব্রডকাস্টের রেকর্ডিং স্ট্যাটাস।

এই প্রপার্টির জন্য সঠিক ভ্যালু হল:
  • notRecording
  • recorded
  • recording
status.madeForKids boolean
এই ভ্যালু থেকে বোঝা যায় যে ব্রডকাস্টটি বাচ্চাদের জন্য নির্ধারিত কিনা। এই প্রপার্টি ভ্যালু শুধু পড়া যাবে।
status.selfDeclaredMadeForKids boolean
liveBroadcasts.insert অনুরোধে, এই প্রপার্টি চ্যানেল মালিককে ব্রডকাস্টটি বাচ্চাদের জন্য তৈরি হিসেবে চিহ্নিত করার অনুমতি দেয়। liveBroadcasts.list অনুরোধে, চ্যানেলের মালিক API অনুরোধ অনুমোদন করলে তবেই প্রপার্টি ভ্যালু ফেরত দেওয়া হয়।
contentDetails object
contentDetails অবজেক্টে ইভেন্টের ভিডিও কন্টেন্ট সম্পর্কে তথ্য থাকে, যেমন কন্টেন্টটি কোনও এম্বেড করা ভিডিও প্লেয়ারে দেখানো যাবে কিনা বা এটি আর্কাইভ করা হবে কিনা এবং তাই ইভেন্ট শেষ হওয়ার পরে দেখার জন্য উপলভ্য হবে কিনা।
contentDetails.boundStreamId string
এই মানটি ব্রডকাস্টের সাথে live stream-কে অনন্যভাবে শনাক্ত করে।
contentDetails.boundStreamLastUpdateTimeMs datetime
boundStreamId-এর উল্লেখ করা লাইভ স্ট্রিম শেষবার আপডেট করার তারিখ ও সময়।
contentDetails.monitorStream object
monitorStream অবজেক্টে মনিটর স্ট্রিম সম্পর্কে তথ্য থাকে, যা ব্রডকাস্টার ব্রডকাস্ট স্ট্রিম সর্বজনীনভাবে দেখানোর আগে ইভেন্ট কন্টেন্ট পর্যালোচনা করতে ব্যবহার করতে পারেন।
contentDetails.monitorStream.enableMonitorStream boolean
এই ভ্যালু নির্ধারণ করে যে ব্রডকাস্টের জন্য মনিটর স্ট্রিম চালু করা আছে কিনা। মনিটর স্ট্রিম চালু করা থাকলে, YouTube একটি বিশেষ স্ট্রিমে ইভেন্ট কন্টেন্ট ব্রডকাস্ট করবে যা শুধুমাত্র ব্রডকাস্টারের ব্যবহারের জন্য তৈরি করা হয়েছে। ব্রডকাস্টার ইভেন্টের কন্টেন্ট পর্যালোচনা করতে এবং কিউপয়েন্ট যোগ করার জন্য সবচেয়ে উপযুক্ত সময় শনাক্ত করতে স্ট্রিম ব্যবহার করতে পারেন।

আপনি যদি ব্রডকাস্টের জন্য testing স্টেজ রাখতে চান বা ইভেন্টের জন্য ব্রডকাস্টে দেরি করতে চান, তাহলে আপনাকে এই ভ্যালু true-এ সেট করতে হবে। এছাড়াও, এই প্রপার্টির ভ্যালু true হলে, live স্টেটে ট্রানজিশন করার আগে আপনাকে অবশ্যই ব্রডকাস্টকে testing স্টেটে ট্রানজিশন করতে হবে। (প্রপার্টির ভ্যালু false হলে, আপনার ব্রডকাস্টে testing স্টেজ থাকতে পারবে না, তাই আপনি ব্রডকাস্ট সরাসরি live স্টেটে ট্রানজিশন করতে পারবেন।)

আপনি যখন update a broadcast, আপনার API অনুরোধে part প্যারামিটার ভ্যালুতে contentDetails অংশ অন্তর্ভুক্ত থাকলে এই প্রপার্টি সেট করতে হবে। তবে, আপনি insert a broadcast করলে, প্রপার্টিটি ঐচ্ছিক এবং এর ডিফল্ট ভ্যালু হল true।

গুরুত্বপূর্ণ: ব্রডকাস্ট testing বা live স্টেটে থাকলে এই প্রপার্টি আপডেট করা যাবে না।
contentDetails.monitorStream.broadcastStreamDelayMs unsigned integer
আপনি enableMonitorStream প্রপার্টি true-এ সেট করে থাকলে, এই প্রপার্টি লাইভ ব্রডকাস্টে দেরির দৈর্ঘ্য নির্ধারণ করে।

আপনি যখন update a broadcast, আপনার API অনুরোধে part প্যারামিটার ভ্যালুতে contentDetails অংশ অন্তর্ভুক্ত থাকলে এই প্রপার্টি সেট করতে হবে। তবে, আপনি insert a broadcast করলে, প্রপার্টিটি ঐচ্ছিক এবং এর ডিফল্ট ভ্যালু হল 0। এই ভ্যালু থেকে বোঝা যায় যে সম্প্রচারে কোনও দেরি নেই। মনে রাখবেন: ব্রডকাস্ট testing বা live স্ট্যাটাসে থাকলে এই প্রপার্টি আপডেট করা যাবে না।
contentDetails.monitorStream.embedHtml string
HTML কোড যা মনিটর স্ট্রিম চালানোর জন্য একটি প্লেয়ার এম্বেড করে।
contentDetails.enableEmbed boolean
এই সেটিং থেকে বোঝা যায় যে এম্বেড করা প্লেয়ারে ব্রডকাস্ট ভিডিও চালানো যাবে কিনা। আপনি যদি ভিডিওটি আর্কাইভ করার সিদ্ধান্ত নেন (enableArchive প্রপার্টি ব্যবহার করে), তাহলে এই সেটিংটি আর্কাইভ করা ভিডিওর ক্ষেত্রেও প্রযোজ্য হবে।

আপনি update a broadcast করলে, আপনার API অনুরোধে part প্যারামিটার ভ্যালুতে contentDetails অংশটি থাকলে, এই প্রপার্টি সেট করতে হবে। তবে, আপনি insert a broadcast করলে, প্রপার্টিটি ঐচ্ছিক এবং এর ডিফল্ট ভ্যালু হল true।

মনে রাখবেন: ব্রডকাস্ট testing বা live স্টেটে থাকলে এই প্রপার্টি আপডেট করা যাবে না।
contentDetails.enableDvr boolean
ভিডিও দেখার সময় দর্শকরা DVR কন্ট্রোল অ্যাক্সেস করতে পারবেন কিনা তা এই সেটিং নির্ধারণ করে। DVR কন্ট্রোল ব্যবহার করে দর্শক কন্টেন্ট পজ, রিওয়াইন্ড বা ফাস্ট ফরওয়ার্ড করার মাধ্যমে ভিডিও প্লেব্যাক অভিজ্ঞতা নিয়ন্ত্রণ করতে পারেন। এই প্রপার্টির ডিফল্ট ভ্যালু হল true।

আপনি যখন update a broadcast, তখন আপনার API অনুরোধে part প্যারামিটার ভ্যালুতে contentDetails অংশ অন্তর্ভুক্ত থাকলে এই প্রপার্টি সেট করতে হবে। তবে, আপনি insert a broadcast করলে, প্রপার্টিটি ঐচ্ছিক এবং এর ডিফল্ট ভ্যালু হল true।

গুরুত্বপূর্ণ: সম্প্রচার শেষ হওয়ার সাথে সাথেই প্লেব্যাক উপলভ্য করতে চাইলে, আপনাকে অবশ্যই ভ্যালু true হিসেবে সেট করতে হবে এবং enableArchive প্রপার্টির ভ্যালুও true হিসেবে সেট করতে হবে। এছাড়াও, ব্রডকাস্ট testing বা live অবস্থায় থাকলে এই প্রপার্টি আপডেট করা যাবে না।
contentDetails.recordFromStart boolean
ইভেন্টের স্ট্যাটাস লাইভে পরিবর্তিত হওয়ার পরে YouTube অটোমেটিক ব্রডকাস্ট রেকর্ড করা শুরু করবে কিনা তা এই সেটিং থেকে জানা যায়।

এই প্রপার্টির ডিফল্ট ভ্যালু হল true এবং সম্প্রচারকারী চ্যানেলকে লাইভ ব্রডকাস্টের জন্য রেকর্ডিং বন্ধ করার অনুমতি দেওয়া হলে তবেই এটি false-এ সেট করা যেতে পারে।

আপনার চ্যানেলের রেকর্ডিং বন্ধ করার অনুমতি না থাকলে এবং আপনি recordFromStart প্রপার্টি false হিসেবে সেট করা আছে এমন ব্রডকাস্ট যোগ করার চেষ্টা করলে, API একটি Forbidden সমস্যা দেখাবে। এছাড়াও, আপনার চ্যানেলের সেই অনুমতি না থাকলে এবং আপনি যদি recordFromStart প্রপার্টিকে false হিসেবে সেট করার জন্য কোনও ব্রডকাস্ট আপডেট করার চেষ্টা করেন, তাহলে API একটি modificationNotAllowed সমস্যা দেখাবে।

আপনি যখন update a broadcast, আপনার API অনুরোধে part প্যারামিটার ভ্যালুতে contentDetails অংশ অন্তর্ভুক্ত থাকলে এই প্রপার্টি সেট করতে হবে। তবে, আপনি insert a broadcast করলে, প্রপার্টিটি ঐচ্ছিক এবং এর ডিফল্ট মান হল true।

গুরুত্বপূর্ণ: ব্রডকাস্ট শেষ হওয়ার সাথে সাথেই প্লেব্যাক উপলভ্য করতে চাইলে, আপনাকে অবশ্যই enableDvr প্রপার্টির ভ্যালু true হিসেবে সেট করতে হবে। আপনি যদি এই প্রপার্টির ভ্যালু true হিসেবে সেট করেন কিন্তু enableDvr প্রপার্টি true হিসেবে সেট না করেন, তাহলে আর্কাইভ করা ভিডিও প্লেব্যাকের জন্য উপলভ্য হতে প্রায় একদিন দেরি হতে পারে।

মনে রাখবেন: ব্রডকাস্ট testing বা live স্ট্যাটাসে থাকলে এই প্রপার্টি আপডেট করা যাবে না।
contentDetails.enableClosedCaptions boolean
১৭ ডিসেম্বর, ২০১৫ থেকে এই প্রপার্টি বন্ধ করা হয়েছে। পরিবর্তে, contentDetails.closedCaptionsType প্রপার্টি ব্যবহার করুন।

এই সেটিং থেকে বোঝা যায় যে এই ব্রডকাস্টের জন্য HTTP POST ক্লোজড ক্যাপশন চালু আছে কিনা। যেসব API ক্লায়েন্ট আগে থেকেই এই প্রপার্টি ব্যবহার করছে:
  • প্রপার্টির ভ্যালু true-এ সেট করা মানে contentDetails.closedCaptionsType প্রপার্টিকে closedCaptionsHttpPost-এ সেট করা।
  • false-এ প্রপার্টির ভ্যালু সেট করা, closedCaptionsDisabled-এ contentDetails.closedCaptionsType প্রপার্টি সেট করার সমতুল্য।
contentDetails.closedCaptionsType string
মনে রাখবেন: এই প্রপার্টি contentDetails.enableClosedCaptions প্রপার্টিকে প্রতিস্থাপন করে।

আপনার ব্রডকাস্টের জন্য ক্লোজড ক্যাপশনিং চালু করা আছে কিনা এবং যদি থাকে, তাহলে আপনি কোন ধরনের ক্লোজড ক্যাপশন প্রদান করছেন তা এই প্রপার্টি থেকে বোঝা যায়:
  • closedCaptionsDisabled: লাইভ ব্রডকাস্টের জন্য ক্লোজড ক্যাপশন বন্ধ করা আছে।
  • closedCaptionsHttpPost: আপনি HTTP POST ব্যবহার করে আপনার লাইভ স্ট্রিমের সাথে যুক্ত ইনজেশন URL-এ ক্যাপশন পাঠাবেন।
  • closedCaptionsEmbedded: EIA-608 এবং/অথবা CEA-708 ফর্ম্যাট ব্যবহার করে ভিডিও স্ট্রিমে ক্যাপশন এনকোড করা হবে।
contentDetails.projection string
এই ব্রডকাস্টের প্রজেকশন ফর্ম্যাট। প্রপার্টির ডিফল্ট ভ্যালু হল rectangular।

এই প্রপার্টির সঠিক ভ্যালু হল:
  • 360
  • rectangular
contentDetails.enableLowLatency boolean
এই ব্রডকাস্ট কম লেটেন্সি স্ট্রিমিংয়ের জন্য এনকোড করা উচিত কিনা তা নির্দেশ করে। লো-লেটেন্সি স্ট্রিম ব্যবহার করলে, কোনও ব্রডকাস্ট দেখছেন এমন ব্যবহারকারীদের কাছে ভিডিওটি দেখাতে যে সময় লাগে তা কমিয়ে দিতে পারে, যদিও এটি স্ট্রিমের দর্শকদের জন্য রেজোলিউশনের উপরও প্রভাব ফেলতে পারে।
contentDetails.latencyPreference string
এই ব্রডকাস্টের জন্য কোন লেটেন্সি সেটিং ব্যবহার করতে হবে তা দেখায়। enableLowLatency-এর পরিবর্তে এই প্রপার্টি ব্যবহার করা হতে পারে, যা ultraLow-কে সাপোর্ট করে না।

একটি লো-লেটেন্সি স্ট্রিম ব্রডকাস্ট দেখা ব্যবহারকারীদের কাছে ভিডিও দৃশ্যমান হতে যে সময় লাগে তা কমাতে পারে, যদিও এটি প্লেব্যাকের মসৃণতাকেও প্রভাবিত করতে পারে।

একটি আল্ট্রা-লো-লেটেন্সি স্ট্রিম দর্শকদের কাছে ভিডিও দৃশ্যমান হতে যে সময় লাগে তা আরও কমিয়ে দেয়, যার ফলে দর্শকদের সাথে ইন্টার‍্যাক্ট করা সহজ হয়, কিন্তু আল্ট্রা-লো লেটেন্সি ক্লোজড ক্যাপশন বা ১০৮০p-এর বেশি রেজোলিউশন সাপোর্ট করে না।

এই প্রপার্টির জন্য সঠিক ভ্যালু হল:
  • normal
  • low
  • ultraLow
contentDetails.enableAutoStart boolean
আপনি বাউন্ড করা live stream-এ ভিডিও স্ট্রিমিং শুরু করলে এই ব্রডকাস্ট অটোমেটিক শুরু হওয়া উচিত কিনা তা নির্দেশ করে।
contentDetails.enableAutoStop boolean
চ্যানেলের মালিক বাউন্ড ভিডিও স্ট্রিমে ভিডিও স্ট্রিমিং বন্ধ করার পরে এই ব্রডকাস্ট এক মিনিট মতো অটোমেটিক বন্ধ হয়ে যাবে কিনা তা নির্দেশ করে।
contentDetails.availabilityConfig object
ব্রডকাস্টের উপলভ্যতা কনফিগারেশন। নির্দিষ্ট অঞ্চলে উপলভ্যতা সেট করতে বা নির্দিষ্ট অঞ্চল ব্লক করতে ব্যবহার করা হয়। এটি ঐচ্ছিক - সেট করা না থাকলে, এটি প্রয়োগ করা হয় না।
contentDetails.availabilityConfig.globalConfig object
ব্রডকাস্টের গ্লোবাল উপলভ্যতা সংক্রান্ত কনফিগারেশন। excludedRegionCodes তালিকায় উল্লেখ করা অঞ্চলগুলি ছাড়া ভিডিওটি সব অঞ্চলে উপলভ্য।
contentDetails.availabilityConfig.globalConfig.excludedRegionCodes list (string)
যেসব অঞ্চলে ভিডিও ব্লক করা হয়েছে তার তালিকা।
contentDetails.availabilityConfig.globalConfig.interval object
ডিফল্ট টাইম উইন্ডো যেখানে ভিডিওটি ব্লক করা নেই এমন সব অঞ্চলের জন্য উপলভ্য। মনে রাখবেন: এই প্রপার্টি আসন্ন বা অ্যাক্টিভ লাইভ ব্রডকাস্টের ক্ষেত্রে কাজ করে না।
contentDetails.availabilityConfig.globalConfig.interval.startTime datetime
ভিডিওটি উপলভ্য হওয়ার তারিখ ও সময়। অনির্দিষ্ট থাকলে, ভিডিওটি আগে থেকেই উপলভ্য। ভ্যালু ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়েছে।
contentDetails.availabilityConfig.globalConfig.interval.endTime datetime
যে তারিখ ও সময়ে ভিডিওটি আর উপলভ্য থাকবে না। নির্দিষ্ট না করা থাকলে, ভিডিওটি চিরকালের জন্য উপলভ্য থাকবে। শুরু ও শেষ হওয়ার নির্দিষ্ট সময় পাঁচ বছরের বেশি ভবিষ্যতের হতে পারবে না। ভ্যালু ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়েছে।
contentDetails.availabilityConfig.regionsConfig object
ব্রডকাস্টের আঞ্চলিক উপলভ্যতা কনফিগারেশন। ভিডিওটি শুধুমাত্র নির্দিষ্ট অঞ্চলে উপলভ্য।
contentDetails.availabilityConfig.regionsConfig.regionIntervals list (object)
ভিডিওটি উপলভ্য থাকা অঞ্চল ও সময়ের তালিকা। কোনও অঞ্চল একাধিকবার উল্লেখ করা হলে, সবকটি ইন্টারভ্যালের ইউনিয়ন ব্যবহার করা হয়।
contentDetails.availabilityConfig.regionsConfig.regionIntervals.regionCode string
ভিডিওটি যে অঞ্চলে উপলভ্য।
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval object
নির্দিষ্ট অঞ্চলে ভিডিওটি যে সময়সীমার মধ্যে উপলভ্য। মনে রাখবেন: এই প্রপার্টি আসন্ন বা অ্যাক্টিভ লাইভ ব্রডকাস্টের ক্ষেত্রে কাজ করে না।
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.startTime datetime
যে তারিখ ও সময়ে ভিডিওটি নির্দিষ্ট অঞ্চলে উপলভ্য হবে। নির্দিষ্ট না করা থাকলে, ভিডিওটি আগে থেকেই উপলভ্য। ভ্যালু ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়েছে।
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.endTime datetime
নির্দিষ্ট অঞ্চলে ভিডিওটি যে তারিখ ও সময় থেকে আর উপলভ্য থাকবে না। নির্দিষ্ট না করা থাকলে, ভিডিওটি চিরকালের জন্য উপলভ্য থাকবে। নির্দিষ্ট করা শুরুর ও শেষের সময় ভবিষ্যতের পাঁচ বছরের বেশি হতে পারবে না। ভ্যালু ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়েছে।
statistics object
statistics অবজেক্টে লাইভ ব্রডকাস্ট সম্পর্কিত পরিসংখ্যান থাকে। ব্রডকাস্ট চলাকালীন এইসব পরিসংখ্যানের ভ্যালু পরিবর্তন হতে পারে এবং ব্রডকাস্ট লাইভ থাকাকালীনই শুধু তা ফিরিয়ে আনা যাবে।
statistics.totalChatCount unsigned long
ব্রডকাস্টের সাথে যুক্ত লাইভ চ্যাট মেসেজের মোট সংখ্যা। ব্যবহারকারী ব্রডকাস্ট দেখতে পেলে, লাইভ চ্যাট ফিচার চালু থাকলে এবং অন্তত একটি মেসেজ থাকলে, প্রপার্টি ও তার ভ্যালু দেখানো হয়। মনে রাখবেন যে ব্রডকাস্ট শেষ হওয়ার পরে এই প্রপার্টি কোনও ভ্যালু নির্দিষ্ট করবে না। তাই, এই প্রপার্টি সম্পূর্ণ হওয়া লাইভ ব্রডকাস্টের আর্কাইভ করা ভিডিওর জন্য চ্যাট মেসেজের সংখ্যা শনাক্ত করবে না।
monetizationDetails object
monetizationDetails অবজেক্টে স্ট্রিমের মনিটাইজেশন সংক্রান্ত বিবরণ থাকে, যেমন, বিজ্ঞাপন অটোমেটর চালু আছে কিনা অথবা মিডরোল বিজ্ঞাপন যোগ করতে দেরি হচ্ছে কিনা।

monetizationDetails.adsMonetizationStatus string
এই প্রপার্টি থেকে বোঝা যায় যে ভিডিও ব্রডকাস্টে মিডরোল বিজ্ঞাপন চালু করা আছে কিনা। সঠিক ভ্যালু হল on ও off।
monetizationDetails.eligibleForAdsMonetization string
এই প্রপার্টি থেকে বোঝা যায় যে ভিডিও ব্রডকাস্ট মিডরোল বিজ্ঞাপনের জন্য উপযুক্ত কিনা। বিভিন্ন কারণে কোনও ব্রডকাস্ট অনুপযুক্ত হতে পারে, যেমন আগে থেকে থাকা কোনও দাবি বা মনিটাইজেশনের জন্য চ্যানেল সেট-আপ না করা।
monetizationDetails.cuepointSchedule object
cuepointSchedule অবজেক্ট ব্রডকাস্টের জন্য বিজ্ঞাপন অটোমেশন সেটিংস নির্দিষ্ট করে।
monetizationDetails.cuepointSchedule.enabled boolean
এই ভ্যালু নির্ধারণ করে যে ব্রডকাস্টে অটোমেটিক বিজ্ঞাপন যোগ করা হবে কিনা। ভ্যালু trueহলে, YouTube অটোমেটিক ব্রডকাস্টে মিডরোল বিজ্ঞাপন যোগ করবে। বিজ্ঞাপন দেখানোর শিডিউল monetizationDetails.cuepointSchedule অবজেক্টের অন্যান্য ফিল্ডের ভ্যালু দ্বারা নির্ধারিত হবে।
monetizationDetails.cuepointSchedule.pauseAdsUntil datetime
এই ভ্যালু নির্দিষ্ট করে যে YouTube-কে নির্দিষ্ট তারিখ ও সময়ের আগে ব্রডকাস্টে মিডরোল বিজ্ঞাপন যোগ করতে হবে না। মানটি ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়। বিজ্ঞাপন পজ করার জন্য ভ্যালু অবশ্যই ভবিষ্যতের তারিখ ও সময় হিসেবে সেট করতে হবে; বিজ্ঞাপন আনপজ করার জন্য ফিল্ড ভ্যালু অতীতের তারিখ ও সময় হিসেবে সেট করা যেতে পারে অথবা ফাঁকা রাখা যেতে পারে।
monetizationDetails.cuepointSchedule.ytOptimizedCuepointConfig string
এই ফিল্ডে অটোমেটিক যোগ করা বিজ্ঞাপন কিউপয়েন্টের জন্য বেছে নেওয়া বিকল্প নির্দিষ্ট করা হয়। ফিল্ডটি তিনটি মোডের মধ্যে একটি নির্দিষ্ট করতে পারে:
  • LOW: সম্ভাব্য উপার্জন কম হবে, দর্শকের অভিজ্ঞতা কম বিঘ্নিত হবে
  • MEDIUM: মাঝারি উপার্জনের সম্ভাবনা, দর্শকের অভিজ্ঞতাতে সামঞ্জস্যবিধান করা হয়েছে
  • HIGH: সম্ভাব্য উপার্জন অনেক বেশি হবে এবং দর্শকের কন্টেন্ট দেখার অভিজ্ঞতা আরও বেশি বিঘ্নিত হবে
monetizationDetails.cuepointSchedule.creatorCuepointConfig object
creatorCuepointConfig অবজেক্ট বিজ্ঞাপন অটোমেটর বিকল্প নির্দিষ্ট করে, যা ক্রিয়েটরকে মিডরোল কীভাবে দেখানো হবে তা বেছে নিতে দেয়।
monetizationDetails.cuepointSchedule.creatorCuepointConfig.scheduleStrategy string
এই ভ্যালু সেই স্ট্র্যাটেজি নির্দিষ্ট করে যা YouTube-কে কিউপয়েন্ট শিডিউল করার জন্য অনুসরণ করতে হবে। সঠিক মান হল:
  • CONCURRENT: সব দর্শকের জন্য একই সময়ে কিউপয়েন্ট শিডিউল করা হয়েছে
  • NON_CONCURRENT: আলাদা আলাদা দর্শকের জন্য আলাদা আলাদা সময়ে কিউপয়েন্ট শিডিউল করা হয়। এই পদ্ধতিতে, বিজ্ঞাপনগুলি আরও বেশি হারে দেখানো হয়, যার ফলে উপযুক্ত হলে দর্শকরা কিউপয়েন্ট পান।
monetizationDetails.cuepointSchedule.creatorCuepointConfig.repeatIntervalSecs unsigned integer
এই ভ্যালু ব্রডকাস্ট চলাকালীন অটোমেটিক বিজ্ঞাপন যোগ করার মধ্যেকার ব্যবধান, সেকেন্ডে, নির্দিষ্ট করে। যেমন, ভ্যালু 360 হলে, YouTube ছয় মিনিটের ব্যবধানে মিড-রোল বিজ্ঞাপন কিউপয়েন্ট যোগ করতে পারে।

মনে রাখবেন:
  • এই মানটি পরপর কিউপয়েন্ট শুরু হওয়ার মধ্যেকার সময় নির্দিষ্ট করে। অর্থাৎ, একটি কিউপয়েন্টের শেষ থেকে পরবর্তী কিউপয়েন্টের শুরু পর্যন্ত ব্যবধান পরিমাপ করা হয় না।
  • YouTube Studio সেটিংসের সাথে সামঞ্জস্যপূর্ণ হতে, এই ভ্যালু ৬ মিনিট থেকে ৩০ মিনিট পর্যন্ত ৬ মিনিটের গুণিতক। এই রেঞ্জের মধ্যে আপডেটের অনুরোধে যেকোনও পূর্ণসংখ্যা, যদিও বৈধ, ৬ মিনিটের নিকটতম মাল্টিপল হিসেবে রাউন্ড ডাউন করা হবে।