Могу ли я делать вызовы API, таких как youtube-dl и ffmpeg, из приложения chrome?

Прежде всего, я не начал реализацию системы, которую я собираюсь описать, поскольку я не хотел брать на себя обязательства по реализации чего-то, чего я не знал, было ли это возможно.

Итак, я пытаюсь добиться того, чтобы создать приложение chrome для загрузки аудио с определенных веб-сайтов (например, youtube и soundcloud) с помощью youtube-dl, затем обработать его с помощью ffmpeg, а затем загрузить его в облачный сервис через некоторые API-интерфейсы., Причина, по которой я хочу сделать это с помощью chrome-приложения, заключается в том, что я могу выполнять всю работу на стороне клиента (без необходимости в серверах), и у меня есть возможность вставлять javascript в страницы, используя скрипты содержимого, что приложение довольно простое в использовании (я мог бы создавать такие кнопки, как "скачать песню" и тому подобное).

Хотя я уже прочитал документацию, объясняющую Технический обзор NaCl и некоторую структуру приложения, я все еще не уверен, смогу ли я сделать эти вызовы через какой-либо модуль C/C++ или мне будет отказано из-за безопасности причины.

Подводя итог: учитывая, что пользователь имеет необходимые зависимости в своей системе (youtube-dl, python, ffmpeg и т. Д.), Можно ли выполнять вызовы сторонних API, таких как описанные ранее, через приложение chrome с использованием NaCl?

Спасибо всем заранее,

1 ответ

Решение

Приложения Chrome обычно находятся в песочнице.

Меньше, чем расширения - они могут получить гораздо больше системных ресурсов через API приложений.

Но все же, что вы упоминаете, это выполнение библиотек / утилит из браузера, и это обычно не разрешается.

(P) В этом отношении NaCl плотно помещен в песочницу. Посмотрите на этот старый вопрос, он по-прежнему применим: вы можете использовать только сторонний код, который компилируется в NaCl вместе с вашим приложением, а не просто ссылку на библиотеку. Есть несколько библиотечных портов для NaCl, но это не автоматически.

Обычно несколько лет назад вы использовали механизм, подобный NPAPI, для доступа к библиотеке из браузера. Это устарело и больше не будет работать. Вместо этого Chrome предлагает каналоподобное (через stdio) соединение с внешней программой, называемой Native Messaging. Вы можете использовать его для выполнения операций с библиотеками и инструментами системного уровня, но недостатком является то, что вы не можете связать собственный хост с вашим приложением, вам понадобится отдельный установщик.

Другие вопросы по тегам