YouTube-Data-and-Transcript-API
Overview
This project provides a Python-based tool that interacts with the YouTube Data API to retrieve video data and transcripts. The goal is to enable easy access to video metadata and subtitles for analysis, research, or other applications.
Features
- Retrieve video metadata such as title, description, view count, like count, and more.
- Fetch video transcripts (subtitles) when available.
- Easy-to-use command-line interface.
Requirements
- Python 3.6 or higher
requests
librarygoogle-auth
library (for authenticated API access)youtube-transcript-api
library
Installation
-
Clone the repository:
git clone https://github.com/DevanshL/YouTube-Data-and-Transcript-API.git
cd YouTube-Data-and-Transcript-API
-
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
venv\Scripts\activate
source venv/bin/activate
-
Install the required Python packages:
pip install -r requirements.txt
-
Create a Google Cloud project and enable the YouTube Data API v3:
- Visit the Google Cloud Console.
- Create a new project (or use an existing one).
- Enable the YouTube Data API v3 for your project.
- Create API credentials and obtain your API key.
-
Setting Up the config.json File:
- Create a config.json file in the testing folder of the project.
- The config.json file should contain your API key. Here’s an example structure:
{
"api_key": "YOUR_YOUTUBE_API_KEY"
}
- Replace YOUR_YOUTUBE_API_KEY with your actual API key.
Usage
- Create a testing,.py file and use below code
from working.data import fetch_video_info
from working.transcript import fetch_transcript
import json
def load_api_key_from_json(file_path):
with open(file_path, 'r') as file:
data = json.load(file)
return data['youtube_api_key']
api_key = load_api_key_from_json('filepath')
video_id = ''
details = fetch_video_info(video_id, api_key)
transcript = fetch_transcript(video_id)
Contributing
If you would like to contribute to this project, feel free to open an issue or submit a pull request. Please ensure that your contributions align with the coding style and standards used in this project.
License
This project is licensed under the MIT License. See the LICENSE file for details.