Vimeo视频上传与API管理工具

Vimeo是一个优秀的视频存档和分享平台,它提供了简单而完整的API集,用于控制几乎所有的功能。例如,可能需要在应用程序中自动上传视频文件,以便与某些用户共享。在这种情况下,可以在互联网上找到一些Java、C#和Python的API包装器。然而,寻找的是一个开源且非常简单的C#应用程序,但未能找到满足期望的包装器。Vimeo还提供了一个功能,允许从Dropbox账户自动拉取视频。理论上,只需要将文件复制到一个文件夹中,上传就会在专用进程中执行。缺点是它没有提供很多灵活性,例如,不能设置视频标题、描述和预览,或者在上传后执行一些操作。此外,无法确切控制视频何时上传,将依赖于Dropbox系统。对来说,一个好的解决方案是一个可以轻松从外部应用程序启动的“Vimeo命令行工具”。因此,决定创建它,以及一个简单的C#类,用于管理Vimeo API,可以轻松集成到任何应用程序中。在这里,将描述这些工具,可以下载两者的完整源代码。

要使用Vimeo HTTP API,需要在HTTP请求的授权标头中包含一个授权令牌。因此,使用命令行工具和类也需要这个令牌。要获取令牌,需要:

  1. 在https://developer.vimeo.com/apps上注册应用程序,点击“创建新应用程序”并填写显示的表格。
  2. 进入应用程序页面,点击“请求上传访问”并填写表格。
  3. 一旦获得了上传访问权限,转到应用程序页面,打开“认证”部分并按下“生成令牌”来创建它。

使用命令行工具 命令行工具vimeouploader.exe可以用来上传视频到Vimeo,并控制这项服务提供的许多其他功能。它是使用C#编译的,需要.NET Framework 4。 命令行工具的语法如下: Vimeouploader -t= -f= -pf= -pt= -v= 其中,command参数是必需的,其他参数是可选的,取决于命令值。 必须提供一个有效的授权令牌使用-t参数,如果令牌无效,将收到以下错误: The remote server returned an error: (401) Unauthorized 例如,可以使用以下命令获取视频列表: Vimeouploader LV -t= 可以避免每次调用vimeouploader.exe时都提供令牌,通过以下命令将其值保存在注册表中: Vimeouploader ST -t= 因此,下次获取视频列表时,只需调用: Vimeouploader LV 可用的命令包括:

  • LV: 列出视频。报告的信息包括:视频URI、视频名称和创建时间。可以使用VINFO命令获取特定视频的更多信息(见下文)。
  • QUOTA: 显示已使用和可用的空间。
  • UPLOAD: 上传视频。必须在-f参数上提供一个有效的视频文件名,可以在-n参数上指定视频名称,在-d参数上指定视频描述。
  • DEL: 删除视频,必须在-v参数上提供视频ID。
  • EDT: 为给定视频设置名称和描述。必须在-v参数上提供视频ID,在-n参数上提供视频名称,在-d参数上提供视频描述。
  • SETPIC: 为给定视频设置预览图片。必须在-v参数上提供视频ID,在-pf参数上提供图像路径。
  • UINFO: 显示关于Vimeo账户的信息。
  • VINFO: 显示指定视频的信息。必须在-v参数上提供视频ID。
  • VSTATUS: 仅显示指定视频的状态。必须在-v参数上提供视频ID。
  • ST: 将授权令牌保存在注册表中,以免每次都指定它。必须在-t参数上指定令牌。
  • PULLFD: 检查给定的文件夹,如果有视频,它将被上传并移动到另一个文件夹。必须在-cf参数上指定要检查的文件夹,在-df参数上指定要移动上传视频的文件夹。
每个上传的视频都将以文件名作为标题。还可以在同一文件夹中包含与视频同名的图片。如果工具找到了它,它也会上传它,并将其设置为视频的缩略图。默认情况下,每5秒检查一次新视频,但可以使用-ci参数指定自定义检查间隔(以毫秒为单位)。

使用VimeoApiC# VimeoApi类是一个非常简单的类,可以在C#应用程序中使用它与Vimeo交互。只需要将文件VimeoApi.cs包含在解决方案中,并添加对Newtonsoft.Json的引用(用于解码从Vimeo API返回的Json信息)。 类构造函数接受授权令牌作为参数,如上所述获取。 VimeoApi类公开的方法包括:

  • DeleteVideo(string videoId): 删除指定视频。
  • GetQuota(): 获取Vimeo上的可用空间。
  • GetUserInfo(): 获取关于Vimeo账户的信息。
  • GetVideoDetails(string videoId): 获取关于视频的信息。
  • GetVideos(): 获取用户视频。
  • GetVideoStatus(string videoId): 获取视频状态描述。
  • SaveAuth(): 将授权令牌保存到注册表。
  • ReadAuth(): 从注册表中读取授权令牌。
  • SetPicture(string videoId, int timeOffset): 为给定视频设置缩略图。图片将由给定的视频帧获取。
  • SetPicture(string videoId, string fileName): 使用图像文件为给定视频设置缩略图。
  • SetVideoMetadata(string videoId, string name, string description): 为给定视频设置名称和描述。
  • UploadVideo(string videoFileName, string videoName, string videoDescription, System.Action uploadCB): 上传视频。可以传递一个回调,它将在每兆字节发送时被调用。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485