2015-01-07 71 views
3

首先,我還沒有開始實施我將要描述的系統,因爲我不想承諾實施一些我不知道是否有可能的事情。我可以通過chrome-app調用API,例如youtube-dl和ffmpeg嗎?

因此,我試圖實現的是構建一個chrome應用程序,使用youtube-dl從某些網站(例如youtube和soundcloud)下載音頻,使用ffmpeg後處理它,然後將其上傳到雲通過一些API服務。我想通過chrome-app來做這件事的原因是因爲我可以在客戶端完成所有工作(不需要服務器),並且我可以使用內容腳本將JavaScript插入到頁面中,這將使該應用非常易於使用(我可以創建諸如「下載歌曲」之類的按鈕以及類似的東西)。

雖然我已經閱讀文檔說明的NaCl技術概述和一些應用程序結構的,我依然不知道是否我將能夠通過一些C/C++模塊,以使這些調用,或者我會得到由於安全原因被拒絕。總結:考慮到用戶在他的系統(youtube-dl,python,ffmpeg等)中具有所需的依賴關係,是否可以通過chrome調用第三方API,如前面描述的那些API -app使用NaCl?

謝謝大家,

+0

關於「不想承諾執行某些我不知道是否可能的事情」:我經常遇到這個問題,所以我做的是開發一個快速原型,其唯一目的是測試可疑方法。對於避免在註定要失敗的設計上浪費開發支出,這比任何關於SO的答案都要安全得多。 –

回答

3

Chrome應用程序通常是沙盒。

不如擴展 - 它們可以通過應用程序API獲得更多的系統資源。

但是,你提到的是執行庫/實用程序在瀏覽器外,它通常不允許。 (P)在這方面,NaCl被嚴格沙盒化。請參閱this old question,它仍然適用:您只能使用與您的應用程序一起編譯到NaCl中的第三方代碼,而不只是鏈接到庫。 NaCl有一些庫端口,但它不是自動的。

通常情況下,幾年前你會使用類似NPAPI的機制來伸出瀏覽器並使用庫。它已被棄用,並且不再工作。 Chrome提供了一種類似於管道的(通過stdio)連接到名爲Native Messaging的外部程序。您可以使用它來執行系統級庫和工具的操作,但缺點是您無法將本機主機與應用程序捆綁在一起,您將需要單獨的安裝程序。

+0

謝謝你提供的信息Xan。我想我會遇到與此設計有關的安全問題。關於使用Native Messaging的想法,我想使用NaCl構建應用程序的原因是希望將它捆綁在一起,但是看起來它可能「不要像我想要的那樣完成,我想我會回到我的第一個設計(使用Web服務從chrome擴展中接收信息)。 – ErickR

相關問題