【问题标题】:Adding a Google Drive video to a sidebar in Google Sheets or Docs将 Google Drive 视频添加到 Google 表格或文档的边栏
【发布时间】:2018-06-06 14:33:15
【问题描述】:

^^ 没有回答这个问题。其他stackoverflow搜索似乎也有过时的信息。也许它在某一时刻有效,我不知道,但现在没有。

我想在谷歌表格或文档中包含教学视频(不是网站,因为我无法直接在视频旁边编辑文档或表格),但我希望它来自谷歌驱动器而不是 youtube。

我也知道谷歌表单、幻灯片和网站允许嵌入视频,所以只是希望有一个工作表(最好)或文档的解决方法。

我添加了一个侧边栏:

function showSidebar(){
  var html = HtmlService.createHtmlOutputFromFile("sidebar")
  .setSandboxMode(HtmlService.SandboxMode.IFRAME)
  .setWidth(300)
  SpreadsheetApp.getUi().showSidebar(html);
}

但我无法想到将视频包含在驱动器文件中。以下适用于 youtube:

 <iframe width="420" height="315" src="https://www.youtube.com/embed/tgbNymZ7vqY">
</iframe>

以下是我认为我应该能够使用的:

 <video width="400" autoplay controls>
    <source src="https://drive.google.com/file/d/fileID/preview" type="video/mp4">

    Your browser does not support HTML5 video.
    </video>

虽然我看到@ruben 在说什么 - 我可以将视频嵌入网站 - 如果我尝试将网站链接作为 iframe 嵌入到谷歌表格的子栏中,它似乎并没有真正起作用.

我也尝试过 google 插件和 aps,但没有找到符合我需要的方式。用户不想打开新屏幕。

【问题讨论】:

  • 如果您声明“我认为没有一种方法可行”,您应该提供您尝试过的方法,这样您就不会当您已经尝试过这种方式时,不要得到无用的“尝试这种方式”答案。对我来说,你找错人了——谷歌不打算让 Drive 成为一个服务器,你可以从中为其他平台托管丰富的内容。这就是为什么对每天的唯一访问等有配额限制的原因。
  • tree :有几个线程可能与您的问题有关。结帐stackoverflow.com/…
  • HTML 服务是一样的 // 无论它的容器用于发布网络应用程序,它的工作方式都是一样的。
  • 谢谢。我尝试将网站页面(嵌入视频)嵌入为 iframe,但仍然没有成功。

标签: google-apps-script google-drive-api html5-video


【解决方案1】:

您要使用多大的视频文件?如果尺寸小,这个修改怎么样?在我的环境中,当我使用视频标签将视频添加到 Google Drive 中时,我使用没有export=download 的 webContentLink。 (您也可以将 webContentLink 与 export=download 一起使用。)那么您可以尝试进行此修改吗?

发件人:

<video width="400" autoplay controls>
<source src="https://drive.google.com/file/d/fileID/preview" type="video/mp4">
Your browser does not support HTML5 video.
</video>

收件人:

<video width="400" autoplay controls>
<source src="https://drive.google.com/uc?id=fileID" type="video/mp4">
Your browser does not support HTML5 video.
</video>

注意:

  • 在这种情况下,当视频文件很大时,加载时间会变长。请注意这一点。

如果这不是你想要的,我很抱歉。

【讨论】:

  • 这正是我想要的,但是当我尝试时,我在页面上得到一个空白点,将链接直接复制到浏览器中会出现 403 错误。
  • @tree 是否适用于托管在专用可公开访问位置的同一文件或其他已知的非 YouTube 视频文件(即它是否不支持作为元素,或者驱动器不提供您的内容期待?
  • @tree 很抱歉我帮不上忙。
  • @Tanaike 嘿-你让我走上了正轨!完整的代码示例如下。谢谢!!!
【解决方案2】:

@Tanaike 使用链接让我朝着正确的方向前进:

https://drive.google.com/uc?id=fileID

但我收到了 403 错误。如果您在一个组织中,您可能必须在浏览器中使用类似以下链接的链接:

https://drive.google.com/a/yourcompany.com/uc?id=fileid

此链接实际上会将您转至新链接。然后,您可以使用这个新链接来托管和播放驱动器文件。

谢谢大家!

更新:您必须处理文件本身的共享/权限问题,因此其他人可能无法看到视频。还在调查中

更新 #2 - 您只需即时创建链接,因为每个用户都会获得自己的链接来查看它。

你必须把它放在你的 code.gs 文件中

function createLink(){
   var fileId = 'fileID';
   var getFile = DriveApp.getFileById(fileId);
    Logger.log(getFile);
   var url = getFile.getDownloadUrl();
    Logger.log(url);


    url = url.replace("&e=download&gd=true","");

    var output = '<video width="400" autoplay controls><source src="'+url+'" type="video/mp4">Your browser does not support HTML5 video.</video>';
    Logger.log(output);

    var html = HtmlService.createHtmlOutput(output)
  .setSandboxMode(HtmlService.SandboxMode.IFRAME)
  .setWidth(600)
  .setTitle("Embedded video");
  SpreadsheetApp.getUi().showSidebar(html);
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-19
    • 2019-11-02
    • 2015-07-04
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多