YouTube Reporting Script - User Guide

This guide explains how to install Python, set up Google OAuth credentials, and run the script that reports videos from one or more YouTube channels.

Important: Automated reporting can lead to account suspension or bans if abused. Only use this tool responsibly and in accordance with YouTube’s Terms of Service.

1. Install Python

2. Install Required Libraries

pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client
  

3. Set Up Google OAuth

  1. Go to Google Cloud Console and create a new project.
  2. Enable the YouTube Data API v3 under APIs & Services → Library.
  3. Create OAuth credentials:
  4. Configure the OAuth consent screen:

4. Running the Script

The script takes channels as a positional argument. This can be:

python report.py CHANNEL_OR_FILE --secret client_secret.json
  

Optional Arguments

Examples

# Report a single channel by ID
python report.py UC1234567890abcdef --secret client_secret.json --message "Violation of YouTube policies"

# Report a single channel by URL
python report.py "https://www.youtube.com/@SomeChannel" --secret client_secret.json --message "Harassment and harmful content"

# Report multiple channels from a file (one per line)
python report.py bad_channels.txt --secret client_secret.json --message "Spam channel" --max-videos 3 --timeout 10

# Let the script prompt for the reason interactively
python report.py UCabcdef123456 --secret client_secret.json --message "Misleading information"

# Pre-specify a reason ID (skips the prompt)
python report.py UCabcdef123456 --secret client_secret.json --reason N --message "Contains nudity"
  

5. Authentication (First Run)

  1. A browser window will open asking you to log into your Google account (the one added as a Test User).
  2. Grant the requested permissions.
  3. A token.json file will be saved locally for future runs.

6. Validation

Successful reports will print a confirmation message in the terminal. Failed reports (e.g., invalid reason, quota issues, not authorized) will show an error message.