A full-stack web application where users can log in with their Google account using OAuth 2.0, and the app automatically fetches their "Watch Later" YouTube videos. Users can tag each video or add custom descriptions.
- Google OAuth 2.0 authentication
- Automatic sync of "Watch Later" YouTube playlist
- Tag and add descriptions to videos
- Secure token management and automatic refresh
- Python 3.8+
- Google Developer account
- Go to the Google Cloud Console
- Create a new project
- Go to "APIs & Services" > "Credentials"
- Create OAuth 2.0 Client ID
- Set the authorized redirect URI to
http://localhost:8000/oauth/callback/
- Enable the YouTube Data API v3
- Clone this repository
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
- Windows:
venv\Scripts\activate
- Mac/Linux:
source venv/bin/activate
- Windows:
- Install dependencies:
pip install -r requirements.txt
- Copy the
.env.example
file to.env
and update it with your credentials:
# Django Secret Key
SECRET_KEY=your-secret-key-here
# Google OAuth Settings
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_REDIRECT_URI=http://localhost:8000/oauth/callback/
# Debug Settings
DEBUG=True
- Apply migrations:
python manage.py migrate
- Start the development server:
python manage.py runserver
- Access the application at
http://localhost:8000
- Log in with your Google account
- Your "Watch Later" YouTube videos will automatically sync
- Add tags and descriptions to videos
- Refresh the page to update with the latest saved videos from YouTube
When pushing this project to GitHub, make sure to:
- Never commit your
.env
file - it contains sensitive credentials - The
.gitignore
file already excludes the.env
file - Make sure new contributors copy the
.env.example
file to.env
and add their own credentials - If you add new environment variables, update the
.env.example
file without including actual secret values