Skip to content

Receive notifications when your favourite YouTube creators upload content.

Notifications You must be signed in to change notification settings

lewislarsen/youtube-channel-notifier

Repository files navigation

YouTube Channel Notifier

A lightweight Laravel application that keeps you connected with your favorite YouTube creators by delivering friendly notifications whenever they publish new videos.

Image of the web page

IntroductionKey FeaturesQuick Start with DockerStandard InstallationUsing the NotifierConfiguration OptionsFAQSupport & CommunityTesting

Introduction

YouTube Channel Notifier helps you stay updated with your favorite content creators even if you don't have a Google account anymore. Never miss a video from channels you care about — we'll let you know whenever something new gets published through friendly email or Discord notifications.

Key Features

  • Effortless Channel Tracking: Easily add and manage YouTube channels you love
  • Flexible Notifications: Choose between email alerts, Discord messages, or both
  • Simple CLI Interface: Manage everything through intuitive commands
  • Privacy-Focused: No YouTube API keys required, no data sharing with third parties
  • Docker Ready: Get up and running in minutes with automatic setup and persistence

Important

This project is managed through simple CLI terminal commands and doesn't have a web interface for management.

Quick Start with Docker

The fastest way to get notified about new videos from your favorite creators:

1. Build the Docker image

./build-docker.sh

2. Run the container

docker run -d --name youtube-notifier \
  -p 8080:80 \
  -e MAIL_HOST=your-smtp-server \
  -e MAIL_PORT=587 \
  -e MAIL_USERNAME=your-username \
  -e MAIL_PASSWORD=your-password \
  -e [email protected] \
  -e [email protected],[email protected] \
  -e DISCORD_WEBHOOK_URL=your-discord-webhook-url \
  youtube-channel-notifier

3. Add your favorite channels

# Connect to the container
docker exec -it youtube-notifier sh

# Add YouTube channels to monitor
php artisan channels:add

# See what you're tracking
php artisan channels:list

# Exit when done (the notifier keeps running)
exit

That's it! The container automatically checks for new videos every 5 minutes and will notify you when creators post new content.

Docker Container Management

# View container logs
docker logs youtube-notifier

# Stop the container
docker stop youtube-notifier

# Start the container
docker start youtube-notifier

# Remove the container
docker rm youtube-notifier

Using the Notifier

YouTube Channel Notifier comes with friendly commands to manage everything:

Channel Management

# Add a new YouTube channel to monitor
php artisan channels:add

# List all your monitored channels
php artisan channels:list

# Remove a channel you no longer want to track
php artisan channels:remove

Video Management

# See all videos the notifier has discovered
php artisan videos:list

# Manually check your channels for new videos
php artisan channels:check

Finding a YouTube Channel ID

When adding a channel, you'll need the channel ID. Here's how to find it:

  1. Visit the YouTube channel's page
  2. View the page source (right-click → View Page Source)
  3. Search for itemprop="identifier" content="
  4. The ID appears after this text

Note

This method is a bit clumsy. Any PRs to automate this reliably via extracting it from the page would be greatly appreciated!

Standard Installation

Requirements

  • PHP 8.2+
  • Composer
  • SQLite, PostgreSQL or MySQL

Step-by-Step Installation

# Clone the repository
git clone https://github.com/lewislarsen/youtube-channel-notifier.git
cd youtube-channel-notifier

# Install dependencies
composer install

# Run our friendly interactive installer
php artisan app:install

The interactive installer will guide you through:

  • Setting up your notification preferences
  • Adding your first YouTube channels to monitor

Manual Installation

If you prefer to configure things yourself:

# Copy environment file and generate application key
cp .env.example .env
php artisan key:generate

# Configure your database in .env, then run migrations
php artisan migrate

# Add notification settings to .env (see Configuration section)

Scheduler Setup

To automatically check for new videos, add this cron entry to your server:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Note: If you're using Docker, the scheduler is already configured and running for you.

Configuration Options

Notification Settings

Configure your preferred notification methods in the .env file:

Email Notifications

MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=[email protected]

# Single or multiple recipients (comma-separated)
ALERT_EMAILS=[email protected],[email protected]

Discord Notifications

DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your-webhook-url

FAQ

Does this application download or store videos?

Not at all! We only track metadata (title, publish date, URL) about videos through public RSS feeds. No video content is ever downloaded, stored, or processed.

How often does it check for new videos?

The notifier checks every 5 minutes, so you'll know about new content shortly after it's published.

Does this use the YouTube API?

No, and that's a good thing! The application uses YouTube's public RSS feeds, which means:

  • No API key required
  • No quotas or rate limits to worry about
  • Simpler setup for you

Does it work with private/unlisted videos?

No, we can only detect publicly available videos that appear in the channel's RSS feed.

Can I get notifications for livestreams?

Currently, we focus on regular video uploads and filter out livestream content.

Does it support platforms other than YouTube?

Not yet. Currently, the application is designed specifically for YouTube creators.

How can I request a new notification channel?

We'd love to hear your ideas! Open an issue in the repository and we'll consider adding more notification options.

Support & Community

If you encounter any issues or have ideas for improvements, please open an issue on our repository. We're always looking for ways to make YouTube Channel Notifier better for everyone!

Contributing

Contributions are warmly welcomed! If you'd like to help improve the project, please feel free to submit a Pull Request and we'll review it as soon as possible.

Testing

This project uses Pest for testing:

# Run all tests
./vendor/bin/pest