LiveBroadcasts

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

liveBroadcast রিসোর্স বলতে এমন একটি ইভেন্টকে বোঝায় যা ইউটিউবে লাইভ ভিডিও ব্যবহার করে স্ট্রিম করা হবে।

পদ্ধতি

এপিআইটি liveBroadcasts রিসোর্সগুলির জন্য নিম্নলিখিত পদ্ধতিগুলি সমর্থন করে:

list
এপিআই অনুরোধের প্যারামিটারগুলোর সাথে মেলে এমন ইউটিউব সম্প্রচারগুলোর একটি তালিকা ফেরত দেয়। এখনই চেষ্টা করে দেখুন
insert
একটি সম্প্রচার তৈরি করে। এখনই চেষ্টা করে দেখুন
update
একটি সম্প্রচার আপডেট করে। উদাহরণস্বরূপ, আপনি liveBroadcast রিসোর্সের contentDetails অবজেক্টে সংজ্ঞায়িত সম্প্রচার সেটিংস পরিবর্তন করতে পারেন। এখনই চেষ্টা করে দেখুন
delete
একটি সম্প্রচার মুছে দেয়। এখনই চেষ্টা করে দেখুন
bind
একটি ইউটিউব ব্রডকাস্টকে একটি স্ট্রিমের সাথে সংযুক্ত করে অথবা একটি ব্রডকাস্ট ও স্ট্রিমের মধ্যে বিদ্যমান সংযোগটি সরিয়ে দেয়। একটি ব্রডকাস্ট শুধুমাত্র একটি ভিডিও স্ট্রিমের সাথে সংযুক্ত হতে পারে, যদিও একটি ভিডিও স্ট্রিম একাধিক ব্রডকাস্টের সাথে সংযুক্ত হতে পারে। এখনই চেষ্টা করে দেখুন
transition
একটি ইউটিউব লাইভ ব্রডকাস্টের স্ট্যাটাস পরিবর্তন করে এবং নতুন স্ট্যাটাসের সাথে সম্পর্কিত যেকোনো প্রক্রিয়া শুরু করে। উদাহরণস্বরূপ, যখন আপনি একটি ব্রডকাস্টের স্ট্যাটাস ' testing -এ পরিবর্তন করেন, তখন ইউটিউব সেই ব্রডকাস্টের মনিটর স্ট্রিমে ভিডিও পাঠানো শুরু করে। এই মেথডটি কল করার আগে, আপনার ব্রডকাস্টের সাথে যুক্ত স্ট্রিমের status.streamStatus প্রপার্টির মান ' active ' আছে কিনা তা নিশ্চিত করা উচিত। এখনই চেষ্টা করে দেখুন
cuepoint
সরাসরি সম্প্রচারে একটি কিউপয়েন্ট যুক্ত করে। এই কিউপয়েন্টটি একটি বিজ্ঞাপন বিরতি চালু করতে পারে।

সম্পদ প্রতিনিধিত্ব

নিম্নলিখিত JSON কাঠামোটি একটি liveBroadcasts রিসোর্সের ফরম্যাট প্রদর্শন করে:

{
  "kind": "youtube#liveBroadcast",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": 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
এপিআই রিসোর্সের ধরন শনাক্ত করে। এর মান হবে youtube#liveBroadcast
etag etag
এই রিসোর্সের ই-ট্যাগ।
id string
যে আইডিটি ইউটিউব সম্প্রচারটিকে অনন্যভাবে শনাক্ত করার জন্য বরাদ্দ করে।
snippet object
snippet অবজেক্টটিতে ইভেন্টটির শিরোনাম, বিবরণ, শুরুর সময় এবং শেষের সময়সহ এর মৌলিক বিবরণ থাকে।
snippet. publishedAt datetime
যে তারিখ ও সময়ে সম্প্রচারটি ইউটিউবের লাইভ সম্প্রচার সূচিতে যুক্ত করা হয়েছিল। মানটি ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) ফরম্যাটে নির্দিষ্ট করা হয়।
snippet. channelId string
যে আইডিটি ইউটিউব সম্প্রচার প্রকাশকারী চ্যানেলটিকে স্বতন্ত্রভাবে শনাক্ত করতে ব্যবহার করে।
snippet. title string
সম্প্রচারের শিরোনাম। উল্লেখ্য যে, একটি সম্প্রচার ঠিক একটি ইউটিউব ভিডিওকে বোঝায়। আপনি সম্প্রচার রিসোর্সটি পরিবর্তন করে অথবা সংশ্লিষ্ট ভিডিও রিসোর্সের title ক্ষেত্রটি নির্ধারণ করে এই ক্ষেত্রটি সেট করতে পারেন।
snippet. description string
সম্প্রচারের বিবরণ। title মতোই, আপনি সম্প্রচার রিসোর্সটি পরিবর্তন করে অথবা সংশ্লিষ্ট ভিডিও রিসোর্সের description ফিল্ডটি সেট করে এই ফিল্ডটি নির্ধারণ করতে পারেন।
snippet. thumbnails object
সম্প্রচারের সাথে যুক্ত থাম্বনেইল ছবিগুলোর একটি ম্যাপ। এই অবজেক্টের প্রতিটি নেস্টেড অবজেক্টের ক্ষেত্রে, কী (key) হলো থাম্বনেইল ছবিটির নাম এবং ভ্যালু (value) হলো এমন একটি অবজেক্ট যা থাম্বনেইলটি সম্পর্কে অন্যান্য তথ্য ধারণ করে।
snippet.thumbnails. (key) object
বৈধ কী মানগুলি হলো:
  • default – এটি হলো ডিফল্ট থাম্বনেইল ইমেজ। একটি ভিডিওর – অথবা ভিডিও সম্পর্কিত কোনো রিসোর্সের, যেমন প্লেলিস্ট আইটেম বা সার্চ রেজাল্টের – ডিফল্ট থাম্বনেইল হলো ১২০ পিক্সেল চওড়া এবং ৯০ পিক্সেল লম্বা। একটি চ্যানেলের ডিফল্ট থাম্বনেইল হলো ৮৮ পিক্সেল চওড়া এবং ৮৮ পিক্সেল লম্বা।
  • medium – থাম্বনেইল ছবির একটি উচ্চতর রেজোলিউশনের সংস্করণ। একটি ভিডিওর (বা এমন কোনো রিসোর্সের যা একটি ভিডিওকে নির্দেশ করে) জন্য, এই ছবিটি ৩২০ পিক্সেল চওড়া এবং ১৮০ পিক্সেল লম্বা। একটি চ্যানেলের জন্য, এই ছবিটি ২৪০ পিক্সেল চওড়া এবং ২৪০ পিক্সেল লম্বা।
  • high – থাম্বনেইল ইমেজটির একটি উচ্চ রেজোলিউশনের সংস্করণ। একটি ভিডিওর (বা এমন কোনো রিসোর্সের যা একটি ভিডিওকে নির্দেশ করে) জন্য, এই ইমেজটির প্রস্থ ৪৮০ পিক্সেল এবং উচ্চতা ৩৬০ পিক্সেল। একটি চ্যানেলের জন্য, এই ইমেজটির প্রস্থ ৮০০ পিক্সেল এবং উচ্চতা ৮০০ পিক্সেল।
snippet.thumbnails.(key). url string
ছবিটির ইউআরএল।
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 মানটি ইউনিক্স ইপক টাইম জিরো-এর সাথে সঙ্গতিপূর্ণ হয়, এবং এই মানটি 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
এই প্রপার্টিটি ১ সেপ্টেম্বর, ২০২০ তারিখে বা তার পরে বাতিল করা হবে। সেই সময়ে, কোনো চ্যানেল লাইভ স্ট্রিমিংয়ের জন্য চালু করা হলে ইউটিউব ডিফল্ট স্ট্রিম এবং ডিফল্ট ব্রডকাস্ট তৈরি করা বন্ধ করে দেবে। আরও বিস্তারিত জানতে বাতিলকরণ ঘোষণাটি দেখুন।
এই প্রপার্টিটি নির্দেশ করে যে এই ব্রডকাস্টটি ডিফল্ট ব্রডকাস্ট কিনা।

ডিফল্ট সম্প্রচারগুলি কীভাবে কাজ করে

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

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

রূপান্তর সম্পন্ন হওয়ার পর, ভিডিওটি চ্যানেলের আপলোড করা ভিডিওর তালিকায় অন্তর্ভুক্ত হয়। সম্প্রচার শেষ হওয়ার সাথে সাথেই ভিডিওটি পাওয়া যায় না এবং এই বিলম্বের সময়কাল সম্প্রচারের প্রকৃত দৈর্ঘ্যের উপর নির্ভর করে।
snippet. liveChatId string
সম্প্রচারের ইউটিউব লাইভ চ্যাটের আইডি। এই আইডি ব্যবহার করে, আপনি চ্যাট বার্তা পুনরুদ্ধার, যোগ বা মুছে ফেলার জন্য 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
ব্রডকাস্টের গোপনীয়তার অবস্থা। উল্লেখ্য যে, ব্রডকাস্টটি ঠিক একটি ইউটিউব ভিডিওকে প্রতিনিধিত্ব করে, তাই এর গোপনীয়তা সেটিংস ভিডিওর জন্য সমর্থিত সেটিংসের মতোই। এছাড়াও, আপনি ব্রডকাস্ট রিসোর্সটি পরিবর্তন করে অথবা সংশ্লিষ্ট ভিডিও রিসোর্সের privacyStatus ফিল্ডটি সেট করার মাধ্যমে এই ফিল্ডটি নির্ধারণ করতে পারেন।

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

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

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

যখন আপনি update a broadcast , তখন আপনার এপিআই অনুরোধের 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
এইচটিএমএল কোড যা একটি প্লেয়ারকে এমবেড করে, যেটি মনিটর স্ট্রিমটি প্লে করে।
contentDetails. enableEmbed boolean
এই সেটিংটি নির্দেশ করে যে সম্প্রচারিত ভিডিওটি একটি এমবেডেড প্লেয়ারে চালানো যাবে কি না। আপনি যদি ভিডিওটি আর্কাইভ করার সিদ্ধান্ত নেন ( enableArchive প্রপার্টি ব্যবহার করে), তাহলে এই সেটিংটি আর্কাইভ করা ভিডিওটির ক্ষেত্রেও প্রযোজ্য হবে।

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

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

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

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

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

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

যখন আপনি update a broadcast , তখন আপনার এপিআই অনুরোধের 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 সেট করা, contentDetails.closedCaptionsType প্রপার্টিকে closedCaptionsDisabled এ সেট করার সমতুল্য।
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 ​​সমর্থন করে না।

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

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

এই প্রপার্টির জন্য বৈধ মানগুলি হলো:
  • 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
এই মানটি নির্দিষ্ট করে যে, নির্দিষ্ট তারিখ ও সময় পর্যন্ত ইউটিউব সম্প্রচারে মিডরোল বিজ্ঞাপন যোগ করবে না। মানটি ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) ফরম্যাটে নির্দিষ্ট করা হয়। বিজ্ঞাপন বিরতি দেওয়ার জন্য মানটি অবশ্যই ভবিষ্যতের কোনো তারিখ ও সময়ে সেট করতে হবে; বিজ্ঞাপন পুনরায় চালু করার জন্য ফিল্ডের মান অতীতের কোনো তারিখ ও সময়ে বা খালিও সেট করা যেতে পারে।
monetizationDetails.cuepointSchedule. ytOptimizedCuepointConfig string
এই ফিল্ডটি স্বয়ংক্রিয়ভাবে সন্নিবেশিত বিজ্ঞাপন কিউপয়েন্টের জন্য নির্বাচিত বিকল্পটি নির্দিষ্ট করে। ফিল্ডটি তিনটি মোডের মধ্যে যেকোনো একটি নির্দিষ্ট করতে পারে:
  • LOW : আয়ের সম্ভাবনা কম, দর্শকের জন্য বাধাহীন অভিজ্ঞতা
  • MEDIUM : মাঝারি আয়ের সম্ভাবনা, ভারসাম্যপূর্ণ দর্শক অভিজ্ঞতা
  • HIGH : উচ্চতর উপার্জনের সম্ভাবনা, দর্শকদের জন্য আরও বাধাহীন অভিজ্ঞতা
monetizationDetails.cuepointSchedule. creatorCuepointConfig object
creatorCuepointConfig অবজেক্টটি ads automator অপশনটি নির্দিষ্ট করে, যা নির্মাতাকে মিডরোলগুলো কীভাবে প্রদর্শিত হবে তা বেছে নেওয়ার সুযোগ দেয়।
monetizationDetails.cuepointSchedule.creatorCuepointConfig. scheduleStrategy string
এই মানটি সেই কৌশল নির্দিষ্ট করে যা ইউটিউব কিউপয়েন্ট শিডিউল করার জন্য অনুসরণ করবে। বৈধ মানগুলো হলো:
  • CONCURRENT : সকল দর্শকের জন্য কিউপয়েন্টগুলো একই সময়ে নির্ধারিত থাকে।
  • NON_CONCURRENT : বিভিন্ন দর্শকের জন্য কিউপয়েন্টগুলো ভিন্ন ভিন্ন সময়ে নির্ধারিত করা হয়। এই পদ্ধতিটি বিজ্ঞাপনগুলোকে বর্ধিত হারে দেখানোর সুযোগ করে দেয়, যার ফলে দর্শকরা যোগ্য হলে কিউপয়েন্ট অর্জন করতে পারেন।
monetizationDetails.cuepointSchedule.creatorCuepointConfig. repeatIntervalSecs unsigned integer
এই মানটি একটি সম্প্রচারের সময় স্বয়ংক্রিয় বিজ্ঞাপন সন্নিবেশের মধ্যবর্তী ব্যবধান সেকেন্ডে নির্দিষ্ট করে। উদাহরণস্বরূপ, যদি মানটি 360 হয়, তাহলে ইউটিউব প্রতি ছয় মিনিটের ব্যবধানে মিডরোল বিজ্ঞাপন প্রদর্শন করতে পারে।

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