LiveStreams

یک منبع liveStream حاوی اطلاعاتی در مورد جریان ویدیویی است که شما در حال انتقال به YouTube هستید. این جریان محتوایی را فراهم می کند که برای کاربران YouTube پخش می شود. پس از ایجاد، یک منبع liveStream می تواند به یک یا چند منبع liveBroadcast متصل شود.

مواد و روش ها

API از روش های زیر برای منابع liveStreams پشتیبانی می کند:

list
فهرستی از جریان‌های ویدیویی را برمی‌گرداند که با پارامترهای درخواست API مطابقت دارند. اکنون آن را امتحان کنید .
insert
یک جریان ویدیویی ایجاد می کند. این استریم به شما امکان می‌دهد ویدیوی خود را به YouTube ارسال کنید، که سپس می‌تواند ویدیو را برای مخاطبان شما پخش کند. اکنون آن را امتحان کنید .
update
یک جریان ویدیویی را به روز می کند. اگر ویژگی هایی که می خواهید تغییر دهید نمی توانند به روز شوند، باید یک جریان جدید با تنظیمات مناسب ایجاد کنید. اکنون آن را امتحان کنید .
delete
یک جریان ویدیویی را حذف می کند. اکنون آن را امتحان کنید .

نمایندگی منابع

ساختار 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 string
نوع منبع API را مشخص می کند. مقدار youtube#liveStream خواهد بود.
etag etag
Etag این منبع
id string
شناسه ای که YouTube برای شناسایی منحصر به فرد جریان اختصاص می دهد.
snippet object
شی snippet حاوی جزئیات اولیه در مورد جریان، از جمله کانال، عنوان و توضیحات آن است.
snippet. publishedAt datetime
تاریخ و ساعتی که جریان ایجاد شد. مقدار در قالب ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) مشخص شده است.
snippet. channelId string
شناسه‌ای که YouTube برای شناسایی منحصربه‌فرد کانالی که جریان را ارسال می‌کند، استفاده می‌کند.
snippet. title string
عنوان جریان مقدار باید بین 1 تا 128 کاراکتر باشد.
snippet. description string
توضیحات جریان مقدار نمی تواند بیشتر از 10000 کاراکتر باشد.
snippet. isDefaultStream boolean
این ویژگی در تاریخ 1 سپتامبر 2020 یا پس از آن منسوخ خواهد شد. در آن زمان، وقتی کانالی برای پخش زنده فعال شود، YouTube ایجاد یک جریان پیش‌فرض و پخش پیش‌فرض را متوقف می‌کند. لطفاً برای جزئیات بیشتر به اطلاعیه منسوخ شدن مراجعه کنید.
این ویژگی نشان می دهد که آیا این جریان، جریان پیش فرض کانال است یا خیر.

نحوه کار جریان های پیش فرض

هنگامی که یک کانال YouTube برای پخش زنده فعال است، YouTube یک جریان پیش فرض و یک پخش پیش فرض برای کانال ایجاد می کند. این استریم نحوه ارسال ویدیوی زنده توسط مالک کانال به یوتیوب را مشخص می‌کند و پخش به این صورت است که بینندگان چگونه می‌توانند جریان پیش‌فرض را ببینند. مالک کانال می‌تواند از روش‌های liveStreams.list و liveBroadcasts.list برای شناسایی این منابع استفاده کند.

جریان پیش‌فرض یک کانال به‌طور نامحدود وجود دارد، زمان شروع یا پایان مرتبط با آن ندارد و نمی‌توان آن را حذف کرد. مالک کانال فقط باید شروع به ارسال بیت های ویدیو کند و جریان به طور خودکار ادامه می یابد.

هنگامی که یک جریان به پایان می رسد، YouTube پخش کامل شده را به یک ویدیوی YouTube تبدیل می کند و به ویدیو یک شناسه ویدیوی YouTube اختصاص می دهد. پس از تکمیل تبدیل، ویدیو در لیست ویدیوهای آپلود شده کانال قرار می گیرد. این ویدئو بلافاصله پس از پایان پخش در دسترس نیست و مدت تاخیر مربوط به طول واقعی پخش است.
cdn object
شی cdn تنظیمات شبکه تحویل محتوای پخش زنده (CDN) را تعریف می کند. این تنظیمات جزئیاتی را در مورد نحوه پخش محتوای خود در YouTube ارائه می دهد.
cdn. format string
این دارایی از 18 آوریل 2016 منسوخ شده است و از 17 آگوست 2020 دیگر پشتیبانی نمی‌شود. درخواست‌هایی که تا آن تاریخ همچنان از این دارایی استفاده می‌کنند ناموفق خواهند بود.

در عوض، از ویژگی های cdn.frameRate و cdn.resolution برای تعیین نرخ فریم و وضوح به طور جداگانه استفاده کنید.
cdn. ingestionType string
روش یا پروتکل مورد استفاده برای انتقال جریان ویدئو.

مقادیر معتبر برای این ویژگی عبارتند از:
  • dash
  • hls
  • rtmp (که شامل RTMPS است)
cdn. ingestionInfo object
شی ingestionInfo حاوی اطلاعاتی است که YouTube ارائه می دهد و برای انتقال جریان خود به YouTube نیاز دارید.
cdn.ingestionInfo. streamName string
نام جریانی که YouTube به جریان ویدیو اختصاص می دهد.
cdn.ingestionInfo. ingestionAddress string
اگر از RTMP، DASH، یا HLS استفاده می‌کنید، نشانی اینترنتی انتقال اصلی که باید برای پخش جریانی ویدیو در YouTube استفاده کنید. شما باید ویدیو را به این URL پخش کنید.

بسته به اینکه از کدام برنامه یا ابزاری برای رمزگذاری جریان ویدیوی خود استفاده می کنید، ممکن است لازم باشد URL و نام جریان را به طور جداگانه وارد کنید یا ممکن است لازم باشد آنها را در قالب زیر به هم متصل کنید:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo. backupIngestionAddress string
نشانی اینترنتی انتقال پشتیبان که در صورت استفاده از RTMP، DASH یا HLS باید برای پخش جریانی ویدیو در YouTube استفاده کنید. شما این امکان را دارید که محتوایی را که به ingestionAddress ارسال می کنید به این URL به طور همزمان پخش کنید.
cdn.ingestionInfo. rtmpsIngestionAddress string
نشانی اینترنتی انتقال اصلی که در صورت استفاده از RTMPS باید برای پخش جریانی ویدیو در YouTube استفاده کنید. شما باید ویدیو را به این URL پخش کنید.

بسته به اینکه از کدام برنامه یا ابزاری برای رمزگذاری جریان ویدیوی خود استفاده می کنید، ممکن است لازم باشد URL و نام جریان را به طور جداگانه وارد کنید یا ممکن است لازم باشد آنها را در قالب زیر به هم متصل کنید:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo. rtmpsBackupIngestionAddress string
نشانی اینترنتی انتقال پشتیبان که در صورت استفاده از RTMPS باید برای پخش جریانی ویدیو در YouTube استفاده کنید.
cdn. resolution string
وضوح داده های ویدئویی ورودی.

مقادیر معتبر برای این ویژگی عبارتند از:
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable : از این تنظیم برای نشان دادن اینکه YouTube باید به طور خودکار وضوح ویدیوی پخش شده شما را تشخیص دهد استفاده کنید. همچنین باید cdn.frameRate را روی variable تنظیم کنید.
    برای تنظیمات رمزگذار توصیه شده به مرکز راهنمایی YouTube مراجعه کنید.
cdn. frameRate string
نرخ فریم داده های ویدئویی ورودی.

مقادیر معتبر برای این ویژگی عبارتند از:
  • 30fps
  • 60fps
  • variable : از این تنظیم برای نشان دادن اینکه YouTube باید به طور خودکار نرخ فریم ویدیوی پخش شده شما را تشخیص دهد، استفاده کنید. همچنین باید cdn.resolution روی variable تنظیم کنید.
    برای تنظیمات رمزگذار توصیه شده به مرکز راهنمایی YouTube مراجعه کنید.
status object
شی status حاوی اطلاعاتی درباره وضعیت پخش زنده است.
status. streamStatus string
وضعیت جریان

مقادیر معتبر برای این ویژگی عبارتند از:
  • active - جریان در حالت فعال است، به این معنی که کاربر داده ها را از طریق جریان دریافت می کند.
  • created – جریان ایجاد شده است اما تنظیمات CDN معتبری ندارد.
  • error - یک شرط خطا در جریان وجود دارد.
  • inactive - جریان در حالت غیرفعال است که به این معنی است که کاربر داده ها را از طریق جریان دریافت نمی کند.
  • ready – جریان دارای تنظیمات CDN معتبر است.
status. healthStatus object
این شی حاوی اطلاعاتی درباره وضعیت سلامت پخش زنده است که می تواند برای شناسایی، تشخیص و حل مشکلات پخش استفاده شود.
status.healthStatus. status string
کد وضعیت این جریان.

مقادیر معتبر برای این ویژگی عبارتند از:
  • good - هیچ مشکلی در پیکربندی وجود ندارد که شدت آن warning یا بدتر باشد.
  • ok - هیچ مشکلی در پیکربندی وجود ندارد که شدت آن error باشد.
  • bad - جریان دارای مشکلاتی است که شدت آنها error است.
  • noData – سرورهای پخش زنده YouTube هیچ اطلاعاتی در مورد وضعیت سلامت جریان ندارند.
status.healthStatus. lastUpdateTimeSeconds unsigned long
آخرین باری که وضعیت سلامت جریان به‌روزرسانی شد. این مقدار یک مهر زمانی یونیکس را در چند ثانیه منعکس می کند.
status.healthStatus. configurationIssues[] list
این شی حاوی لیستی از مشکلات پیکربندی است که بر جریان تأثیر می گذارد.
status.healthStatus.configurationIssues[]. type string
نوع خطای مؤثر بر جریان را شناسایی می کند.
status.healthStatus.configurationIssues[]. severity string
نشان می دهد که این مشکل چقدر برای جریان است.

مقادیر معتبر برای این ویژگی عبارتند از:
  • info - این ویدیو برای بینندگان پخش می شود بدون اینکه تأثیر منفی روی عملکرد داشته باشد.
  • warning - ویدیو برای بینندگان پخش می شود، اما عملکرد مطلوب نیست.
  • error - ویدیو را نمی توان برای بینندگان پخش کرد.
status.healthStatus.configurationIssues[]. reason string
شرح مختصری از موضوع. سند Configuration Issues for LiveStream Resources دلیل مرتبط با هر نوع مشکل پیکربندی را مشخص می کند.
status.healthStatus.configurationIssues[]. description string
شرح مفصلی از موضوع. در صورت امکان، توضیحات اطلاعاتی در مورد نحوه حل مشکل ارائه می دهد. سند Configuration Issues for LiveStream Resources همه انواع مشکلات پیکربندی و توضیحات مربوط به آنها را فهرست می کند.
contentDetails object
شیء content_details حاوی اطلاعاتی درباره جریان است، از جمله نشانی اینترنتی دریافت زیرنویس‌های بسته.
contentDetails. closedCaptionsIngestionUrl string
نشانی اینترنتی انتقال که در آن شرح‌های بسته این جریان ارسال می‌شود.
contentDetails. isReusable boolean
نشان می دهد که آیا جریان قابل استفاده مجدد است یا خیر، به این معنی که می توان آن را به چندین پخش متصل کرد. اگر پخش در زمان‌های مختلف اتفاق بیفتد، معمولاً پخش‌کننده‌ها از یک جریان برای بسیاری از پخش‌های مختلف استفاده مجدد می‌کنند.

اگر این مقدار را روی false تنظیم کنید، جریان قابل استفاده مجدد نخواهد بود، به این معنی که فقط می‌توان آن را به یک پخش متصل کرد. جریان‌های غیرقابل استفاده مجدد به روش‌های زیر با جریان‌های قابل استفاده مجدد متفاوت هستند:
  • یک جریان غیرقابل استفاده مجدد فقط می تواند به یک پخش متصل شود.
  • یک جریان غیرقابل استفاده مجدد ممکن است با یک فرآیند خودکار پس از پایان پخش حذف شود.
  • اگر متد را فراخوانی کنید و پارامتر mine را روی true تنظیم کنید، روش liveStreams.list جریان‌های غیرقابل استفاده مجدد را فهرست نمی‌کند. تنها راه استفاده از آن روش برای بازیابی منبع برای یک جریان غیرقابل استفاده مجدد، استفاده از پارامتر id برای شناسایی جریان است.