Logo

Valentin Kolesnikov

← Back to Home

YouTube Explorer

Python • Terminal-app • Data parsing

Code Editor VS Code Version Pre-Release License Apache-2.0 Python 3.14.0

YouTube Explorer

YouTube Explorer is a console-based Python tool for programmatic exploration of YouTube content using YouTube Data API v3 (with OAuth 2.0 support), Return YouTube Dislike API, and YouTube Transcript API

It is designed for:

  • Working within YouTube API quota limits
  • Retrieving and filtering comments
  • Searching videos and retrieving playlists
  • Extracting metadata
  • Collecting subtitles

🗒️Table of Contents


❗Requirements

To use YouTube Explorer, you need the following:

  1. Your desire to use YouTube Explorer
  2. A valid YouTube Data API v3 key issued via Google Cloud Console
  3. Python 3.10 or newer (required when running from the repository)
  4. A stable Internet connection

Basic familiarity with command-line usage is recommended.


❓How to get the YouTube Data API v3 key?

  1. You need to follow Google Cloud Console
  2. You need to register for a Google account or log in to it.
  3. Next, you press the Create or select a project button in the center of the page → New project
  4. Next, you write the project name (Google can automatically specify the name, you do not have to write this name if you want) → If you do not have an organisation, just do not touch the Location item. → Press Create.
  5. Without leaving the site, you need to press Select project and choose your project. You write to the search engine: YouTube Data API v3Enable
  6. You will be redirected to the API configuration. In the left column, you should press Credentials.
  7. At the top, click Create credentialsAPI key.
  8. The end of the way! Just copy your API key and paste it into the Windows notepad or somewhere else.

Core capabilities

🔑YouTube API key handling

  • Initial validation of the provided API key before execution
  • Automatic creation and storage of a Key.bin file
  • Exclusion of re-entering the key after successful verification

🚪Quota inspection

  • Detects current availability of the YouTube API quota
  • Stops execution if further requests are not possible

🛡️OAuth 2.0 Integration

  • The application is designed to use OAuth 2.0 as the primary authentication method
  • If OAuth client secrets are not found, the system switches to the YouTube Data API Key method without interrupting the user

💌Comment Explorer

  • get a list of comments on YouTube videos in the console
  • filter comments by keyword
  • sort by time or by relevance
  • limit the number of output results
  • find out the channel's name where the video is hosted
  • Comment Explorer inform why an error occured if it is a cause

📹Video Explorer

  • Search for videos by your prompt
  • Perform region-specific searches
  • Apply optional filters such as: publication date range and video duration
  • Control the maximum number of returned search results
  • For one video you will receive the information block:
    1. The title of the video
    2. Direct URL
    3. View count
    4. Like count
    5. Dislike count
    6. Comment count
    7. Publication date
    8. Channel name and channel URL

📈Channel Explorer

  • Collect most of the channel statistics:
    • subscriber count
    • view count
    • description
    • registration date
    • Channel ID (UC...)
    • Handle (@...)
  • If necessary, you can search videos on the channel thanks to Video Explorer

📄Subtitles Explorer

  • Subtitles Explorer makes extracting text from videos effortless and flexible. You simply enter the two-letter language codes, such as en or ru
  • It gives you the choice between manually created subtitles for better accuracy or auto-generated transcripts. The system is designed to handle missing data intelligently
  • If your preferred transcript type is not available, it will not just show an error and stop. Instead, it detects the issue and offers the alternative version immediately, ensuring you can still retrieve the content you are looking for.

🔢Info Explorer

  • Enter a specific video URL to directly extract metadata without searching
  • Returns the complete information block detailed in Video Explorer and, additionally, the video description

⚙️ Functionality

  • AuthenticationOAuth 2.0 is prioritized for secure access. If OAuth credentials are not detected, the application uses the YouTube Data API key stored in Key.bin.
  • Link parsingvideo id, channel id (UC...), and handle (@...) are automatically extracted from the links you enter.
  • Search filters — You can filter videos by Region, Dimension (2D or 3D), Duration, and Date (using the smart calendar).
  • Channel search — Unlike standard search, you can perform keyword searches specifically inside a channel's library.
  • Smart SubtitlesYouTube Transcript API is integrated. It looks for manually created subtitles first. If they are missing, it asks if you want auto-generated ones.
  • DislikesReturn YouTube Dislike API is integrated to show dislike counts mixed with official data.
  • Comment filteringKeywords are used to filter comments and replies locally. The YouTube Data API does not do this filtering.
  • Quota check — A test request is made at the start to ensure your YouTube API quota is not exceeded before running.

🔧 What do I plan to make in the future?

  • The ability to save received comments and videos
  • Explore the channels
  • A more user-friendly, interactive command-line interface
  • Playlist Explorer
  • Subtitles Explorer

🖌️License

YouTubeExplorer is licensed under the Apache-2.0 license.

Versions released before 22-01-2026 were licensed under the MIT License.

Author: Valentin Kolesnikov

Original repository: YouTube_Explorer

For more details, see the LICENSE and NOTICE files.


❤️Contributing

Thank you for your interest in contributing to this project.

This project is licensed under the Apache License, Version 2.0. By submitting a pull request, you agree that your contribution will be licensed under the Apache License 2.0.

If you create a fork or derivative work based on this project, please provide clear attribution in your README.

A recommended attribution format is:

Original project: YouTube Explorer by Valentin Kolesnikov

This attribution helps avoid confusion about authorship and is considered good open-source practice.


🤝How to contribute

  1. Fork the repository.
  2. Create a branch for your change.
  3. Submit a pull request with a clear description.
  4. Make sure your changes are well documented.

❓Issues

I will be glad to see your opinions and ideas for new features or improvements. Moreover, please report bugs. Just open an issue and surprise me!

View on GitHub