如何将私有 MP4 URL 从 Google 云存储传递到我的 ChromeCast? (chrome.cast.media.MediaInfo)

How do I pass private MP4 URLs from Google Cloud Storage to my ChromeCast? (chrome.cast.media.MediaInfo)

我正在尝试使用访问令牌从我的 Google 云存储访问我的媒体。我可以使用 URL: https://www.googleapis.com/download/storage/v1/b/*bucket*/o/*path*/index.mp4?alt=media 授权 Header 和我的访问令牌在本地下载文件。

我的问题是我不确定如何为我的 Chromecast 授予相同的权限来为我投射我的媒体。我尝试像这样将访问令牌附加到 URL:https://www.googleapis.com/download/storage/v1/b/*bucket*/o/*path*/index.mp4?alt=media&access_token=*access_token*,但最终出现此错误:

如果我能弄清楚如何做以下任何事情,我可以将此问题标记为已回答:

  1. Format/sign 我的 URL 这将允许我访问我的 Google 云资源而无需设置授权 header.

  2. Format the headerwhen the MP4 URL added to chrome.cast.media.MediaInfo function (setting the headers when casting MP4) .

我不熟悉 Chromecast API 及其功能,但我知道如何避免该问题。

Google 云存储 (GCS) 允许您生成临时有效的 URLs,无需任何单独的身份验证机制即可使用,称为 "signed URLs." a URL 会下载一个对象,加上到期日期,然后使用有权下载该对象的服务帐户的私钥对整个内容进行签名。然后,您将 URL 提供给用户(在本例中为 Chromecast),然后该用户可以充当服务帐户来下载该对象。听起来这可能很适合您的用例。

Google 多种语言的云客户端库可以签署 URLs。详情请看这里:https://cloud.google.com/storage/docs/access-control/signed-urls