埋め込んだYou Tube動画の上部メニューを非表示にできなかった

# 概要と結論
##概要
埋め込んだYou Tube動画の再生前、停止中に表示される上部メニューを非表示にしたかった
だが実現できなかったのでその内容をまとめる

↓赤枠が非表示にしたかったメニュー部分
![非表示したかった範囲-min.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666347/80d5587c-7e57-65cd-3aae-1d4e63a83346.jpeg)

[動画元：Me at the zoo](https://www.youtube.com/watch?v=jNQXAC9IVRw)
（youtubeに投稿された最初の動画らしい）


## 結論
以下の方法を試みたがいずれも適用することができなかった

- youtubeの該当パラメータを指定
    - パラメータは存在したがサポートが終了していて利用できなかった
- cssで該当要素に`display: none;`を適用
- jsでiframeをロード後にスタイルを適用
    - 上記2つは「同一オリジンポリシー」によって適用できなかった


### 同一オリジンポリシー（クロスドメイン制約）

>同一オリジンポリシーとは、あるオリジンから読み込まれた文書やスクリプトについて、そのリソースから他のオリジンのリソースにアクセスできないように制限するものです。同一オリジンポリシーはウェブのセキュリティにおける重要な仕組みであり、悪意ある行動を起こしかねないリソースの分離を目的としています。

>[同一オリジンポリシー - Web セキュリティ | MDN](https://developer.mozilla.org/ja/docs/Web/Security/Same-origin_policy)

youtubeが埋め込まれるiframeタグは、「iframe内のコンテンツを提供するサイトのドメイン」≠「iframeを包含するページのドメイン」が異なるとiframeの子要素を操作することができない

#### 【note】クロスドメイン間でもやりとりはできる場合がある？
下記の参考ページを見ると、外部ドメイン側も管理しているのであればクロスドメイン間でのやりとりはできそうである
ただ、今回の目的には活用できなそうなので一旦メモとしてここに残す

https://qiita.com/T_sa/items/7d5285b420698ea8ca15

http://www.knockknock.jp/archives/221

https://techacademy.jp/magazine/20712

https://qiita.com/growsic/items/a919a7e2a665557d9cf4


### 考察
youtubeのパラメータが利用できないと分かった時点で、メニューの非表示はできない気はしていた
（たとえhack的方法があったとしても、youtube側の埋め込み規則みたいなものに違反するのではないかとも思う）


---

以降、は各方法とその検証について記載する






## youtubeのパラメータを使用
### 概要
パラメータは存在したがサポートが終了していて利用できなかった
また、もしこのパラメータを使用できたとしても、リファレンスの文章からして停止中のメニューは非表示にできなかったのかもしれない

>【パラメータ：showinfo】
>**注: このパラメータはサポートを終了しており、2018 年 9 月 25 日以降はご利用いただけません。**

>サポートされている値は 0 と 1 です。
>このパラメータの値を 0 に設定すると、動画の再生が始まる前に動画のタイトルやアップロードしたユーザーなどの情報は表示されません。
>プレーヤーに再生リストを読み込む場合に、このパラメータの値を明示的に 1 に設定すると、再生リストに含まれる動画のサムネイル画像も読み込み時に表示されます。

>[showinfo | YouTube 埋め込みプレーヤーとプレーヤーのパラメータ  |  YouTube IFrame Player API](https://developers.google.com/youtube/player_parameters#showinfo)


### 検証

```html:index.html
<!-- srcのURLの末尾の「?showinfo=0」がパラメータ -->
<iframe
  width="560" 
  height="315" 
  src="https://www.youtube.com/embed/jNQXAC9IVRw?showinfo=0"
  frameborder="0"
  allow="
    accelerometer; autoplay; clipboard-write;
    encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
></iframe>
```

<iframe 
  width="560" 
  height="315" 
  src="https://www.youtube.com/embed/jNQXAC9IVRw?showinfo=0"
  frameborder="0"
  allow="
    accelerometer; autoplay; clipboard-write;
    encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
></iframe>









## cssで該当要素に`display: none;`を指定
###検証

```html:index.html
<link rel="stylesheet" href="style.css" />

<iframe
  width="560"
  height="315"
  src="https://www.youtube.com/embed/jNQXAC9IVRw"
  frameborder="0"
  allow="
    accelerometer; autoplay; clipboard-write;
    encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
></iframe>
```

```css:style.css
.ytp-chrome-top {
  display: none;
}
```

【↓検証結果キャプチャ】
![css検証結果-min.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666347/a45073f9-8c26-ece3-3c4c-089899581854.jpeg)










## jsでiframeをjqueryを利用しロード後にスタイルを適用
### 結論
jqueryを利用しロード後についてもCSSの際と同様に同一オリジンポリシーから子要素を操作することができなかった

### 検証

``` html:index.html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="common.js"></script>
    
<!-- youtube -->
<iframe
  id="youtube-iframe"
  width="560"
  height="315"
  src="https://www.youtube.com/embed/jNQXAC9IVRw"
  frameborder="0"
  allow="
    accelerometer; autoplay; clipboard-write;
    encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
></iframe>

<!-- 比較用iframe -->
<iframe id="local-iframe" src="/local-iframe.html" frameborder="0"></iframe>
```

``` html:local-iframe.html
<p class="test-text">test iframe</p>
```

``` js:common.js
$(function () {
  // youtubeのタイトルメニューを非表示
  $("#youtube-iframe").on("load", function () {
    $("#testId").contents().find(".ytp-chrome-top").css("display", "none");
  });

  // 比較用iframe
  $("#local-iframe").on("load", function () {
    $("#local-iframe").contents().find(".test-text").css("display", "none");
  });
});
```

【↓検証結果キャプチャ_youtube】
![js検証結果_youtube-min.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666347/2571d614-ed1d-e9e4-c151-c27b6a13c5c4.jpeg)

【↓検証結果キャプチャ_比較用】
![js検証結果_比較用-min.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666347/6905ad4b-769d-dbfc-af82-1e7f790ebd40.jpeg)







---


# 参考させていただいたページ
http://www.koikikukan.com/archives/2015/03/03-005555.php

https://techacademy.jp/magazine/38324

https://techacademy.jp/magazine/20712