如何检查YouTube视频是否可播放?

时间:2015-11-05 05:59:30

标签: c# .net winforms youtube youtube-api

通过这种方式,我可以判断视频是否仍在处理或完成整个过程。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Youtube_Player
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            try
            {
                axShockwaveFlash1.Movie = "https://www.youtube.com/v/mymovieid0&autoplay=1";
            }
            catch(Exception error)
            {
                string er = error.ToString();
            }
        }
    }
}

当视频仍在进行中时,我会在youtube.com网站上看到一条消息,表示它仍在处理该视频:

Processing

但是在我运行它的程序中,我只是看到这个圈子正在试图播放视频但是因为它正在进行中它只会继续尝试:

Processing in my program

我尝试在我的程序中尝试的try catch不像我想的那样工作。 我需要以某种方式检查视频是否可播放,如果没有,那么它仍在处理,如果是,则过程结束。

我正在尝试这个播放只有在我的其他项目中我检查我的视频已成功上传到youtube然后我想尝试检查视频是否可播放。

在我的项目中首先上传我正在使用youtube api v3的视频,我没有找到如何检查处理状态,已知问题是它无法正常工作。

1 个答案:

答案 0 :(得分:1)

Videos资源有一个名为processingStatus的属性,可以满足您的需求。来自documentation

  

ProcessingDetails.processingStatus - 视频的处理   状态。此值表示YouTube是否能够处理   视频或视频是否仍在处理中。

     

此属性的有效值为:

     
      
  • 失败 - 视频处理失败。参见ProcessingFailureReason。
  •   
  • 处理 - 目前正在处理视频。参见ProcessingProgress。
  •   
  • 成功 - 视频已成功处理。
  •   
  • 终止 - 处理信息不再可用。
  •   

因此,如果您使用videos.list()并指定part=processingDetails并包含您要检查的视频的ID,以确定它是否已完成处理。