はじめに
こんにちは、KUDs です。
今回は、YouTube 動画をプライバシー強化モードで視聴できるツールを作成したので紹介です!
開発の背景
YouTube で、『いつでもプライバシー強化モードで視聴できるツール』が欲しい。作って。
承知ですー。(プライバシー強化モード?何だっけ。。それ使ってしたいんだろう。。。)
知人は、「プライバシー強化モード」を使用して動画を視聴したいとのことでした。
そもそもプライバシー強化モードって何なんでしょうか。
また、プライバシー強化モードを使えば何がいいんでしょうか。
YouTube における「プライバシー強化モード」とは
まず、プライバシー強化モードって何なんでしょう。
YouTube 公式ドキュメントを確認してみましょう。
YouTube 埋め込みプレーヤーのプライバシー強化モードは、埋め込んだ YouTube コンテンツの視聴情報が、視聴者の YouTube でのブラウジング体験に影響を与えないようにするための機能です。つまり、プライバシー強化モードの埋め込みプレーヤーで表示された動画を視聴しても、その視聴情報が YouTube の閲覧(プライバシー強化モードの埋め込みプレーヤー内の動画や、視聴者の今後の YouTube 視聴)のカスタマイズに使用されることはありません。
プライバシー強化モードの埋め込みプレーヤーで表示される動画に広告が掲載される場合も、同様に広告はカスタマイズされません。また、プライバシー強化モードの埋め込みプレーヤーに表示される動画の視聴情報は、サイト外またはアプリ外の視聴者に表示される広告のカスタマイズにも使用されません。
https://support.google.com/youtube/answer/171780
要するに、「視聴した情報を基にパーソナライズされない」ということです。
もう少しだけ詳しく言うと、クッキーが設定されません。
これによって、ユーザの行動がトラッキングされず、パーソナライズされなくなります。
パーソナライズされなくなるということは、視聴によって広告が最適化されたり、おすすめ動画への影響がなくなります。
これがメリットになるか、デメリットになるかは利用者さん次第です。
例えば、プライバシー強化モードを使ってしまうと、今後関連動画がおすすめに出にくくなってしまう可能性があります。
「好きなチャンネルの動画はバンバンおすすめに出てきてほしい」という人にとってはデメリットでしょう。
逆に、「今はこの動画を見たい気分だけど、今後おすすめとかでは出てきて欲しくないなぁ」という方にとっては、プライバシー強化モードの使用はメリットになるでしょう。
「プライバシー強化モード」での広告表示は
いきなりですが、「プライバシー強化モードでは広告が表示されなくなる」というお話をしばしば聞きます。
結論、プライバシー強化モードで動画を視聴した場合、現時点では広告が表示されなくなります。
ただし、「広告が一切発生しなくなる」というわけではありません(矛盾)。
そもそも、前述の公式ドキュメントに”広告が発生しなくなる“等の記述はありません。なんなら、”広告が掲載される場合“についての言及があるくらいです。
そのため、プライバシー強化モードであっても、広告は表示される可能性があるものと考えるべきです。
或いは、今後広告がたくさん表示されるようになる可能性もあります。
「広告が一切表示されなくなる機能」のようにとらえられてしまうと、広告業としても成り立ちません。
(行間を読みましょう)
さて、一通り「プライバシー強化モード」を理解できました。
結局、知人が何をしたいのかはよくわかりませんが、きっとプライバシーを強化したいんでしょう。
とりあえずツールを作ったので紹介です。
「YouTube No Cookie Video Player」とは
その名の通り、NoCookie モードのビデオプレイヤーです。
何ができるの?
NoCookie モードで動画を再生できます。
使用イメージは以下のような感じです。
YouTube 動画ページを開くと画面右下に「No Cookie Video」が表示されるので、それを再生するだけです。
画面上部の「NoCookie」ボタンを押すことで、右下の動画の表示・非表示が切り替え可能です。
説明が終わってしまいました。
他に何かないの?
他には…
あ、別のページに遷移した際の挙動について説明しておきます。
遷移先が動画ページの場合は、右下の埋め込み動画は自動でその動画に更新されます。
一方、遷移先が動画ページ以外(チャンネルページやホーム等)の場合は、右下の埋め込み動画はそのまま保持されます。
そのため、ピクチャーインピクチャ―というか、ミニプレイヤーというか、バックグラウンドというか、何かそういう感じのもできます。
他には…
あ、ライブ動画でも使えます。
他には…
Chrome 以外にも Firefox でも使用できることを確認しました!(他は調べてません!)
出し切ったと思います!以上です!
インストール方法
スクリプトは以下からインストールできます。
なお、このスクリプトをインストールするには、Tampermonkey 等の拡張機能のインストールが必要です。
まだインストールしていない方は、ブラウザの拡張機能からインストールしてください。
スクリプト紹介
上記のリンクでも確認できますが、こちらにも転記しておきます。
// ==UserScript==
// @name YouTube No Cookie Video Player
// @namespace https://kuds.win/
// @version 1.1
// @description YouTube で動画を再生する際、埋め込み動画 (No Cookie Video) を表示できます。プライバシー強化モードで視聴したい人に適しています。
// @author KUDs
// @match https://www.youtube.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com
// @grant none
// @license GPL-3.0-or-later
// @downloadURL https://update.greasyfork.org/scripts/489883/YouTube%20No%20Cookie%20Video%20Player.user.js
// @updateURL https://update.greasyfork.org/scripts/489883/YouTube%20No%20Cookie%20Video%20Player.meta.js
// ==/UserScript==
(function() {
'use strict';
let lastVideoId = '';
function attemptUpdateEmbedVideo() {
const videoId = getVideoId();
if (videoId && videoId !== lastVideoId) {
const existingIframeContainer = document.querySelector('.embed-video-container');
if (existingIframeContainer) {
existingIframeContainer.remove();
}
if (!document.getElementById('toggleEmbedVideo')) {
addToggleButton();
}
insertEmbedVideo(videoId);
lastVideoId = videoId;
}
}
function getVideoId() {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get('v');
}
function insertEmbedVideo(videoId) {
const iframeContainer = document.createElement('div');
iframeContainer.classList.add('embed-video-container');
const toggleButton = document.getElementById('toggleEmbedVideo');
iframeContainer.style.display = toggleButton && toggleButton.dataset.state === 'visible' ? 'block' : 'none';
Object.assign(iframeContainer.style, {
position: 'fixed',
bottom: '20px',
right: '20px',
width: '560px',
height: '315px',
zIndex: '1000',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
borderRadius: '10px',
overflow: 'hidden'
});
iframeContainer.innerHTML = `
<h1 style="color:red; margin: 0; padding: 10px; background-color: #000;">No Cookie Video</h1>
<iframe id="ytplayer" type="text/html"
src="https://www.youtube-nocookie.com/embed/${videoId}?autoplay=0&fs=1"
frameborder="0" allow="fullscreen; picture-in-picture"
style="width: 100%; height: calc(100% - 40px);"></iframe>`;
document.body.appendChild(iframeContainer);
}
function addToggleButton() {
const targetElement = document.getElementById('logo');
const toggleButton = document.createElement('button');
toggleButton.id = 'toggleEmbedVideo';
toggleButton.dataset.state = 'visible';
toggleButton.textContent = 'NoCookie';
applyButtonStyles(toggleButton);
toggleButton.addEventListener('mouseover', () => {
Object.assign(toggleButton.style, {
filter: 'brightness(1.25)',
transform: 'scale(1.05)',
});
});
toggleButton.addEventListener('mouseout', () => {
Object.assign(toggleButton.style, {
filter: 'brightness(1)',
transform: 'scale(1)',
});
});
toggleButton.addEventListener('click', function() {
const embedVideoContainer = document.querySelector('.embed-video-container');
if (this.dataset.state === 'hidden') {
this.dataset.state = 'visible';
this.textContent = 'NoCookie';
this.style.backgroundColor = 'red';
if (embedVideoContainer) embedVideoContainer.style.display = 'block';
} else {
this.dataset.state = 'hidden';
this.textContent = 'Normal';
this.style.backgroundColor = 'gray';
if (embedVideoContainer) embedVideoContainer.style.display = 'none';
}
});
targetElement.insertAdjacentElement('afterend', toggleButton);
}
function applyButtonStyles(button) {
Object.assign(button.style, {
backgroundColor: 'red',
color: 'white',
border: 'none',
borderRadius: '10px',
padding: '10px 20px',
fontSize: '16px',
cursor: 'pointer',
transition: 'filter 0.3s, transform 0.3s',
marginLeft: '20px',
});
}
const pushState = history.pushState;
history.pushState = function() {
pushState.apply(history, arguments);
attemptUpdateEmbedVideo();
};
window.addEventListener('popstate', attemptUpdateEmbedVideo);
new MutationObserver(attemptUpdateEmbedVideo).observe(document.body, {childList: true, subtree: true});
attemptUpdateEmbedVideo();
})();
※ただし、ブログ上のスクリプトはメンテナンスしない可能性があります。最新のスクリプトはリンクからインストール・確認してください。
さいごに
あくまで本ツールは、プライバシー強化モードで動画を視聴したい人向けのツールです。
広告を表示させない目的でこのツールを使用することは YouTube 利用規約に反する可能性があるため推奨いたしません。
YouTube は広告ビジネスです。
YouTube が今後も良質なプラットフォームを維持できるように、広告はきちんと見るか、或いは YouTube Premium にサブスクライブしましょう。
※ 本ツールは広告ブロッカーではありませんが、広告ブロッカーは YouTube 利用規約違反です。最近では、広告ブロッカーを利用している場合以下のような警告が表示されるようです。
また、本ツールを使用することで、関連動画がレコメンデーションされなくなったり、カスタマイズされた広告が表示されなくなる可能性もあります。
自分の利用用途と照らし合わせて、本ツールの使用が適しているかはご自身でご判断ください。
以上です。
コメント