如何在不违反内容安全政策的情况下安全地将 YouTube 视频嵌入 Chrome 扩展程序中?

mik*_*ike 1 youtube google-chrome google-chrome-extension youtube-iframe-api

一段时间以来,我一直在寻找有关此问题的答案,但无法使提供的任何解决方案发挥作用。

这是我尝试嵌入的 YouTube 代码: http: //jsfiddle.net/BFDKS/1204/

视频 iframe 添加到 index.html 和 app.js 中,我调用:

    var tag = document.createElement('script');

    tag.src = "https://www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

    var player;

    function onYouTubeIframeAPIReady() {
        player = new YT.Player('ytplayer', {
            events: {
                'onReady': onPlayerReady
            }
        });
    }

    function onPlayerReady() {
        player.playVideo();
        // Mute!
        player.mute();
    }
Run Code Online (Sandbox Code Playgroud)

问题是我在控制台中收到 CSR 错误 在此输入图像描述

这引导我到我的manifest.json 文件:

{
"name": "",
"manifest_version": 2,
"version": "0.0.6",
"icons": {
  "16": "icon-16.png",
  "48": "icon-48.png",
  "128": "icon-128.png"
},
"content_security_policy": "script-src 'self' https://www.google-analytics.com/; https://www.youtube.com/*; object-src 'self'",
"permissions": [
    "activeTab",
    "*://*.google-analytics.com/*"
],
"chrome_url_overrides": {
    "newtab": "index.html"
},
"description": ""
Run Code Online (Sandbox Code Playgroud)

}

这基本上就是我现在的处境,并且很难取得进展。我真的只是想嵌入一个自动播放的 YouTube 视频,默认情况下该视频是静音的,并且打开了隐藏式字幕。有任何想法吗?不胜感激!

mik*_*ike 5

我发现,manifest.json 文件需要以下内容:

    "content_security_policy": "script-src 'self' https://www.google-analytics.com/ https://www.youtube.com/ https://s.ytimg.com; object-src 'self'; child-src https://www.youtube.com/ https://s.ytimg.com",
Run Code Online (Sandbox Code Playgroud)

谢谢wOxxOm的指导