# YouTube Data API Setup Guide

This guide provides step-by-step instructions for setting up YouTube Data API integration for managing video comments.

---

## Table of Contents

1. [Overview](#overview)
2. [Prerequisites](#prerequisites)
3. [Google Cloud Console Setup](#google-cloud-console-setup)
4. [Environment Configuration](#environment-configuration)
5. [OAuth Redirect URI Configuration](#oauth-redirect-uri-configuration)
6. [Permissions & Scopes](#permissions--scopes)
7. [Development vs Production](#development-vs-production)
8. [Troubleshooting](#troubleshooting)

---

## Overview

**API Version:** YouTube Data API v3
**API Service Name:** `youtube`
**API Version:** `v3`
**Auth Method:** OAuth 2.0

### Features Supported
- Fetch channel videos
- Read video comments
- Reply to comments
- Automatic token refresh

---

## Prerequisites

- A Google account with a YouTube channel
- Access to [Google Cloud Console](https://console.cloud.google.com/)
- Videos uploaded to your YouTube channel

---

## Google Cloud Console Setup

### Step 1: Create a New Project

1. Navigate to [Google Cloud Console](https://console.cloud.google.com/)
2. Click on the project selector dropdown at the top
3. Click **"New Project"**
4. Enter project details:
   - **Project Name:** e.g., "PX360 YouTube Integration"
   - **Organization:** Select your organization (if applicable)
5. Click **"Create"**
6. Select your new project

### Step 2: Enable YouTube Data API

1. Go to **"APIs & Services"** → **"Library"**
2. Search for **"YouTube Data API v3"**
3. Click on it and click **"Enable"**

### Step 3: Configure OAuth Consent Screen

1. Go to **"APIs & Services"** → **"OAuth consent screen"**
2. Select **"External"** user type (unless you have a Google Workspace account)
3. Click **"Create"**
4. Fill in the required fields:
   - **App Name:** Your application name
   - **User Support Email:** Your support email
   - **App Logo:** Upload your logo
   - **Application Home Page:** Your website URL
   - **Authorized Domains:** Your domain(s)
   - **Developer Contact Email:** Your email
5. Click **"Save and Continue"**
6. Add scopes (click "Add or Remove Scopes"):
   - `https://www.googleapis.com/auth/youtube.readonly`
   - `https://www.googleapis.com/auth/youtube.force-ssl`
7. Click **"Save and Continue"**
8. Add test users (for development)
9. Click **"Save and Continue"**

### Step 4: Create OAuth 2.0 Credentials

1. Go to **"APIs & Services"** → **"Credentials"**
2. Click **"Create Credentials"** → **"OAuth client ID"**
3. Select **"Web application"**
4. Configure:
   - **Name:** e.g., "PX360 YouTube Client"
   - **Authorized JavaScript origins:**
     - Development: `http://127.0.0.1:8000`
     - Production: `https://yourdomain.com`
   - **Authorized redirect URIs:**
     - Development: `http://127.0.0.1:8000/social/callback/YT/`
     - Production: `https://yourdomain.com/social/callback/YT/`
5. Click **"Create"**
6. **Download the JSON file** - This is your credentials file

### Step 5: Save Credentials File

1. Rename the downloaded JSON file to `yt_client_secrets.json`
2. Place it in your project's `secrets/` directory:
   ```
   your_project/
   ├── secrets/
   │   ├── gmb_client_secrets.json
   │   └── yt_client_secrets.json
   └── ...
   ```

The JSON file structure:
```json
{
  "web": {
    "client_id": "xxxxx.apps.googleusercontent.com",
    "project_id": "your-project-id",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "your-client-secret",
    "redirect_uris": ["http://127.0.0.1:8000/social/callback/YT/"]
  }
}
```