liveStream রিসোর্সে YouTube-এ ট্রান্সমিট করা ভিডিও স্ট্রিম সম্পর্কে তথ্য থাকে। YouTube ব্যবহারকারীদের কাছে সম্প্রচার করা হবে এমন কন্টেন্ট স্ট্রিম প্রদান করে। তৈরি করা হয়ে গেলে, একটি liveStream রিসোর্স এক বা একাধিক liveBroadcast রিসোর্সের সাথে যুক্ত করা যেতে পারে।
পদ্ধতি
API, liveStreams রিসোর্সের জন্য নিম্নলিখিত পদ্ধতিগুলি সমর্থন করে:
- তালিকা
- API অনুরোধের প্যারামিটারের সাথে ম্যাচ করে এমন ভিডিও স্ট্রিমের তালিকা রিটার্ন করে। এখনই এটি ব্যবহার করে দেখুন।
- যোগ করুন
- ভিডিও স্ট্রিম তৈরি করে। স্ট্রিমের মাধ্যমে আপনি YouTube-এ ভিডিও পাঠাতে পারেন, যা পরে আপনার দর্শকদের কাছে ব্রডকাস্ট করা যেতে পারে। এখনই এটি ব্যবহার করে দেখুন।
- আপডেট
- ভিডিও স্ট্রিম আপডেট করে। আপনি যে প্রপার্টি পরিবর্তন করতে চান সেটি আপডেট করা না গেলে, আপনাকে সঠিক সেটিংস সহ নতুন স্ট্রিম তৈরি করতে হবে। এখনই এটি ব্যবহার করে দেখুন।
- মুছে ফেলুন
- ভিডিও স্ট্রিম মুছে দেয়। এখনই এটি ব্যবহার করে দেখুন।
রিসোর্স রিপ্রেজেন্টেশন
নিচে দেওয়া JSON স্ট্রাকচার থেকে liveStreams রিসোর্সের ফর্ম্যাট সম্পর্কে জানা যায়:
{
"kind": "youtube#liveStream",
"etag": etag,
"id": string,
"snippet": {
"publishedAt": datetime,
"channelId": string,
"title": string,
"description": string,
"isDefaultStream": boolean
},
"cdn": {
"ingestionType": string,
"ingestionInfo": {
"streamName": string,
"ingestionAddress": string,
"backupIngestionAddress": string
},
"resolution": string,
"frameRate": string
},
"status": {
"streamStatus": string,
"healthStatus": {
"status": string,
"lastUpdateTimeSeconds": unsigned long,
"configurationIssues": [
{
"type": string,
"severity": string,
"reason": string,
"description": string
}
]
}
},
"contentDetails": {
"closedCaptionsIngestionUrl": string,
"isReusable": boolean
}
}প্রপার্টি
নিম্নলিখিত সারণীতে এই রিসোর্সে দেখানো প্রপার্টিগুলি সংজ্ঞায়িত করা হয়েছে:
| প্রপার্টি | |
|---|---|
kind |
stringAPI রিসোর্সের ধরন শনাক্ত করে। ভ্যালু youtube#liveStream হবে। |
etag |
etagএই রিসোর্সের Etag. |
id |
stringস্ট্রিমকে অনন্যভাবে শনাক্ত করার জন্য YouTube যে আইডি অ্যাসাইন করে। |
snippet |
objectsnippet অবজেক্টে স্ট্রিম সম্পর্কে প্রাথমিক বিবরণ থাকে, যার মধ্যে চ্যানেল, শীর্ষক ও বিবরণ অন্তর্ভুক্ত। |
snippet.publishedAt |
datetimeস্ট্রিম তৈরির তারিখ ও সময়। ভ্যালু ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়েছে। |
snippet.channelId |
stringযে চ্যানেল স্ট্রিম ট্রান্সমিট করছে সেটিকে অনন্যভাবে শনাক্ত করতে YouTube যে আইডি ব্যবহার করে। |
snippet.title |
stringস্ট্রিমের শীর্ষক। মান অবশ্যই ১ থেকে ১২৮টি অক্ষরের মধ্যে হতে হবে। |
snippet.description |
stringস্ট্রিমের বিবরণ। মান ১০০০০ অক্ষরের বেশি হলে চলবে না। |
snippet.isDefaultStream |
boolean
১ সেপ্টেম্বর, ২০২০ বা তার পরে এই প্রপার্টি বন্ধ করে দেওয়া হবে। সেই সময়, কোনও চ্যানেল লাইভ স্ট্রিমিংয়ের জন্য চালু করা হলে, YouTube
ডিফল্ট স্ট্রিম ও ডিফল্ট ব্রডকাস্ট তৈরি করা বন্ধ করে দেবে। আরও বিবরণের জন্য বন্ধ করা
সংক্রান্ত ঘোষণা দেখুন।
এই প্রপার্টি থেকে বোঝা যায় যে এই স্ট্রিমটি চ্যানেলের ডিফল্ট স্ট্রিম কিনা।ডিফল্ট স্ট্রিম কীভাবে কাজ করে কোনও YouTube চ্যানেলে লাইভ স্ট্রিমিং চালু করা হলে, YouTube সেই চ্যানেলের জন্য একটি ডিফল্ট স্ট্রিম ও ডিফল্ট ব্রডকাস্ট তৈরি করে। চ্যানেলের মালিক কীভাবে YouTube-এ লাইভ ভিডিও পাঠান তা স্ট্রিম থেকে বোঝা যায় এবং দর্শকরা কীভাবে ডিফল্ট স্ট্রিম দেখতে পান তা ব্রডকাস্ট থেকে বোঝা যায়। চ্যানেলের মালিক liveStreams.list
এবং liveBroadcasts.list
পদ্ধতি ব্যবহার করে এইসব রিসোর্স শনাক্ত করতে পারবেন।চ্যানেলের ডিফল্ট স্ট্রিম অনির্দিষ্টকালের জন্য থাকে, এর সাথে কোনও শুরু বা শেষ হওয়ার সময় যুক্ত থাকে না এবং এটি মুছে ফেলা যায় না। চ্যানেলের মালিককে শুধু ভিডিও বিট পাঠানো শুরু করতে হবে এবং স্ট্রিম অটোমেটিক চলতে থাকবে। স্ট্রিম শেষ হলে, YouTube সম্পূর্ণ ব্রডকাস্টকে YouTube ভিডিওতে কনভার্ট করে এবং ভিডিওটিকে একটি YouTube ভিডিও আইডি অ্যাসাইন করে। কনভার্ট করা হয়ে গেলে, ভিডিওটি চ্যানেলের আপলোড করা ভিডিওর তালিকায় যোগ করা হয়। ব্রডকাস্ট শেষ হওয়ার সাথে সাথেই ভিডিওটি উপলভ্য হয় না এবং ব্রডকাস্টের প্রকৃত দৈর্ঘ্যের উপর নির্ভর করে ভিডিওটি উপলভ্য হতে কতটা দেরি হবে। |
cdn |
objectcdn অবজেক্টটি লাইভ স্ট্রিমের কন্টেন্ট ডেলিভারি নেটওয়ার্ক (CDN) সেটিংসকে সংজ্ঞায়িত করে। এইসব সেটিংস থেকে আপনি YouTube-এ কীভাবে কন্টেন্ট স্ট্রিম করেন সেই সম্পর্কে বিস্তারিত তথ্য পাবেন। |
cdn.format |
stringএই প্রপার্টি ১৮ এপ্রিল, ২০১৬ থেকে বন্ধ করে দেওয়া হয়েছে এবং ১৭ আগস্ট, ২০২০ থেকে আর কাজ করবে না। সেই তারিখের পরেও যেসব অনুরোধে এই প্রপার্টি ব্যবহার করা হবে, সেগুলি কাজ করবে না। পরিবর্তে, ফ্রেম রেট এবং রেজোলিউশন আলাদাভাবে উল্লেখ করতে cdn.frameRate এবং
cdn.resolution প্রপার্টি ব্যবহার করুন।
|
cdn.ingestionType |
stringভিডিও স্ট্রিম ট্রান্সমিট করার জন্য ব্যবহৃত পদ্ধতি বা প্রোটোকল। এই প্রপার্টির জন্য সঠিক ভ্যালু হল:
|
cdn.ingestionInfo |
objectingestionInfo অবজেক্টে YouTube-এর প্রদান করা তথ্য থাকে যা YouTube-এ আপনার স্ট্রিম ট্রান্সমিট করার জন্য প্রয়োজন। |
cdn.ingestionInfo.streamName |
stringYouTube ভিডিও স্ট্রিমকে যে স্ট্রিমের নাম অ্যাসাইন করে। |
cdn.ingestionInfo.ingestionAddress |
stringআপনি RTMP, DASH বা HLS ব্যবহার করলে, YouTube-এ ভিডিও স্ট্রিম করার জন্য আপনাকে প্রাথমিক ইনজেশন URL ব্যবহার করতে হবে। আপনাকে এই URL-এ ভিডিও স্ট্রিম করতে হবে। আপনার ভিডিও স্ট্রিম এনকোড করার জন্য আপনি কোন অ্যাপ্লিকেশন বা টুল ব্যবহার করেন তার উপর নির্ভর করে, আপনাকে স্ট্রিম URL এবং স্ট্রিমের নাম আলাদাভাবে লিখতে হতে পারে অথবা আপনাকে নিম্নলিখিত ফর্ম্যাটে সেগুলি একসাথে লিখতে হতে পারে: STREAM_URL/STREAM_NAME |
cdn.ingestionInfo.backupIngestionAddress |
stringRTMP, DASH বা HLS ব্যবহার করলে, YouTube-এ ভিডিও স্ট্রিম করার জন্য আপনাকে ব্যাক-আপ ইনজেশন URL ব্যবহার করতে হবে। আপনি ingestionAddress-এ যে কন্টেন্ট পাঠাচ্ছেন সেটি একই সাথে এই URL-এ স্ট্রিম করার বিকল্প আপনার কাছে আছে।
|
cdn.ingestionInfo.rtmpsIngestionAddress |
stringRTMPS ব্যবহার করলে, YouTube-এ ভিডিও স্ট্রিম করার জন্য আপনাকে যে প্রাথমিক ইনজেশন URL ব্যবহার করতে হবে। আপনাকে এই URL-এ ভিডিও স্ট্রিম করতে হবে। আপনার ভিডিও স্ট্রিম এনকোড করার জন্য আপনি কোন অ্যাপ্লিকেশন বা টুল ব্যবহার করেন তার উপর নির্ভর করে, আপনাকে স্ট্রিম URL এবং স্ট্রিমের নাম আলাদাভাবে লিখতে হতে পারে অথবা আপনাকে নিম্নলিখিত ফর্ম্যাটে সেগুলি একসাথে লিখতে হতে পারে: STREAM_URL/STREAM_NAME |
cdn.ingestionInfo.rtmpsBackupIngestionAddress |
stringRTMPS ব্যবহার করলে, YouTube-এ ভিডিও স্ট্রিম করার জন্য আপনাকে ব্যাক-আপ ইনজেশন URL ব্যবহার করতে হবে। |
cdn.resolution |
stringইনবাউন্ড ভিডিও ডেটার রেজোলিউশন। এই প্রপার্টির সঠিক ভ্যালু হল:
|
cdn.frameRate |
stringইনবাউন্ড ভিডিও ডেটার ফ্রেম রেট। এই প্রপার্টির জন্য সঠিক ভ্যালু হল:
|
status |
objectstatus অবজেক্টে লাইভ স্ট্রিমের স্ট্যাটাস সংক্রান্ত তথ্য থাকে। |
status.streamStatus |
stringস্ট্রিমের স্ট্যাটাস। এই প্রপার্টির জন্য সঠিক ভ্যালু হল:
|
status.healthStatus |
objectএই অবজেক্টে লাইভ স্ট্রিমের স্বাস্থ্য সংক্রান্ত স্ট্যাটাস সম্পর্কে তথ্য থাকে, যা স্ট্রিমিং সংক্রান্ত সমস্যা শনাক্ত, ডায়াগনসিস ও সমাধান করতে ব্যবহার করা যেতে পারে। |
status.healthStatus.status |
stringএই স্ট্রিমের স্ট্যাটাস কোড। এই প্রপার্টির জন্য সঠিক মান হল:
|
status.healthStatus.lastUpdateTimeSeconds |
unsigned longস্ট্রিমের হেলথ স্ট্যাটাস শেষবার আপডেট করার তারিখ। মানটি সেকেন্ডে UNIX টাইমস্ট্যাম্প দেখায়। |
status.healthStatus.configurationIssues[] |
listএই অবজেক্টে স্ট্রিমকে প্রভাবিত করা কনফিগারেশন সংক্রান্ত সমস্যার তালিকা রয়েছে। |
status.healthStatus.configurationIssues[].type |
stringস্ট্রিমে কী ধরনের সমস্যা হয়েছে তা শনাক্ত করে। |
status.healthStatus.configurationIssues[].severity |
stringস্ট্রিমে সমস্যাটি কতটা গুরুতর তা নির্দেশ করে। এই প্রপার্টির জন্য সঠিক ভ্যালু হল:
|
status.healthStatus.configurationIssues[].reason |
stringসমস্যার সংক্ষিপ্ত বিবরণ। লাইভ স্ট্রিম রিসোর্সের জন্য কনফিগারেশন সংক্রান্ত সমস্যা ডকুমেন্ট থেকে প্রতিটি কনফিগারেশন সংক্রান্ত সমস্যার কারণ জানা যায়। |
status.healthStatus.configurationIssues[].description |
stringসমস্যার বিস্তারিত বিবরণ। সম্ভব হলে, বিবরণে কীভাবে সমস্যা সমাধান করতে হয় সেই সম্পর্কে তথ্য দেওয়া থাকে। LiveStream রিসোর্সের জন্য কনফিগারেশন সংক্রান্ত সমস্যা ডকুমেন্টে কনফিগারেশন সংক্রান্ত সমস্যার সব ধরন ও তার সাথে যুক্ত বিবরণ তালিকাভুক্ত করা আছে। |
contentDetails |
objectcontent_details অবজেক্টে স্ট্রিম সম্পর্কে তথ্য থাকে, যার মধ্যে ক্লোজড ক্যাপশন ইনজেশন URL অন্তর্ভুক্ত। |
contentDetails.closedCaptionsIngestionUrl |
stringইনজেশন URL যেখানে এই স্ট্রিমের ক্লোজড ক্যাপশন পাঠানো হয়। |
contentDetails.isReusable |
booleanস্ট্রিমিং আবার ব্যবহার করা যাবে কিনা তা নির্দেশ করে, এর অর্থ হল এটি একাধিক ব্রডকাস্টের সাথে যুক্ত করা যেতে পারে। ব্রডকাস্টাররা সাধারণত একই স্ট্রিম বিভিন্ন ব্রডকাস্টের জন্য ব্যবহার করেন, যদি সেই ব্রডকাস্টগুলি বিভিন্ন সময়ে হয়। আপনি এই ভ্যালু false হিসেবে সেট করলে, স্ট্রিমটি আর ব্যবহারযোগ্য থাকবে না, অর্থাৎ এটি শুধুমাত্র একটি ব্রডকাস্টের সাথেই যুক্ত করা যাবে। পুনর্ব্যবহারযোগ্য নয় এমন স্ট্রিম, পুনর্ব্যবহারযোগ্য স্ট্রিমের থেকে নিম্নলিখিত উপায়ে আলাদা হয়:
|