1

Расширение для chrome. youtube на полный экран с помощью deepseek

попросил deepseek написать код для расширения chrome, которое будет автоматически переключать видео на ютуб в полный экран после 10 секунд бездействия пользователя и обратно если пошевелить мышкой. сам я не программист ни разу, поэтому путь был долог и тернист. усугубляло ситуацию периодическое "сервер занят".

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

  1. создайте файлы manifest.json и content.js в одной папке, вставьте в них соответствующий код

  2. Перейдите в Chrome → chrome://extensions.

  3. Включите "Режим разработчика".

  4. Нажмите "Загрузить распакованное расширение" и выберите папку.

{

"manifest_version": 3,

"name": "YouTube Auto Embed",

"version": "1.4",

"description": "Умное переключение режимов с учетом паузы",

"permissions": ["storage"],

"content_scripts": [

{

"matches": [

"*://*.youtube.com/watch?v=*",

"*://*.youtube.com/embed/*"

],

"js": ["content.js"],

"run_at": "document_idle"

}

]

}

(function() {

const isWatchPage = window.location.href.includes('/watch?v=');

const isEmbedPage = window.location.href.includes('/embed/');

if (!isWatchPage && !isEmbedPage) return;

let timeoutId;

let currentVideoTime = 0;

let videoElement;

let isPaused = false;

// Общие функции

function getVideoElement() {

return document.querySelector('video');

}

function storeCurrentTime() {

if (videoElement) {

currentVideoTime = Math.floor(videoElement.currentTime);

sessionStorage.setItem('ytAutoEmbedTime', currentVideoTime);

}

}

function handleUserActivity() {

clearTimeout(timeoutId);

if (isEmbedPage) return;

if (isWatchPage && !isPaused) {

timeoutId = setTimeout(switchToEmbed, 10000);

}

}

// Для watch-страницы

if (isWatchPage) {

videoElement = getVideoElement();

if (videoElement) {

videoElement.addEventListener('play', () => {

isPaused = false;

handleUserActivity();

});

videoElement.addEventListener('pause', () => {

isPaused = true;

clearTimeout(timeoutId);

});

}

function switchToEmbed() {

if (isPaused) return;

storeCurrentTime();

const videoId = new URLSearchParams(window.location.search).get('v');

const embedUrl = `https://www.youtube.com/embed/${videoId}?autoplay=1&star...}`;

window.location.replace(embedUrl);

}

if (!isPaused) timeoutId = setTimeout(switchToEmbed, 10000);

}

// Для embed-страницы

if (isEmbedPage) {

videoElement = getVideoElement();

const storedTime = sessionStorage.getItem('ytAutoEmbedTime') || 0;

if (videoElement) {

videoElement.addEventListener('loadedmetadata', () => {

videoElement.currentTime = storedTime;

});

}

function switchToNormal() {

storeCurrentTime();

const videoId = window.location.pathname.split('/')[2];

const normalUrl = `https://www.youtube.com/watch?v=%24%7BvideoId%7D&t=%24%7...`;

window.location.replace(normalUrl);

}

const events = ['mousemove', 'keydown', 'mousedown', 'touchstart'];

events.forEach(event => {

window.addEventListener(event, () => {

if (!isPaused) switchToNormal();

});

});

if (videoElement) {

videoElement.addEventListener('play', () => {

isPaused = false;

sessionStorage.setItem('ytAutoEmbedPaused', 'false');

});

videoElement.addEventListener('pause', () => {

isPaused = true;

sessionStorage.setItem('ytAutoEmbedPaused', 'true');

});

}

}

const activityEvents = ['mousemove', 'keydown', 'scroll', 'mousedown', 'touchstart'];

activityEvents.forEach(event => {

window.addEventListener(event, handleUserActivity);

});

console.log('Extension initialized in', isWatchPage ? 'normal' : 'embed', 'mode');

})();

если кто понимает, что тут написано, можете прокомментировать по качеству

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества