Skip to content

๐Ÿค– Discord bot to receive YouTube Analytics statistics such as views, estimated ad revenue, & more!๐Ÿ•ต๐Ÿ“Š

License

Notifications You must be signed in to change notification settings

Prem-ium/youtube-analytics-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

YouTube

๐Ÿ“Š YouTube Analytics Discord Bot ๐Ÿค–

An awesome Discord Bot to fetch your YouTube Channel Analytics.

GitHub Sponsor Buy Me A Coffee


Features ๐Ÿ”ง

  • Collects data on various metrics, including views, revenue, subscriber growth, & more.
  • Helps analyze channel performance and identify areas for improvement.
  • User-friendly Discord Button UI.
  • Docker Support.
  • Developer Mode.
  • Efficient API Service Build Methods & Fail-Safe(s).
  • 24/7 Operation with Replit & Flask (Dev Mode + Build from Document).

Input Formatting & Bot Commands ๐Ÿ” 

Start every command with !. Optional command inputs are denoted with [brackets].

Check Example Output Folder for output examples.

  • MM / DD Format (MONTH/DATE, assumes current year) or MM / DD / YYYY:
   !stats 01/01 12/01
   !stats 01/01/2021 12/31/2021

Text Commands ๐Ÿ’ฌ

Command Description
!button [startDate] [endDate] Open Discord Button UI with all supported commands.
!stats [startDate] [endDate] ๐Ÿ“… YouTube Analytics Report Card: Displays views, watch-time, estimated revenue, CPM, ad-impressions, & more. Defaults to current month if no date range is specified.
!getMonth [month/year] Return stats for a specific month. ๐Ÿ“†
!lifetime Get lifetime stats. ๐Ÿงฎ
!topEarnings [startDate] [endDate] [Length to Return] Get a list of the highest revenue-earning videos on your channel. ๐Ÿ’ฐ
!geo_revenue [startDate] [endDate] [Length to Return] Get a list of your top revenue-earning countries. ๐ŸŒŽ๐Ÿ’ฐ
!geoReport [startDate] [endDate] [Length to Return] Detailed report of views, revenue, CPM, etc., by country. ๐ŸŒŽ
!adtype [startDate] [endDate] Get highest-performing ad types within specified time range. ๐Ÿ’ฐ
!demographics [startDate] [endDate] Get demographics data (age and gender) of viewers. ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง
!shares [startDate] [endDate] [Length to Return] Return list of top sharing methods for your videos. ๐Ÿ“ค
!search [startDate] [endDate] [Length to Return] Return YouTube search terms resulting in the most views of your video(s). ๐Ÿ”
!os [startDate] [endDate] [Length to Return] Return top operating systems watching your videos (ranked by views). ๐Ÿ“Ÿ
!playlist [startDate] [endDate] [Length to Return] Retrieve your Playlist Report.
!everything [startDate] [endDate] Return everything. Call every method and output all available data. โ™พ๏ธ
!refresh [token] Refresh API Token!
!switch Switch Dev Mode On/Off.
!help Send all Discord commands with explanations. ๐Ÿฆฎ
!ping Check if the bot is running.

Button Supported Commands ๐Ÿ”˜

Upon invoking the !button command, these are currently supported with a scene containing interactive buttons:

  • Analytics
  • Top Revenue Videos
  • Top Searched Keywords
  • Playlist Stats
  • Geographic Data
  • OS Statistics
  • Traffic Source
  • Shares
  • Top Geographic-Based Revenue

Set-Up & Installation ๐Ÿš€

To use this project, enable Google Cloud Console YouTube Analytics/Data API for your account and create a Discord bot to obtain a Discord token.

Google Cloud Console API Setup ๐ŸŒ

  1. Create a New Project

  2. Enable APIs and Services

    • Go to API & Services and select Enable APIs and Services.
  3. Enable YouTube APIs

    • Search for and enable both YouTube Data API and YouTube Analytics API.
  4. Configure OAuth Consent Screen

    • Return to API & Services page and click on Credentials.
    • Select User Type (External), then configure the OAuth Consent Screen with these YouTube Analytics-related scopes:
      • https://www.googleapis.com/auth/youtube.readonly
      • https://www.googleapis.com/auth/yt-analytics-monetary.readonly
  5. Complete OAuth Configuration

    • Finish the rest of the OAuth configuration.
  6. Create OAuth Credentials

    • Click Create Credentials, then select OAuth Credentials, followed by Desktop Application.
  7. Download OAuth JSON File

    • Download the JSON file and name it CLIENT_SECRET.json.
    • Place this file in the same folder as your program.
  8. Create API Key

    • Create Credentials โ†’ API Key.
    • Copy and assign the API key to the YOUTUBE_API_KEY environment variable.

Your Google Cloud Console API is now ready!

Discord Bot Setup ๐ŸŒ

  1. Create a Discord Application

    • Go to Discord Developers and create a new application. Name it "YouTube Apprise" or something suitable.
  2. Configure OAuth2

    • In your new application, go to the OAuth2 URL Generator section.
  3. Select Scopes and Permissions

    • Under Scopes, choose Bot and enable the required bot permissions, such as Send Messages and Read Message History.
  4. Generate Bot Invite Link

    • Copy the generated link from the Permissions section and use it to add the bot to your server.
  5. (Optional) Customize Profile Picture

    • Upload an appealing image in the Rich Presence section.
  6. Retrieve Bot Token

    • In the Bot section, obtain the bot token and assign it to the DISCORD_TOKEN environment variable.

Your Discord bot is now set up!

Installation ๐Ÿ› ๏ธ

The bot can be run using Python or Docker.

Python Script ๐Ÿ

  1. Clone this repository, cd into it, and install dependencies:

    git clone https://github.com/Prem-ium/youtube-analytics-bot
    cd youtube-analytics-bot
    pip install -r requirements.txt
  2. Configure your .env file (see below for options).

  3. Run the script:

    python main.py

Docker Setup ๐Ÿณ

  1. Generate Credentials JSON File

    • Run the Python script locally to generate the credentials.json file.
  2. Install Docker

    • Download and install Docker.
  3. Configure .env File

    • Configure your .env file with the necessary settings.
  4. Build Docker Image

    docker build -t youtube-apprise .
  5. Start Bot in Docker Container

    docker run -it --env-file ./.env --restart unless-stopped --name youtube-apprise youtube-apprise
  6. Running the Bot

    • To exit logs without stopping the bot, press CTRL-p followed by CTRL-q.

Environment Variables ๐Ÿ–ฅ๏ธ

Refer to the .env.example file for options.

Required .env:

Environment Variable Description
DISCORD_TOKEN Discord bot token
YOUTUBE_API_KEY YouTube Data API key

Optional .env:

Environment Variable Description
CLIENT_PATH Path to YouTube/Google Client Secret JSON file (defaults to current directory).
DEV_MODE Enable experimental features (requires CLIENT_SECRET).
CLIENT_SECRET Contents of CLIENT_SECRET.json.
DISCORD_CHANNEL Channel ID for developer mode.
KEEP_ALIVE Boolean value to keep the bot running (e.g., True for Replit).

Experiencing Issues? ๐Ÿ› ๏ธ

As of 9/8/2024, I have disabled the Issues privilege for the general public. For direct support on any bugs or issues, please consider sponsoring me as a GitHub Sponsor under the Silver or Gold tier. Sponsor


Donations โค๏ธ

If you appreciate my work, you can donate via:

  1. GitHub Sponsors - Donate via GitHub Sponsors.
  2. Buy Me A Coffee: Donate via Buy Me A Coffee.

License ๐Ÿ“

This repository is licensed under the BSD 3-Clause License.


Final Remarks โœจ

Please leave a โญ if you found this project cool! Made possible by Google's YouTube Analytics/Data APIs. May your analytics skyrocket! ๐Ÿ“ˆ