【问题标题】:Can I make calls to APIs such as youtube-dl and ffmpeg from a chrome-app?我可以从 chrome 应用程序调用 youtube-dl 和 ffmpeg 等 API 吗?
【发布时间】:2015-01-07 00:39:11
【问题描述】:

首先,我还没有开始实施我将要描述的系统,因为我不想承诺实施一些我不知道是否可能的事情。

所以,我想要实现的是构建一个 chrome-app 以使用 youtube-dl 从某些网站(例如 youtube 和 soundcloud)下载音频,使用 ffmpeg 对其进行后期处理,然后将其上传到云服务通过一些 api。我想通过 chrome-app 执行此操作的原因是因为我可以在客户端完成所有工作(不需要服务器),并且我能够使用内容脚本将 javascript 插入页面,这将使该应用程序非常易于使用(我可以创建诸如“下载歌曲”之类的按钮)。

虽然我已经阅读了解释 NaCl 技术概述和一些应用程序结构的文档,但我仍然不确定我是否能够通过某些 C/C++ 模块进行这些调用,或者我是否会被拒绝出于安全原因。

总结一下:考虑到用户在他的系统中有所需的依赖项(youtube-dl、python、ffmpeg 等),是否可以通过 chrome- 调用第三方 API,例如前面描述的那些 API-使用 NaCl 的应用程序?

提前谢谢大家,

【问题讨论】:

  • 关于“不想承诺实现我不知道是否可能的东西”:我经常遇到这个问题,所以我所做的就是开发一个快速原型,其唯一目的是测试可疑的方法。在避免在注定失败的设计上浪费开发支出时,这比任何关于 SO 的答案都要安全得多。

标签: google-chrome ffmpeg google-chrome-app youtube-dl


【解决方案1】:

Chrome 应用通常是沙盒化的。

比扩展少 - 它们可以通过应用 API 访问更多的系统资源。

但是,您提到的是 执行 库/实用程序超出浏览器,通常是不允许的。

(P)NaCl 在这方面被严格沙盒化。请参阅this old question,它仍然适用:您只能使用与您的应用程序一起编译成 NaCl 的第 3 方代码,而不仅仅是链接到库。有一些 NaCl 库端口,但不是自动的。

通常,几年前您会使用像 NPAPI 这样的机制来联系并使用浏览器之外的库。它已被弃用,并且不再起作用。取而代之的是,Chrome 提供了与名为Native Messaging 的外部程序的类似管道(通过 stdio)的连接。您可以使用它来执行系统级库和工具的操作,但缺点是您无法将本机主机与您的应用程序捆绑在一起,您需要单独的安装程序。

【讨论】:

  • 感谢 Xan 提供的信息。我想我会在这个设计中遇到与安全相关的问题。关于使用 Native Messaging 的想法,我想使用 NaCl 构建应用程序的原因是希望将它们捆绑在一起,但看起来它可以没有按照我的意愿完成,我想我会回到我的第一个设计(使用网络服务从 chrome 扩展接收信息)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 2014-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
相关资源
最近更新 更多