Get YouTube Video Categories API Example in PHP

Building YouTube Video Categories API Extractor: In this tutorial, we’ll walk through a PHP code snippet designed to fetch YouTube video categories for a specific country based on its region code. This code utilizes the YouTube Data API to provide a list of available video categories tailored to the specified region. We will be fetching YouTube video category id along with category name.

What is a YouTube video category?

A YouTube video category serves as a system for classifying and organizing content on the YouTube platform. Its primary purpose is to facilitate the seamless discovery of videos aligned with users’ interests, streamlining navigation and content exploration. When users upload videos to YouTube, they have the option to designate a specific category that best characterizes the content.

Purpose of YouTube Video Categories

  1. Effective Organization: Video categories play a crucial role in structuring the extensive and diverse content available on YouTube. By assigning a category to a video, both content creators and viewers benefit from an organized platform where videos are grouped by themes or topics.
  2. Improved Discoverability: Users can easily explore videos within their areas of interest by leveraging video categories. This feature enhances the discoverability of content, enabling users to find videos that resonate with their preferences or hobbies.
  3. Informed Recommendations: YouTube’s recommendation algorithms consider video categories when suggesting content. As users engage with videos in a specific category, the platform may recommend additional content from similar or related categories.
  4. Customization for Creators and Users: Content creators have the flexibility to choose from a predefined list of video categories during the upload process. This customization ensures accurate labeling of content, making it more accessible for the target audience to discover and enjoy.

YouTube Video Categories Examples

  • Music: Videos featuring musical content such as music videos, covers, and live performances.
  • Gaming: Content related to video games, including gameplay, reviews, and walkthroughs.
  • Education: Informative and educational videos, tutorials, and lectures.
  • Entertainment: General entertainment content, including comedy sketches, vlogs, and variety shows.
  • News: Videos providing news updates, analysis, and commentary.
  • Science & Technology: Content centered around science, technology, and innovation.
  • Sports: Videos covering various sports, including highlights, analysis, and athlete interviews.
  • Travel & Events: Videos showcasing travel experiences, events, and adventures.

By consciously selecting appropriate categories, content creators contribute to a well-structured and user-friendly platform, fostering an environment where viewers can easily explore and enjoy diverse content tailored to their interests.

Requirements or Prerequisites

  • Basic knowledge of PHP
  • YouTube API Key

10 Easy Steps to Generate Your YouTube API Key

Steps to Build YouTube Video Category Finder

1. Setting up Authentication

// Build Authentication
$YOUTUBE_API_KEY = "Your_YouTube_API_Key";
$youtube_api_url = 'https://www.googleapis.com/youtube/v3/videoCategories';
$regionCode = "US"; // Country Code we want to fetch the YouTube categories for

In this section, replace “Your_YouTube_API_Key” with your actual YouTube Data API key. Additionally, set the desired country’s region code in the $regionCode variable. Set it to IN, if you want to get the YouTube video categories for India.

2. Building Query Parameters

// Build Query and its Parameters
$params = [
    'part' => 'snippet',
    'regionCode' => $regionCode,
    'key' => $YOUTUBE_API_KEY,
];
$url = $youtube_api_url . '?' . http_build_query($params);

This part constructs the query parameters required for the YouTube Data API request. We specify the part as ‘snippet’ to request basic details, and the regionCode to target video categories specific to the chosen country.

3. Making the cURL Request

// Build the cURL structure & run it
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

Here, cURL is used to make an HTTP request to the YouTube Data API with the constructed URL. The response is stored in the $response variable.

4. Handling the API Response

// Handle the cURL call's response by YouTube API
if ($response === false) {
    echo json_encode(['error' => 'Error: ' . curl_error($ch)]);
} else {
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($http_code !== 200) {
        echo json_encode(['error' => 'Error: Unexpected HTTP response code - ' . $http_code]);
    } else {
        $categories = json_decode($response, true)['items'] ?? [];

        if (empty($categories)) {
            echo json_encode(['error' => 'No categories found.']);
        } else {
            // Output the fetched categories in HTML select dropdown format
            $dropdownOptions = '<label for="videoCategory">YouTube Video Category for ' . $regionCode . ':</label>';
            $dropdownOptions .= '<select id="videoCategory" name="videoCategory">';

            foreach ($categories as $category) {
                $dropdownOptions .= '<option value="' . $category['id'] . '">' . htmlspecialchars($category['snippet']['title']) . '</option>';
            }

            $dropdownOptions .= '</select>';

            echo $dropdownOptions;
        }
    }
}

This section checks the HTTP response code. If it’s not 200 (OK), an error is displayed. If the response is successful, the JSON data is decoded, and the available youtube video category list for the specified country is extracted and shown in a dropdown.

10 Fresh YouTube Channel Ideas for Explosive Growth in 2024

5. Closing the cURL Session

curl_close($ch);

Finally, the cURL session is closed to free up resources.

Complete Code: YouTube Video Categories API

<?php

  $YOUTUBE_API_KEY = "Your_YouTube_API_Key";
  $youtube_api_url = 'https://www.googleapis.com/youtube/v3/videoCategories';
  $regionCode = "US"; // Country Code we want to fetch the YouTube categories for

    //Build Query and its Parameters
    $params = [
        'part' => 'snippet',
        'regionCode' => $regionCode,
        'key' => $YOUTUBE_API_KEY,
    ];
    $url = $youtube_api_url . '?' . http_build_query($params);

    // Build the cURL structure & run it
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);

    // Handle the cURL call's response by Youtube API
    if ($response === false) {
        echo json_encode(['error' => 'Error: ' . curl_error($ch)]);
    } else {
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        if ($http_code !== 200) {
            echo json_encode(['error' => 'Error: Unexpected HTTP response code - ' . $http_code]);
        } else {
            $categories = json_decode($response, true)['items'] ?? [];

            if (empty($categories)) {
                echo json_encode(['error' => 'No categories found.']);
            } else {
                // Output the fetched categories in HTML select dropdown format
                $dropdownOptions = '<label for="videoCategory">YouTube Video Category for '.$regionCode.':</label>';
                $dropdownOptions .= '<select id="videoCategory" name="videoCategory">';
                
                foreach ($categories as $category) {
                    $dropdownOptions .= '<option value="' . $category['id'] . '">' . htmlspecialchars($category['snippet']['title']) . '</option>';
                }

                $dropdownOptions .= '</select>';

                echo $dropdownOptions;
            }
        }
    }

    curl_close($ch);
?>

Conclusion

This PHP code provides a straightforward way to fetch YouTube video category list tailored to a specific country using the YouTube Data API. By customizing the region code, developers can integrate this functionality into their applications to provide localized options for users when selecting video categories.

Leave a Comment