4.3 KiB
YouTube Live Chat in Terminal
ARCHIVED PROJECT
This project is considered archived and is no longer in active development.
Reason: It relies on the YouTube Data API v3, which has significant quota limitations (10,000 points/day). Continuous polling for live chat messages quickly exhausts this quota, making this approach unsustainable for long-term or frequent use.
Recommendation: For a more sustainable and quota-friendly solution, please refer to the
youtube-chat-webhook-v2project. That project explores alternative methods for fetching YouTube live chat data that do not rely on the official API and its restrictive quotas.
Project Description
This project aims to provide a customizable way to view YouTube Live Chat directly in your terminal. It is implemented in main.py.
Features
- Real-time Live Chat Display: Fetches and displays messages from YouTube Live Streams.
- OAuth 2.0 Authentication: Securely connects to your YouTube account to access your live stream data.
- Terminal-based Interface: View chat directly in your command-line interface.
Planned Features
- Color-coded usernames for better readability.
- Customizable terminal output (e.g., font size, message formatting).
- Ability to send messages back to the live chat.
- Local web overlay for use with streaming software like OBS.
Setup Instructions
1. Clone the Repository
Clone the project from your Gitea instance:
git clone https://gitea.ramforth.net/RamTech/youtube-chat-terminal.git
cd youtube-chat-terminal
2. Gitea Repository
This project is hosted on your Gitea instance at: https://gitea.ramforth.net/RamTech/youtube-chat-terminal
cd /home/joe/Cloud9/Documents/Obisdian/youtube_chat_terminal
python3 -m venv venv
source venv/bin/activate
(If you are using a shell like fish and encounter issues with source venv/bin/activate, try running bash first, then source venv/bin/activate within the bash session.)
3. Install Dependencies
With your virtual environment activated, install the required Python libraries:
pip install google-api-python-client google-auth-oauthlib google-auth-httplib2 prompt_toolkit
4. Google Cloud Project Setup
To allow this application to access YouTube Live Chat data, you need to set up a project in the Google Cloud Console:
- Go to the Google Cloud Console.
- Create a new project or select an existing one.
- Navigate to "APIs & Services" > "Library".
- Search for and enable the "YouTube Data API v3".
- Go to "APIs & Services" > "Credentials".
- Click "+ CREATE CREDENTIALS" and choose "OAuth client ID".
- For "Application type", select "Desktop app".
- Give it a name (e.g., "YouTube Chat Terminal App") and click "CREATE".
- Download the JSON file containing your Client ID and Client Secret. Rename this file to
client_secret.json.
5. Place client_secret.json
Move the downloaded client_secret.json file into the root directory of this project (i.e., /home/joe/Cloud9/Documents/Obisdian/youtube_chat_terminal/).
6. Initial Authentication
Run the main.py script for the first time to complete the OAuth 2.0 authentication flow:
python main.py
This will open a browser window, prompting you to log in with your Google account and grant permissions to the application. Upon successful authentication, a token.json file will be created in the project directory. This file stores your credentials for future use, so you won't need to re-authenticate every time.
Usage
To view the live chat of a YouTube stream, run the script and provide the YouTube Live Stream Video ID when prompted:
python main.py
The script will then continuously fetch and display live chat messages in your terminal.
Finding the YouTube Live Stream Video ID
- Go to the live stream on YouTube.
- The Video ID is the alphanumeric string in the URL after
v=(e.g., inhttps://www.youtube.com/watch?v=YOUR_VIDEO_ID,YOUR_VIDEO_IDis the ID you need).
Future Development
Contributions and suggestions are welcome! Planned enhancements include:
- Advanced terminal formatting and styling.
- Integration for sending chat messages.
- Development of a local web overlay.