Полнофункциональное расширение для браузеров Chrome/Edge, которое отслеживает вашу активность на YouTube и предоставляет детальную статистику (криво)
- ⏱️ Отслеживание времени - точный подсчет времени просмотра видео
- 📊 Статистика - графики и диаграммы вашей активности
- 📅 Календарь просмотров - тепловая карта активности по дням
- 👍 Лайки и дизлайки - отслеживание ваших оценок
- ✅ Просмотренные видео - автоматическая пометка завершенных видео
- 📱 Адаптивный дизайн - работает на всех размерах экранов
npm install
npm run build- Откройте
chrome://extensions/(илиedge://extensions/) - Включите Режим разработчика (Developer mode)
- Нажмите Загрузить распакованное расширение (Load unpacked)
- Выберите папку
distиз собранного проекта
- Откройте любое видео на YouTube
- Расширение автоматически начнет отслеживать:
- Время просмотра
- Название видео и канала
- Лайки/дизлайки
- Процент завершения
- Нажмите на иконку расширения, чтобы увидеть статистику
youtube-tracker/
├── public/
│ ├── manifest.json # Конфигурация расширения
│ ├── background.js # Service worker для хранения данных
│ └── content.js # Content script для отслеживания YouTube
├── src/
│ ├── App.tsx # Главный компонент
│ ├── pages/ # Страницы
│ │ ├── Dashboard.tsx
│ │ ├── VideoList.tsx
│ │ ├── Calendar.tsx
│ │ └── Statistics.tsx
│ ├── hooks/
│ │ └── useYouTubeData.ts # Hook для загрузки данных
│ ├── utils/
│ │ └── storage.ts # Утилиты для работы с Chrome Storage
│ └── types/
│ └── data.ts # TypeScript типы
- Запускается на всех страницах YouTube
- Отслеживает открытие видео через URL
- Использует MutationObserver для SPA навигации
- Каждые 5 секунд отправляет обновления времени просмотра
- Отслеживает клики на кнопки лайк/дизлайк
- Определяет завершение видео (>95% просмотра)
- Получает сообщения от content script
- Сохраняет данные в
chrome.storage.local - Обновляет статистику по дням
- Управляет структурой данных
- Читает данные из Chrome Storage
- Автоматически обновляется при изменениях
- Отображает графики и статистику
- Полностью адаптивный дизайн
Данные хранятся локально в браузере:
// Структура хранения
{
videos: VideoStats[], // Массив просмотренных видео
dailyStats: DayStats[] // Статистика по дням
}# Установка зависимостей
npm install
# Запуск в режиме разработки
npm run dev
# Сборка production версии
npm run build- React + TypeScript - UI
- Tailwind CSS - стилизация
- Recharts - графики и диаграммы
- Chrome Extension API - взаимодействие с браузером
- Vite - сборка проекта
YouTube - это Single Page Application, поэтому:
- Используем MutationObserver для отслеживания изменений URL
- Ищем video элемент динамически
- Следим за обновлениями DOM для кнопок лайк/дизлайк
- Видео группируются по дням
- Один и тот же videoId может быть несколько раз (разные дни)
- Статистика агрегируется по датам
- Максимум 10MB в Chrome local storage
- Обновления времени каждые 5 секунд (не перегружаем систему)
- Эффективная структура данных
- Автоматическая очистка старых данных (опционально)
Проект распространяется под лицензией MIT.
YouTube Tracker — расширение для отслеживания активности на YouTube
Автор: TeGaLeX15