Documentation - YouTube API

Choose your favorite language

Overview

Here is the list of the different parameters you can use with ScrapingBee's YouTube API.

You can also discover this API using our Postman collection covering every ScrapingBee's features.

Our YouTube API allows you to scrape YouTube search results, video metadata, transcripts, and trainability information in realtime.

We provide four endpoints:

  • Search endpoint (/api/v1/youtube/search) - Fetch YouTube search results
  • Metadata endpoint (/api/v1/youtube/metadata) - Fetch structured YouTube video metadata
  • Transcript endpoint (/api/v1/youtube/transcript) - Fetch YouTube video transcripts
  • Trainability endpoint (/api/v1/youtube/trainability) - Check video transcript availability

YouTube Search API

Quick start

To scrape YouTube search results, you only need two things:

Then, simply do this.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&search=python+tutorial"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'search': 'python tutorial',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'search': python tutorial,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}

Here is a breakdown of all the parameters you can use with the YouTube Search API:

name [type] (default)
Description
search [string] required
The search terms for Youtube search
360 [boolean] (false)
Return only 360-degree videos
3d [boolean] (false)
Return only 3D videos
4k [boolean] (false)
Return only 4K videos
creative_commons [boolean] (false)
Return only videos with Creative Commons license
duration ["<4" | "4-20" | ">20"] ("")
Filter by video duration (minutes)
hd [boolean] (false)
Return only HD videos
hdr [boolean] (false)
Return only HDR videos
live [boolean] (false)
Return only live streams
location [boolean] (false)
Return only videos with location metadata
purchased [boolean] (false)
Return only purchased content
sort_by ["rating" | "relevance" | "view_count" | "upload_date"] ("relevance")
Sorting method for results
subtitles [boolean] (false)
Only videos with subtitles/closed captions
type ["video" | "channel" | "playlist" | "movie"] ("")
Result type to return
upload_date ["today" | "last_hour" | "this_week" | "this_month" | "this_year"] ("")
Filter resulting by upload date
vr180 [boolean] (false)
Only VR180 videos

Response Example

The API will then respond with formatted JSON data:

{
  "results": [
    {
      "avatar": {
        "decoratedAvatarViewModel": {
          "a11yLabel": "Go to channel",
          "avatar": {
            "avatarViewModel": {
              "avatarImageSize": "AVATAR_SIZE_M",
              "image": {
                "sources": [
                  {
                    "height": 68,
                    "url": "https://yt3.ggpht.com/HCv0fXFEEcD0HRyF0_qR1K7b7qO3KCzmIoyH1DEJYB94CIUFhIE5i2t2IDIPX97W1-DK4hegww=s68-c-k-c0x00ffffff-no-rj",
                    "width": 68
                  }
                ]
              }
            }
          },
          "rendererContext": {
            "commandContext": {
              "onTap": {
                "innertubeCommand": {
                  "browseEndpoint": {
                    "browseId": "UCWv7vMbMWH4-V0ZXdmDpPBA",
                    "canonicalBaseUrl": "/@programmingwithmosh"
                  },
                  "clickTrackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeHKAQQAEw6e",
                  "commandMetadata": {
                    "webCommandMetadata": {
                      "apiUrl": "/youtubei/v1/browse",
                      "rootVe": 3611,
                      "url": "/@programmingwithmosh",
                      "webPageType": "WEB_PAGE_TYPE_CHANNEL"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "channelThumbnailSupportedRenderers": {
        "channelThumbnailWithLinkRenderer": {
          "accessibility": {
            "accessibilityData": {
              "label": "Go to channel"
            }
          },
          "navigationEndpoint": {
            "browseEndpoint": {
              "browseId": "UCWv7vMbMWH4-V0ZXdmDpPBA",
              "canonicalBaseUrl": "/@programmingwithmosh"
            },
            "clickTrackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeHKAQQAEw6e",
            "commandMetadata": {
              "webCommandMetadata": {
                "apiUrl": "/youtubei/v1/browse",
                "rootVe": 3611,
                "url": "/@programmingwithmosh",
                "webPageType": "WEB_PAGE_TYPE_CHANNEL"
              }
            }
          },
          "thumbnail": {
            "thumbnails": [
              {
                "height": 68,
                "url": "https://yt3.ggpht.com/HCv0fXFEEcD0HRyF0_qR1K7b7qO3KCzmIoyH1DEJYB94CIUFhIE5i2t2IDIPX97W1-DK4hegww=s68-c-k-c0x00ffffff-no-rj",
                "width": 68
              }
            ]
          }
        }
      },
      "detailedMetadataSnippets": [
        {
          "maxOneLine": true,
          "snippetHoverText": {
            "runs": [
              {
                "text": "From the video description"
              }
            ]
          },
          "snippetText": {
            "runs": [
              {
                "text": "Master "
              },
              {
                "bold": true,
                "text": "Python"
              },
              {
                "text": " from scratch No fluff—just clear, practical coding skills to kickstart your journey! ❤️ Join this channel to get ..."
              }
            ]
          }
        }
      ],
      "expandableMetadata": {
        "expandableMetadataRenderer": {
          "collapseButton": {
            "buttonRenderer": {
              "accessibilityData": {
                "accessibilityData": {
                  "label": "Less"
                }
              },
              "icon": {
                "iconType": "EXPAND_LESS"
              },
              "isDisabled": false,
              "size": "SIZE_DEFAULT",
              "style": "STYLE_DEFAULT",
              "trackingParams": "CMcGEPBbIhMI36nD5sa3kAMVBfsWCR0SMSXh"
            }
          },
          "colorData": {
            "darkColorPalette": {
              "iconActivatedColor": 4293977599,
              "iconDisabledColor": 4065544544,
              "iconInactiveColor": 4287200411,
              "primaryTitleColor": 4293977599,
              "secondaryTitleColor": 4290028492,
              "section1Color": 4280883519,
              "section2Color": 4280357939,
              "section3Color": 4279832358,
              "section4Color": 4279241241
            },
            "lightColorPalette": {
              "iconActivatedColor": 4282000217,
              "iconDisabledColor": 4072058561,
              "iconInactiveColor": 4286937238,
              "primaryTitleColor": 4279504921,
              "secondaryTitleColor": 4285093508,
              "section1Color": 4294769663,
              "section2Color": 4294242808,
              "section3Color": 4293650418,
              "section4Color": 4293123563
            },
            "saturatedColorPalettes": {
              "darkThemePalette": {
                "additiveBackground": 729761225,
                "baseBackground": 4279042588,
                "cardOutline": 176113097,
                "collectionStack": 4283447918,
                "dropShadow": 427771337,
                "invertedBackground": 4289297635,
                "keyLight": 4282263645,
                "outline": 1071368946,
                "overlayBackground": 3424455222,
                "overlayTextPrimary": 4294373631,
                "raisedBackground": 4280093238,
                "textDisabled": 2145110770,
                "textPrimary": 4293648634,
                "textPrimaryInverse": 4279042588,
                "textSecondary": 4290882781
              },
              "lightThemePalette": {
                "additiveBackground": 561989065,
                "baseBackground": 4294373631,
                "cardOutline": 176113097,
                "collectionStack": 4288842688,
                "dropShadow": 427771337,
                "invertedBackground": 4283111823,
                "keyLight": 4290882781,
                "outline": 858527307,
                "overlayBackground": 3424455222,
                "overlayTextPrimary": 4294373631,
                "raisedBackground": 4294373631,
                "textDisabled": 2133595723,
                "textPrimary": 4280093238,
                "textPrimaryInverse": 4294373631,
                "textSecondary": 4283447918
              }
            },
            "vibrantColorPalette": {
              "iconActivatedColor": 4293977599,
              "iconDisabledColor": 4064228684,
              "iconInactiveColor": 4286475161,
              "primaryTitleColor": 4293977599,
              "secondaryTitleColor": 4291540965,
              "section1Color": 4283642751,
              "section2Color": 4283116914,
              "section3Color": 4282525798,
              "section4Color": 4282000217
            }
          },
          "expandButton": {
            "buttonRenderer": {
              "accessibilityData": {
                "accessibilityData": {
                  "label": "More"
                }
              },
              "icon": {
                "iconType": "EXPAND_MORE"
              },
              "isDisabled": false,
              "size": "SIZE_DEFAULT",
              "style": "STYLE_DEFAULT",
              "trackingParams": "CMgGEPBbIhMI36nD5sa3kAMVBfsWCR0SMSXh"
            }
          },
          "expandedContent": {
            "horizontalCardListRenderer": {
              "cards": [
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CPcGENDQBhgAIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_26866.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLA4-8JL41at5KzmN7PV73femAg7MA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "0:00"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Introduction"
                        }
                      ]
                    },
                    "trackingParams": "CPcGENDQBhgAIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CPYGENDQBhgBIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=56s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 56,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=56&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_57900.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBHvhpwPGcLWWeSYZwVntOAcJLL7Q",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "0:56"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "What is Python?"
                        }
                      ]
                    },
                    "trackingParams": "CPYGENDQBhgBIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CPUGENDQBhgCIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=251s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 251,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=251&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_251366.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB3BIf5o-pRUfAKfQPWFCHEM-95aw",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "4:11"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Installing Python"
                        }
                      ]
                    },
                    "trackingParams": "CPUGENDQBhgCIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CPQGENDQBhgDIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=336s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 336,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=336&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_336766.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB5yZF86WNNgoJ1Ydgp_8Gg3oGJ9A",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "5:36"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Python Interpreter"
                        }
                      ]
                    },
                    "trackingParams": "CPQGENDQBhgDIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CPMGENDQBhgEIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=450s&pp=0gcJCfMAdtSAhXgk",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "playerParams": "0gcJCfMAdtSAhXgk",
                        "startTimeSeconds": 450,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=450&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_451766.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDqmU1Q85N9zkzVRTcEfkUCiKDQOA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "7:30"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Code Editors"
                        }
                      ]
                    },
                    "trackingParams": "CPMGENDQBhgEIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CPIGENDQBhgFIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=529s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 529,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=529&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_533200.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC0-5X9tnI2IPd3LRnyt4fKLStROA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "8:49"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Your First Python Program"
                        }
                      ]
                    },
                    "trackingParams": "CPIGENDQBhgFIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CPEGENDQBhgGIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=745s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 745,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=745&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_749166.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDwp4DkRzfGoIB5KBSkVuzP8qSWmg",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "12:25"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Python Extension"
                        }
                      ]
                    },
                    "trackingParams": "CPEGENDQBhgGIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CPAGENDQBhgHIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=866s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 866,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=866&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_870133.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAbiobgQnkuKBdq1NUCiNLSHny_8w",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "14:26"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Linting Python Code"
                        }
                      ]
                    },
                    "trackingParams": "CPAGENDQBhgHIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CO8GENDQBhgIIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=1120s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 1120,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=1120&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_1124166.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAiWPy929fFtlkM_JoFDTaU9IS8YA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "18:40"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Formatting Python Code"
                        }
                      ]
                    },
                    "trackingParams": "CO8GENDQBhgIIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CO4GENDQBhgJIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=1371s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 1371,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=1371&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_1374200.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDahb9qDNhaJjrEQBum8nzo5YNXbA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "22:51"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Running Python Code"
                        }
                      ]
                    },
                    "trackingParams": "CO4GENDQBhgJIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CO0GENDQBhgKIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=1470s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 1470,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=1470&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_1475066.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCH5xmcQXcsPQga4V6-N7kOcNkTHA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "24:30"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Python Implementations"
                        }
                      ]
                    },
                    "trackingParams": "CO0GENDQBhgKIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COwGENDQBhgLIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=1619s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 1619,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=1619&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_1621033.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDfGzIfbPnnoLPChVgpBfzfCz99TQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "26:59"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "How Python Code is Executed"
                        }
                      ]
                    },
                    "trackingParams": "COwGENDQBhgLIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COsGENDQBhgMIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=1785s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 1785,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=1785&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_1788066.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCJxVoSwIugjO0xMAdNJG9dHy0QJw",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "29:45"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Quiz"
                        }
                      ]
                    },
                    "trackingParams": "COsGENDQBhgMIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": true,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COoGENDQBhgNIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=1877s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 1877,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=1877&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_1880966.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDwQ92VhEuZEG3FbvNALcQ5vNQrvA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "31:17"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Python Mastery Course"
                        }
                      ]
                    },
                    "trackingParams": "COoGENDQBhgNIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COkGENDQBhgOIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=1904s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 1904,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=1904&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_1906933.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLA99OvdcfB6HkBmh_2rb0rDuGG4nQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "31:44"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Variables"
                        }
                      ]
                    },
                    "trackingParams": "COkGENDQBhgOIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COgGENDQBhgPIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=2088s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 2088,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=2088&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_2090900.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAWw6jb-68k5KxC2ApxasTGaDohAQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "34:48"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Variable Names"
                        }
                      ]
                    },
                    "trackingParams": "COgGENDQBhgPIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COcGENDQBhgQIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=2271s&pp=0gcJCfMAdtSAhXgk",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "playerParams": "0gcJCfMAdtSAhXgk",
                        "startTimeSeconds": 2271,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=2271&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_2272933.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBP8KQyjxRnI1sD_X106lWKgHHahg",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "37:51"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Strings"
                        }
                      ]
                    },
                    "trackingParams": "COcGENDQBhgQIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COYGENDQBhgRIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=2600s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 2600,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=2600&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_2601833.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLANvwcTIarp1XKlcubNNfVEah0l1A",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "43:20"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Escape Sequences"
                        }
                      ]
                    },
                    "trackingParams": "COYGENDQBhgRIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COUGENDQBhgSIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=2761s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 2761,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=2761&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_2763800.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLD_7ooaVAKUL1Lzq6IHgF8wFHI_yA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "46:01"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Formatted Strings"
                        }
                      ]
                    },
                    "trackingParams": "COUGENDQBhgSIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COQGENDQBhgTIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=2889s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 2889,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=2889&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_2891766.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAJ_vBn83wnCgZQjvblzdvIYTSAkQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "48:09"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "String Methods"
                        }
                      ]
                    },
                    "trackingParams": "COQGENDQBhgTIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COMGENDQBhgUIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=3243s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 3243,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=3243&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_3245233.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBHWT84fxrmihGe64kTR5R1rqX7Sg",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "54:03"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Numbers"
                        }
                      ]
                    },
                    "trackingParams": "COMGENDQBhgUIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COIGENDQBhgVIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=3410s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 3410,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=3410&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_3411200.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCepzshEW8eLl-zJ0I84iMaB2Gg1A",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "56:50"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Working With Numbers"
                        }
                      ]
                    },
                    "trackingParams": "COIGENDQBhgVIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COEGENDQBhgWIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=3539s&pp=0gcJCfMAdtSAhXgk",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "playerParams": "0gcJCfMAdtSAhXgk",
                        "startTimeSeconds": 3539,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=3539&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_3542266.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCUD5VRcDGcQg3L2UbbMr6u0xfWeA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "58:59"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Type Conversion"
                        }
                      ]
                    },
                    "trackingParams": "COEGENDQBhgWIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "COAGENDQBhgXIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=3843s&pp=0gcJCfMAdtSAhXgk",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "playerParams": "0gcJCfMAdtSAhXgk",
                        "startTimeSeconds": 3843,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=3843&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_3845266.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBEi5k1bkOlCFmBD_KKOErWKv-Wdw",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:04:03"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Quiz"
                        }
                      ]
                    },
                    "trackingParams": "COAGENDQBhgXIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CN8GENDQBhgYIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=4003s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 4003,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=4003&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_4004200.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC_fWgFDZiWlRbrhMUEuJXrWi2Nuw",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:06:43"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Comparison Operators"
                        }
                      ]
                    },
                    "trackingParams": "CN8GENDQBhgYIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CN4GENDQBhgZIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=4126s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 4126,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=4126&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_4129066.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLD1YFcn8kHXwVA10VU6ekBxKOhWqg",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:08:46"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Conditional Statements"
                        }
                      ]
                    },
                    "trackingParams": "CN4GENDQBhgZIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CN0GENDQBhgaIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=4376s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 4376,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=4376&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_4378033.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAZpWv4kXWWTbLs5yHLSmzttIuCPg",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:12:56"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Ternary Operator"
                        }
                      ]
                    },
                    "trackingParams": "CN0GENDQBhgaIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNwGENDQBhgbIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=4504s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 4504,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=4504&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_4506133.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLD9_6SInTAABChqtSFmX-F9dJywXQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:15:04"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Logical Operators"
                        }
                      ]
                    },
                    "trackingParams": "CNwGENDQBhgbIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNsGENDQBhgcIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=4747s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 4747,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=4747&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_4748966.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB9MfXZavZo9DahP7QzxvqrBRKmqQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:19:07"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Short-circuit Evaluations"
                        }
                      ]
                    },
                    "trackingParams": "CNsGENDQBhgcIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNoGENDQBhgdIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=4873s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 4873,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=4873&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_4875933.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBb9sMZc185-jNL9ujUq261ORlLIw",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:21:13"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Chaining Comparison Operators"
                        }
                      ]
                    },
                    "trackingParams": "CNoGENDQBhgdIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNkGENDQBhgeIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=4955s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 4955,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=4955&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_4957900.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBYO6qGn_m5DYkyuVxyIcW9cgdTXA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:22:35"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Quiz"
                        }
                      ]
                    },
                    "trackingParams": "CNkGENDQBhgeIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNgGENDQBhgfIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=5058s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 5058,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=5058&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_5060866.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAYaMlYcazhSOGh5bT7fPjzNRqCag",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:24:18"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "For Loops"
                        }
                      ]
                    },
                    "trackingParams": "CNgGENDQBhgfIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNcGENDQBhggIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=5276s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 5276,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=5276&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_5277866.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLArdfQErflnNGPGCmldjKNxA5IIAQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:27:56"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "For..Else"
                        }
                      ]
                    },
                    "trackingParams": "CNcGENDQBhggIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNYGENDQBhghIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=5442s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 5442,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=5442&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_5444800.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDWJcsT9_9D3zx4WEENjLrVrADsvg",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:30:42"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Nested Loops"
                        }
                      ]
                    },
                    "trackingParams": "CNYGENDQBhghIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNUGENDQBhgiIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=5606s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 5606,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=5606&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_5607866.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDsJDy0wq1Cp7Puhq0olR9f7jAIXA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:33:26"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Iterables"
                        }
                      ]
                    },
                    "trackingParams": "CNUGENDQBhgiIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNQGENDQBhgjIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=5794s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 5794,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=5794&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_5796733.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBy-bERr2D__tebsiCdq05xKI8qPQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:36:34"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "While Loops"
                        }
                      ]
                    },
                    "trackingParams": "CNQGENDQBhgjIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNMGENDQBhgkIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=6093s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 6093,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=6093&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_6094833.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC3goGp43lMMOF7NWo8K-d08ujmIQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:41:33"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Infinite Loops"
                        }
                      ]
                    },
                    "trackingParams": "CNMGENDQBhgkIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNIGENDQBhglIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=6190s&pp=0gcJCfMAdtSAhXgk",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "playerParams": "0gcJCfMAdtSAhXgk",
                        "startTimeSeconds": 6190,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=6190&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_6192166.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCz-VsTZUyZp2yxbG24QGtsh_obMw",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:43:10"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Exercise"
                        }
                      ]
                    },
                    "trackingParams": "CNIGENDQBhglIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNEGENDQBhgmIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=6313s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 6313,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=6313&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_6316133.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBMMyoXGnE0j1u1l1cAJBxVuWIoxQ",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:45:13"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Defining Functions"
                        }
                      ]
                    },
                    "trackingParams": "CNEGENDQBhgmIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CNAGENDQBhgnIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=6457s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 6457,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=6457&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_6458100.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB_B94BHLXJzC1Eh9a2AjC8l0Lh4Q",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:47:37"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Arguments"
                        }
                      ]
                    },
                    "trackingParams": "CNAGENDQBhgnIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CM8GENDQBhgoIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=6597s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 6597,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=6597&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_6599066.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB5chh9w73ExygSvFuMrqgkI2c5Jw",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:49:57"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Types of Functions"
                        }
                      ]
                    },
                    "trackingParams": "CM8GENDQBhgoIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CM4GENDQBhgpIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=6839s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 6839,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=6839&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_6842066.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBMcKPSwJO-OO3cplwV4r7U5LjYOA",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:53:59"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Keyword Arguments"
                        }
                      ]
                    },
                    "trackingParams": "CM4GENDQBhgpIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CM0GENDQBhgqIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=6959s&pp=0gcJCfMAdtSAhXgk",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "playerParams": "0gcJCfMAdtSAhXgk",
                        "startTimeSeconds": 6959,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=6959&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_6963000.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB3p3gzCPQwdDrCn5cJkbve4EBwNw",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:55:59"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "Default Arguments"
                        }
                      ]
                    },
                    "trackingParams": "CM0GENDQBhgqIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                },
                {
                  "macroMarkersListItemRenderer": {
                    "isHighlighted": false,
                    "layout": "MACRO_MARKERS_LIST_ITEM_RENDERER_LAYOUT_VERTICAL",
                    "onTap": {
                      "clickTrackingParams": "CMwGENDQBhgrIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "commandMetadata": {
                        "webCommandMetadata": {
                          "rootVe": 3832,
                          "url": "/watch?v=K5KVEU3aaeQ&t=7054s",
                          "webPageType": "WEB_PAGE_TYPE_WATCH"
                        }
                      },
                      "watchEndpoint": {
                        "startTimeSeconds": 7054,
                        "videoId": "K5KVEU3aaeQ",
                        "watchEndpointSupportedOnesieConfig": {
                          "html5PlaybackOnesieConfig": {
                            "commonConfig": {
                              "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=7054&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                            }
                          }
                        }
                      }
                    },
                    "thumbnail": {
                      "thumbnails": [
                        {
                          "height": 188,
                          "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_7056966.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAcg82s8hBSf_7dD-6il8FWDbwIQw",
                          "width": 336
                        }
                      ]
                    },
                    "timeDescription": {
                      "runs": [
                        {
                          "text": "1:57:34"
                        }
                      ]
                    },
                    "title": {
                      "runs": [
                        {
                          "text": "xargs"
                        }
                      ]
                    },
                    "trackingParams": "CMwGENDQBhgrIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                  }
                }
              ],
              "nextButton": {
                "buttonRenderer": {
                  "icon": {
                    "iconType": "CHEVRON_RIGHT"
                  },
                  "isDisabled": false,
                  "size": "SIZE_DEFAULT",
                  "style": "STYLE_DEFAULT",
                  "trackingParams": "CMoGEPBbIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                }
              },
              "previousButton": {
                "buttonRenderer": {
                  "icon": {
                    "iconType": "CHEVRON_LEFT"
                  },
                  "isDisabled": false,
                  "size": "SIZE_DEFAULT",
                  "style": "STYLE_DEFAULT",
                  "trackingParams": "CMsGEPBbIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                }
              },
              "style": {
                "type": "HORIZONTAL_CARD_LIST_STYLE_TYPE_ENGAGEMENT_PANEL_SECTION"
              },
              "trackingParams": "CMkGEJFaIhMI36nD5sa3kAMVBfsWCR0SMSXh"
            }
          },
          "header": {
            "collapsedLabel": {
              "runs": [
                {
                  "text": "Matching chapter"
                }
              ]
            },
            "collapsedThumbnail": {
              "thumbnails": [
                {
                  "height": 188,
                  "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hqdefault_57900.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBHvhpwPGcLWWeSYZwVntOAcJLL7Q",
                  "width": 336
                }
              ]
            },
            "collapsedTitle": {
              "runs": [
                {
                  "text": "0:56 What is Python?"
                }
              ]
            },
            "expandedTitle": {
              "runs": [
                {
                  "text": "Matching chapter"
                }
              ]
            },
            "showLeadingCollapsedLabel": true
          },
          "loggingDirectives": {
            "trackingParams": "CMYGEO_DByITCN-pw-bGt5ADFQX7FgkdEjEl4Q==",
            "visibility": {
              "types": "12"
            }
          },
          "trackingParams": "CMYGEO_DByITCN-pw-bGt5ADFQX7FgkdEjEl4Q==",
          "useCustomColors": true
        }
      },
      "inlinePlaybackEndpoint": {
        "clickTrackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeEyBnNlYXJjaFIPcHl0aG9uIHR1dG9yaWFsmgEDEPQkygEEABMOng==",
        "commandMetadata": {
          "webCommandMetadata": {
            "rootVe": 3832,
            "url": "/watch?v=K5KVEU3aaeQ&t=56s&pp=YAHIAQGiBhUB9JltFJnoDqTAmxc8_PTmQFcIHko%3D",
            "webPageType": "WEB_PAGE_TYPE_WATCH"
          }
        },
        "watchEndpoint": {
          "params": "qgMPcHl0aG9uIHR1dG9yaWFsugMLCNfMkaf05Iry_gG6AwsIgsamscruk-W3AboDCwjtq5GD2ojXj4sBugMLCOPb9_P1pYGAqwG6AwsIvOu-6dKKx_2tAboDCgj1keaAqu3dp2-6AwoI44v5kI3EwbkFugMKCImavvWxwKSkEroDCwju15y5zf-S2pwBugMKCIXLrbmAt8KwH7oDCgih5-Lxi8Wb5FW6AwoIh9jOqdnwl7J5ugMKCJ2ojva_67n2JboDCgj3nt-j4Y67tH26AwsIy9PS_ujSyYmZAboDCgjO5Z7c9c2ajxu6AwoIzvqNppyJ88dGugMKCK_ZhNXdlvHQXLoDCwiv6J_T3fzQ1ZIB8gMFDap9BT8%3D",
          "playerExtraUrlParams": [
            {
              "key": "inline",
              "value": "1"
            }
          ],
          "playerParams": "YAHIAQGiBhUB9JltFJnoDqTAmxc8_PTmQFcIHko%3D",
          "startTimeSeconds": 56,
          "videoId": "K5KVEU3aaeQ",
          "watchEndpointSupportedOnesieConfig": {
            "html5PlaybackOnesieConfig": {
              "commonConfig": {
                "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=56&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
              }
            }
          }
        }
      },
      "lengthText": {
        "accessibility": {
          "accessibilityData": {
            "label": "2 hours, 2 minutes, 21 seconds"
          }
        },
        "simpleText": "2:02:21"
      },
      "longBylineText": {
        "runs": [
          {
            "navigationEndpoint": {
              "browseEndpoint": {
                "browseId": "UCWv7vMbMWH4-V0ZXdmDpPBA",
                "canonicalBaseUrl": "/@programmingwithmosh"
              },
              "clickTrackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeHKAQQAEw6e",
              "commandMetadata": {
                "webCommandMetadata": {
                  "apiUrl": "/youtubei/v1/browse",
                  "rootVe": 3611,
                  "url": "/@programmingwithmosh",
                  "webPageType": "WEB_PAGE_TYPE_CHANNEL"
                }
              }
            },
            "text": "Programming with Mosh"
          }
        ]
      },
      "menu": {
        "menuRenderer": {
          "accessibility": {
            "accessibilityData": {
              "label": "Action menu"
            }
          },
          "items": [
            {
              "menuServiceItemRenderer": {
                "icon": {
                  "iconType": "ADD_TO_QUEUE_TAIL"
                },
                "serviceEndpoint": {
                  "clickTrackingParams": "CP0GEP6YBBgRIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                  "commandMetadata": {
                    "webCommandMetadata": {
                      "sendPost": true
                    }
                  },
                  "signalServiceEndpoint": {
                    "actions": [
                      {
                        "addToPlaylistCommand": {
                          "listType": "PLAYLIST_EDIT_LIST_TYPE_QUEUE",
                          "onCreateListCommand": {
                            "clickTrackingParams": "CP0GEP6YBBgRIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                            "commandMetadata": {
                              "webCommandMetadata": {
                                "apiUrl": "/youtubei/v1/playlist/create",
                                "sendPost": true
                              }
                            },
                            "createPlaylistServiceEndpoint": {
                              "params": "CAQ%3D",
                              "videoIds": [
                                "K5KVEU3aaeQ"
                              ]
                            }
                          },
                          "openMiniplayer": true,
                          "videoCommand": {
                            "clickTrackingParams": "CP0GEP6YBBgRIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                            "commandMetadata": {
                              "webCommandMetadata": {
                                "rootVe": 3832,
                                "url": "/watch?v=K5KVEU3aaeQ",
                                "webPageType": "WEB_PAGE_TYPE_WATCH"
                              }
                            },
                            "watchEndpoint": {
                              "videoId": "K5KVEU3aaeQ",
                              "watchEndpointSupportedOnesieConfig": {
                                "html5PlaybackOnesieConfig": {
                                  "commonConfig": {
                                    "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
                                  }
                                }
                              }
                            }
                          },
                          "videoId": "K5KVEU3aaeQ",
                          "videoIds": [
                            "K5KVEU3aaeQ"
                          ]
                        },
                        "clickTrackingParams": "CP0GEP6YBBgRIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng=="
                      }
                    ],
                    "signal": "CLIENT_SIGNAL"
                  }
                },
                "text": {
                  "runs": [
                    {
                      "text": "Add to queue"
                    }
                  ]
                },
                "trackingParams": "CP0GEP6YBBgRIhMI36nD5sa3kAMVBfsWCR0SMSXh"
              }
            },
            {
              "menuNavigationItemRenderer": {
                "icon": {
                  "iconType": "BOOKMARK_BORDER"
                },
                "navigationEndpoint": {
                  "clickTrackingParams": "CPwGEJSsCRgSIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                  "commandMetadata": {
                    "webCommandMetadata": {
                      "rootVe": 83769,
                      "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den&hl=en",
                      "webPageType": "WEB_PAGE_TYPE_UNKNOWN"
                    }
                  },
                  "signInEndpoint": {
                    "nextEndpoint": {
                      "clickTrackingParams": "CPwGEJSsCRgSIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "showSheetCommand": {
                        "panelLoadingStrategy": {
                          "requestTemplate": {
                            "panelId": "PAadd_to_playlist",
                            "params": "-gYNCgtLNUtWRVUzYWFlUQ%3D%3D"
                          }
                        }
                      }
                    }
                  }
                },
                "text": {
                  "runs": [
                    {
                      "text": "Save to playlist"
                    }
                  ]
                },
                "trackingParams": "CPwGEJSsCRgSIhMI36nD5sa3kAMVBfsWCR0SMSXh"
              }
            },
            {
              "menuServiceItemDownloadRenderer": {
                "serviceEndpoint": {
                  "clickTrackingParams": "CPsGENGqBRgTIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                  "offlineVideoEndpoint": {
                    "onAddCommand": {
                      "clickTrackingParams": "CPsGENGqBRgTIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                      "getDownloadActionCommand": {
                        "isCrossDeviceDownload": false,
                        "params": "CAIQAA%3D%3D",
                        "videoId": "K5KVEU3aaeQ"
                      }
                    },
                    "videoId": "K5KVEU3aaeQ"
                  }
                },
                "trackingParams": "CPsGENGqBRgTIhMI36nD5sa3kAMVBfsWCR0SMSXh"
              }
            },
            {
              "menuServiceItemRenderer": {
                "hasSeparator": true,
                "icon": {
                  "iconType": "SHARE"
                },
                "serviceEndpoint": {
                  "clickTrackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeHKAQQAEw6e",
                  "commandMetadata": {
                    "webCommandMetadata": {
                      "apiUrl": "/youtubei/v1/share/get_share_panel",
                      "sendPost": true
                    }
                  },
                  "shareEntityServiceEndpoint": {
                    "commands": [
                      {
                        "clickTrackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeHKAQQAEw6e",
                        "openPopupAction": {
                          "beReused": true,
                          "popup": {
                            "unifiedSharePanelRenderer": {
                              "showLoadingSpinner": true,
                              "trackingParams": "CPoGEI5iIhMI36nD5sa3kAMVBfsWCR0SMSXh"
                            }
                          },
                          "popupType": "DIALOG"
                        }
                      }
                    ],
                    "serializedShareEntity": "CgtLNUtWRVUzYWFlUQ%3D%3D"
                  }
                },
                "text": {
                  "runs": [
                    {
                      "text": "Share"
                    }
                  ]
                },
                "trackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeE="
              }
            }
          ],
          "trackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeE="
        }
      },
      "navigationEndpoint": {
        "clickTrackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeEyBnNlYXJjaFIPcHl0aG9uIHR1dG9yaWFsmgEDEPQkygEEABMOng==",
        "commandMetadata": {
          "webCommandMetadata": {
            "rootVe": 3832,
            "url": "/watch?v=K5KVEU3aaeQ&t=56s&pp=ygUPcHl0aG9uIHR1dG9yaWFs",
            "webPageType": "WEB_PAGE_TYPE_WATCH"
          }
        },
        "watchEndpoint": {
          "params": "uAI4qgMPcHl0aG9uIHR1dG9yaWFsugMLCNfMkaf05Iry_gG6AwsIgsamscruk-W3AboDCwjtq5GD2ojXj4sBugMLCOPb9_P1pYGAqwG6AwsIvOu-6dKKx_2tAboDCgj1keaAqu3dp2-6AwoI44v5kI3EwbkFugMKCImavvWxwKSkEroDCwju15y5zf-S2pwBugMKCIXLrbmAt8KwH7oDCgih5-Lxi8Wb5FW6AwoIh9jOqdnwl7J5ugMKCJ2ojva_67n2JboDCgj3nt-j4Y67tH26AwsIy9PS_ujSyYmZAboDCgjO5Z7c9c2ajxu6AwoIzvqNppyJ88dGugMKCK_ZhNXdlvHQXLoDCwiv6J_T3fzQ1ZIB8gMFDap9BT8%3D",
          "playerParams": "ygUPcHl0aG9uIHR1dG9yaWFs",
          "startTimeSeconds": 56,
          "videoId": "K5KVEU3aaeQ",
          "watchEndpointSupportedOnesieConfig": {
            "html5PlaybackOnesieConfig": {
              "commonConfig": {
                "url": "https://rr2---sn-ab5l6ndr.googlevideo.com/initplayback?source=youtube&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odepv=1&id=2b9295114dda69e4&ip=104.171.151.46&osts=56&mt=1761126663&oweuc=&pxtags=Cg4KAnR4Egg1MTYzMTI3MA&rxtags=Cg4KAnR4Egg1MTYzMTI2NA%2CCg4KAnR4Egg1MTYzMTI2NQ%2CCg4KAnR4Egg1MTYzMTI2Ng%2CCg4KAnR4Egg1MTYzMTI2Nw%2CCg4KAnR4Egg1MTYzMTI2OA%2CCg4KAnR4Egg1MTYzMTI2OQ%2CCg4KAnR4Egg1MTYzMTI3MA%2CCg4KAnR4Egg1MTYzMTI3MQ%2CCg4KAnR4Egg1MTYzMTI3Mg"
              }
            }
          }
        }
      },
      "ownerBadges": [
        {
          "metadataBadgeRenderer": {
            "accessibilityData": {
              "label": "Verified"
            },
            "icon": {
              "iconType": "CHECK_CIRCLE_THICK"
            },
            "style": "BADGE_STYLE_TYPE_VERIFIED",
            "tooltip": "Verified",
            "trackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeE="
          }
        }
      ],
      "ownerText": {
        "runs": [
          {
            "navigationEndpoint": {
              "browseEndpoint": {
                "browseId": "UCWv7vMbMWH4-V0ZXdmDpPBA",
                "canonicalBaseUrl": "/@programmingwithmosh"
              },
              "clickTrackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeHKAQQAEw6e",
              "commandMetadata": {
                "webCommandMetadata": {
                  "apiUrl": "/youtubei/v1/browse",
                  "rootVe": 3611,
                  "url": "/@programmingwithmosh",
                  "webPageType": "WEB_PAGE_TYPE_CHANNEL"
                }
              }
            },
            "text": "Programming with Mosh"
          }
        ]
      },
      "publishedTimeText": {
        "simpleText": "8 months ago"
      },
      "richThumbnail": {
        "movingThumbnailRenderer": {
          "enableHoveredLogging": true,
          "enableOverlay": true,
          "movingThumbnailDetails": {
            "logAsMovingThumbnail": true,
            "thumbnails": [
              {
                "height": 180,
                "url": "https://i.ytimg.com/an_webp/K5KVEU3aaeQ/mqdefault_6s.webp?du=3000&sqp=CJSr4scG&rs=AOn4CLB4ObjThm5DyaJhtRRTwUZ26VBAlQ",
                "width": 320
              }
            ]
          }
        }
      },
      "searchVideoResultEntityKey": "EgtLNUtWRVUzYWFlUSDnAigB",
      "shortBylineText": {
        "runs": [
          {
            "navigationEndpoint": {
              "browseEndpoint": {
                "browseId": "UCWv7vMbMWH4-V0ZXdmDpPBA",
                "canonicalBaseUrl": "/@programmingwithmosh"
              },
              "clickTrackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeHKAQQAEw6e",
              "commandMetadata": {
                "webCommandMetadata": {
                  "apiUrl": "/youtubei/v1/browse",
                  "rootVe": 3611,
                  "url": "/@programmingwithmosh",
                  "webPageType": "WEB_PAGE_TYPE_CHANNEL"
                }
              }
            },
            "text": "Programming with Mosh"
          }
        ]
      },
      "shortViewCountText": {
        "accessibility": {
          "accessibilityData": {
            "label": "3.7 million views"
          }
        },
        "simpleText": "3.7M views"
      },
      "showActionMenu": false,
      "thumbnail": {
        "thumbnails": [
          {
            "height": 202,
            "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAXbPvWkQhvRSOYWD6mp9EVbfWSYg",
            "width": 360
          },
          {
            "height": 404,
            "url": "https://i.ytimg.com/vi/K5KVEU3aaeQ/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAbeaIhlZJzT49VmWFTFrL3rCq--Q",
            "width": 720
          }
        ]
      },
      "thumbnailOverlays": [
        {
          "thumbnailOverlayTimeStatusRenderer": {
            "style": "DEFAULT",
            "text": {
              "accessibility": {
                "accessibilityData": {
                  "label": "2 hours, 2 minutes, 21 seconds"
                }
              },
              "simpleText": "2:02:21"
            }
          }
        },
        {
          "thumbnailOverlayToggleButtonRenderer": {
            "isToggled": false,
            "toggledAccessibility": {
              "accessibilityData": {
                "label": "Added"
              }
            },
            "toggledIcon": {
              "iconType": "CHECK"
            },
            "toggledServiceEndpoint": {
              "clickTrackingParams": "CPkGEPnnAxgCIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
              "commandMetadata": {
                "webCommandMetadata": {
                  "apiUrl": "/youtubei/v1/browse/edit_playlist",
                  "sendPost": true
                }
              },
              "playlistEditEndpoint": {
                "actions": [
                  {
                    "action": "ACTION_REMOVE_VIDEO_BY_VIDEO_ID",
                    "removedVideoId": "K5KVEU3aaeQ"
                  }
                ],
                "playlistId": "WL"
              }
            },
            "toggledTooltip": "Added",
            "trackingParams": "CPkGEPnnAxgCIhMI36nD5sa3kAMVBfsWCR0SMSXh",
            "untoggledAccessibility": {
              "accessibilityData": {
                "label": "Watch later"
              }
            },
            "untoggledIcon": {
              "iconType": "WATCH_LATER"
            },
            "untoggledServiceEndpoint": {
              "clickTrackingParams": "CPkGEPnnAxgCIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
              "commandMetadata": {
                "webCommandMetadata": {
                  "apiUrl": "/youtubei/v1/browse/edit_playlist",
                  "sendPost": true
                }
              },
              "playlistEditEndpoint": {
                "actions": [
                  {
                    "action": "ACTION_ADD_VIDEO",
                    "addedVideoId": "K5KVEU3aaeQ"
                  }
                ],
                "playlistId": "WL"
              }
            },
            "untoggledTooltip": "Watch later"
          }
        },
        {
          "thumbnailOverlayToggleButtonRenderer": {
            "toggledAccessibility": {
              "accessibilityData": {
                "label": "Added"
              }
            },
            "toggledIcon": {
              "iconType": "PLAYLIST_ADD_CHECK"
            },
            "toggledTooltip": "Added",
            "trackingParams": "CPgGEMfsBBgDIhMI36nD5sa3kAMVBfsWCR0SMSXh",
            "untoggledAccessibility": {
              "accessibilityData": {
                "label": "Add to queue"
              }
            },
            "untoggledIcon": {
              "iconType": "ADD_TO_QUEUE_TAIL"
            },
            "untoggledServiceEndpoint": {
              "clickTrackingParams": "CPgGEMfsBBgDIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
              "commandMetadata": {
                "webCommandMetadata": {
                  "sendPost": true
                }
              },
              "signalServiceEndpoint": {
                "actions": [
                  {
                    "addToPlaylistCommand": {
                      "listType": "PLAYLIST_EDIT_LIST_TYPE_QUEUE",
                      "onCreateListCommand": {
                        "clickTrackingParams": "CPgGEMfsBBgDIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng==",
                        "commandMetadata": {
                          "webCommandMetadata": {
                            "apiUrl": "/youtubei/v1/playlist/create",
                            "sendPost": true
                          }
                        },
                        "createPlaylistServiceEndpoint": {
                          "params": "CAQ%3D",
                          "videoIds": [
                            "K5KVEU3aaeQ"
                          ]
                        }
                      },
                      "openMiniplayer": true,
                      "videoId": "K5KVEU3aaeQ",
                      "videoIds": [
                        "K5KVEU3aaeQ"
                      ]
                    },
                    "clickTrackingParams": "CPgGEMfsBBgDIhMI36nD5sa3kAMVBfsWCR0SMSXhygEEABMOng=="
                  }
                ],
                "signal": "CLIENT_SIGNAL"
              }
            },
            "untoggledTooltip": "Add to queue"
          }
        },
        {
          "thumbnailOverlayNowPlayingRenderer": {
            "text": {
              "runs": [
                {
                  "text": "Now playing"
                }
              ]
            }
          }
        },
        {
          "thumbnailOverlayLoadingPreviewRenderer": {
            "text": {
              "runs": [
                {
                  "text": "Keep hovering to play"
                }
              ]
            }
          }
        },
        {
          "thumbnailBottomOverlayViewModel": {
            "badge": {
              "thumbnailBadgeViewModel": {
                "text": "2:02:21"
              }
            },
            "enableGradientBackground": true,
            "progressBar": {
              "thumbnailOverlayProgressBarViewModel": {
                "enableSegmentView": true,
                "segmentDurationPercent": 2,
                "segmentLabel": "0:56",
                "startPercent": 0
              }
            }
          }
        }
      ],
      "title": {
        "accessibility": {
          "accessibilityData": {
            "label": "Python Full Course for Beginners [2025] 2 hours, 2 minutes"
          }
        },
        "runs": [
          {
            "text": "Python Full Course for Beginners [2025]"
          }
        ]
      },
      "trackingParams": "CMUGENwwGAAiEwjfqcPmxreQAxUF-xYJHRIxJeFA5NPp7pSipckr",
      "videoId": "K5KVEU3aaeQ",
      "viewCountText": {
        "simpleText": "3,791,094 views"
      }
    },
    ...
  ]
}

Keep in mind that each successful API call will cost you 5 api credits.

Every search that failed will be tried as many times as possible for 30 seconds.

So please be aware of this maximum timeout when writing your own code.



search [string] (default= "") required

The search parameter is the text you would search for on YouTube. This is required for the search endpoint.

Never forget to correctly encode this parameter before calling the API, especially if you are using special characters.

If you need help encoding your parameter you can find more information below:

sudo apt-get install gridsite-clients
urlencode "YOUR SEARCH"
import urllib.parse
encoded_url = urllib.parse.quote("YOUR SEARCH")
encoded_url = encodeURIComponent("YOUR SEARCH")
String encoded_url = URLEncoder.encode("YOUR SEARCH", "UTF-8");
require 'uri'
encoded_url = URI::encode("YOUR SEARCH")
<?php

$url_encoded = urlencode("YOUR SEARCH");

?>
package main

import (
"net/url"
)

func main() {
encoded_url := url.QueryEscape("YOUR SEARCH")
}


Upload Date

upload_date ["today" | "last_hour" | "this_week" | "this_month" | "this_year"] (default= "")

You can filter search results by upload date using the upload_date parameter. Available options are:

  • today - Videos uploaded today
  • last_hour - Videos uploaded in the last hour
  • this_week - Videos uploaded this week
  • this_month - Videos uploaded this month
  • this_year - Videos uploaded this year

Example: upload_date=this_week

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&search=python+tutorial&upload_date=this_week"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'search': 'python tutorial',
            'upload_date': 'this_week',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'search': python tutorial,
        'upload_date': this_week,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&upload_date=this_week")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&upload_date=this_week')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&upload_date=this_week');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&upload_date=this_week", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


Result Type

type ["video" | "channel" | "playlist" | "movie"] (default= "")

The type parameter allows you to filter results by content type. Available options are:

  • video - Only videos
  • channel - Only channels
  • playlist - Only playlists
  • movie - Only movies

Example: type=video

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&search=python+tutorial&type=video"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'search': 'python tutorial',
            'type': 'video',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'search': python tutorial,
        'type': video,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&type=video")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&type=video')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&type=video');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&type=video", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


Duration Filter

duration ["<4" | "4-20" | ">20"] (default= "")

Use duration to filter by video length. Available options are:

  • <4 - Videos under 4 minutes
  • 4-20 - Videos between 4 and 20 minutes
  • >20 - Videos longer than 20 minutes

Example: duration=4-20

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&duration=4-20&search=python+tutorial"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'duration': '4-20',
            'search': 'python tutorial',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'duration': 4-20,
        'search': python tutorial,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&duration=4-20&search=python+tutorial")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&duration=4-20&search=python+tutorial')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&duration=4-20&search=python+tutorial');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&duration=4-20&search=python+tutorial", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


Sort By

sort_by ["rating" | "relevance" | "view_count" | "upload_date"] (default= "relevance")

The sort_by parameter allows you to sort search results. Available options are:

  • relevance (default) - YouTube's relevance ranking
  • rating - Highest rated videos
  • view_count - Most viewed videos
  • upload_date - Most recently uploaded

Example: sort_by=view_count

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&search=python+tutorial&sort_by=view_count"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'search': 'python tutorial',
            'sort_by': 'view_count',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'search': python tutorial,
        'sort_by': view_count,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&sort_by=view_count")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&sort_by=view_count')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&sort_by=view_count');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&sort_by=view_count", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


HD Filter

hd [boolean] (default= false)

Set hd=true to return only HD (high definition) videos.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&hd=true&search=python+tutorial"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'hd': 'true',
            'search': 'python tutorial',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'hd': true,
        'search': python tutorial,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&hd=true&search=python+tutorial")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&hd=true&search=python+tutorial')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&hd=true&search=python+tutorial');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&hd=true&search=python+tutorial", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


4K Filter

4k [boolean] (default= false)

Set 4k=true to return only 4K resolution videos.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&4k=true&search=python+tutorial"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            '4k': 'true',
            'search': 'python tutorial',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        '4k': true,
        'search': python tutorial,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&4k=true&search=python+tutorial")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&4k=true&search=python+tutorial')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&4k=true&search=python+tutorial');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&4k=true&search=python+tutorial", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


Subtitles Filter

subtitles [boolean] (default= false)

Set subtitles=true to return only videos with subtitles or closed captions available.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&search=python+tutorial&subtitles=true"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'search': 'python tutorial',
            'subtitles': 'true',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'search': python tutorial,
        'subtitles': true,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&subtitles=true")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&subtitles=true')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&subtitles=true');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=python+tutorial&subtitles=true", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


Creative Commons

creative_commons [boolean] (default= false)

Set creative_commons=true to return only videos with Creative Commons license.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&creative_commons=true&search=python+tutorial"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'creative_commons': 'true',
            'search': 'python tutorial',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'creative_commons': true,
        'search': python tutorial,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&creative_commons=true&search=python+tutorial")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&creative_commons=true&search=python+tutorial')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&creative_commons=true&search=python+tutorial');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&creative_commons=true&search=python+tutorial", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


Live Streams

live [boolean] (default= false)

Set live=true to return only live streams.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&live=true&search=news"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'live': 'true',
            'search': 'news',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'live': true,
        'search': news,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&live=true&search=news")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&live=true&search=news')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&live=true&search=news');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&live=true&search=news", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


360° Videos

360 [boolean] (default= false)

Set 360=true to return only 360-degree videos.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&360=true&search=travel"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            '360': 'true',
            'search': 'travel',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        '360': true,
        'search': travel,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&360=true&search=travel")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&360=true&search=travel')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&360=true&search=travel');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&360=true&search=travel", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


3D Videos

3d [boolean] (default= false)

Set 3d=true to return only 3D videos.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&3d=true&search=movies"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            '3d': 'true',
            'search': 'movies',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        '3d': true,
        'search': movies,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&3d=true&search=movies")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&3d=true&search=movies')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&3d=true&search=movies');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&3d=true&search=movies", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


HDR Videos

hdr [boolean] (default= false)

Set hdr=true to return only HDR (High Dynamic Range) videos.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&hdr=true&search=nature"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'hdr': 'true',
            'search': 'nature',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'hdr': true,
        'search': nature,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&hdr=true&search=nature")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&hdr=true&search=nature')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&hdr=true&search=nature');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&hdr=true&search=nature", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


Location Filter

location [boolean] (default= false)

Set location=true to return only videos with location metadata.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&location=true&search=travel"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'location': 'true',
            'search': 'travel',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'location': true,
        'search': travel,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&location=true&search=travel")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&location=true&search=travel')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&location=true&search=travel');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&location=true&search=travel", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


VR180 Videos

vr180 [boolean] (default= false)

Set vr180=true to return only VR180 format videos.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&search=experience&vr180=true"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'search': 'experience',
            'vr180': 'true',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'search': experience,
        'vr180': true,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=experience&vr180=true")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=experience&vr180=true')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=experience&vr180=true');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&search=experience&vr180=true", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}

YouTube Metadata API

Quick start

To fetch detailed video metadata, use the metadata endpoint with a video ID:

curl "https://app.scrapingbee.com/api/v1/youtube/metadata?api_key=YOUR-API-KEY&video_id=q0aFOxT6TNw"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/youtube/metadata',
        params={
            'api_key': 'YOUR-API-KEY',
            'video_id': 'q0aFOxT6TNw',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/youtube/metadata', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'video_id': q0aFOxT6TNw,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/youtube/metadata?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/youtube/metadata?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/youtube/metadata?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/youtube/metadata?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}

Here is a breakdown of all the parameters you can use with the YouTube Metadata API:

name [type] (default)
Description
video_id [string] required
YouTube video identifier

Response Example

{
    "age_limit": 0,
    "categories": [
        "Education"
    ],
    "channel_id": "UCWv7vMbMWH4-V0ZXdmDpPBA",
    "channel_url": "https://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA",
    "comment_count": 26000,
    "description": "Learn Python basics in just 1 hour! Perfect for beginners interested in AI and coding. ⚡ Plus, get 6 months of PyCharm FREE with the coupon in the description!\n\n❤️ Join this channel to get access to perks:\nhttps://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA/join\n\n🚀 Want to dive deeper? Check out my Complete Python Mastery course: \n- Full course: https://mosh.link/python-course\n- Subscribe for more Python tutorials like this: https://goo.gl/6PYaGF\n\n📕 Get the FREE goodies:\n- Python cheat sheet: https://mosh.link/python-cheatsheet\n- Get 6 months of PyCharm for free with this coupon code: MOSH_YOUTUBE - Redeem it at: https://jb.gg/redeem\n\n✋ Stay connected:\n- Twitter: https://twitter.com/moshhamedani\n- Facebook: https://www.facebook.com/programmingwithmosh/\n- Instagram: https://www.instagram.com/codewithmosh.official/\n- LinkedIn: https://www.linkedin.com/school/codewithmosh/\n\n⭐ Related tutorials\nhttps://youtu.be/yVl_G-F7m8c?si=11emtFyDccTKCGn7\n\n📖 TABLE OF CONTENT\n0:00:00 Introduction \n0:00:30 What You Can Do With Python \n0:01:15 Your First Python Program \n0:05:30 Variables\n0:09:08 Receiving Input\n0:10:48 Type Conversion\n0:18:49 Strings\n0:23:41 Arithmetic Operators \n0:25:59 Operator Precedence \n0:27:11 Comparison Operators \n0:28:52 Logical Operators\n0:31:06 If Statements\n0:36:16 Exercise\n0:41:42 While Loops\n0:45:11 Lists\n0:48:47 List Methods\n0:52:16 For Loops\n0:54:54 The range() Function \n0:57:43 Tuples\n\n#Python #AI #MachineLearning #WebDevelopment",
    "duration": 3605,
    "formats": [
        {
            "acodec": "mp4a.40.2",
            "ext": "mp4",
            "format_id": "18",
            "format_note": "360p",
            "fps": 30,
            "resolution": "640x360",
            "url": "https://rr2---sn-uxaoxun-5g06.googlevideo.com/videoplayback?expire=1761150421&ei=dbH4aJzOE--UobIPhoy9oQU&ip=45.180.16.126&id=o-ABFVFIXCNKj-KYiGzi8UM0jUoKea68wdVY0oF1yy_atU&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1761128821%2C&mh=ui&mm=31%2C29&mn=sn-uxaoxun-5g06%2Csn-pmcg-bg0e&ms=au%2Crdu&mv=m&mvi=2&pl=24&rms=au%2Cau&initcwndbps=1581250&bui=ATw7iSVFwQ05IloXmWb3urO3NdkGuQbmUL3D9E4_GwMr3sUPomySHc5SuMlIW4cZc-joJSEVwlbaAB6U&spc=hcYD5d1NGTnKpFbcSrxW1CVKCVh49E5VoeHztRiEOZa0G6qsC1VRde_hdpvBTTwmQKtpYtvN0p9ypQ&vprv=1&svpuc=1&mime=video%2Fmp4&ns=LzsfFyMMQ547ChzduDY5zMwQ&rqh=1&gir=yes&clen=71923246&ratebypass=yes&dur=3605.640&lmt=1756284595277193&mt=1761128245&fvip=15&fexp=51355912%2C51552689%2C51565115%2C51565681%2C51580968&c=WEB&sefc=1&txp=5438534&n=-0CSdvEM99hOApoLj&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRgIhAKtLBPDkeF7Hhp4sr8x6zd1vWi3snO6jESRC0o5_YmuNAiEAs4QemzwiC9iVHHpQw19xLF-6j1LqxhKi7mustUJJ8HU%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAKYpnf_SOE_XgVi1YGFhD9eo8fYblPTa4AtnaEICi_IhAiB5RJoEuX8pJYj9GC173Ly4Lj8-7T-Me1X8UG72AjhSTw%3D%3D",
            "vcodec": "avc1.42001E"
        },
        {
            "acodec": null,
            "ext": "mp4",
            "format_id": "137",
            "format_note": "1080p, MISSING POT",
            "fps": 30,
            "resolution": "1920x1080",
            "url": null,
            "vcodec": "avc1.640028"
        },
        ...
    ],
    "is_live": false,
    "like_count": 527487,
    "tags": [
        "code with mosh",
        "introduction to python",
        "learn python",
        "learn python programming",
        "mosh hamedani",
        "programming",
        "programming with mosh",
        "python",
        "python 2020",
        "python 3",
        "python basics",
        "python course",
        "python crash course",
        "python for beginners",
        "python from scratch",
        "python programming",
        "python tutorial",
        "python tutorial for beginners",
        "web development"
    ],
    "thumbnails": [
        {
            "height": 94,
            "url": "https://i.ytimg.com/vi/kqtD5dpn9C8/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLB_LCkuuo6Y6xeSm3jK7rDyWVLGyg",
            "width": 168
        },
        {
            "height": 110,
            "url": "https://i.ytimg.com/vi/kqtD5dpn9C8/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAUfM08kKF5DzLndlzUyC99koc_1A",
            "width": 196
        },
        {
            "height": 138,
            "url": "https://i.ytimg.com/vi/kqtD5dpn9C8/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDj1VK3QlAj_vAmRtWl03Ehy0GBwg",
            "width": 246
        },
        {
            "height": 188,
            "url": "https://i.ytimg.com/vi/kqtD5dpn9C8/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCO415YsjEiWc3sUugqa6u9W_kJYw",
            "width": 336
        },
        {
            "height": 1080,
            "url": "https://i.ytimg.com/vi_webp/kqtD5dpn9C8/maxresdefault.webp",
            "width": 1920
        },
        {
            "height": 720,
            "url": "https://i.ytimg.com/vi/kqtD5dpn9C8/maxresdefault.jpg",
            "width": 1280
        }
    ],
    "title": "Python for Beginners - Learn Coding with Python in 1 Hour",
    "upload_date": "20200916",
    "uploader": "Programming with Mosh",
    "uploader_id": "@programmingwithmosh",
    "uploader_url": "https://www.youtube.com/@programmingwithmosh",
    "video_id": "kqtD5dpn9C8",
    "view_count": 22946693
}


Video ID

video_id [string] (default= "") required

The video_id parameter is the unique YouTube video identifier. This is required for the metadata endpoint.

You can find the video ID in the URL of any YouTube video. For example, in the URL: https://www.youtube.com/watch?v=rfscVS0vtbw

The video ID is rfscVS0vtbw.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&video_id=rfscVS0vtbw"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'video_id': 'rfscVS0vtbw',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'video_id': rfscVS0vtbw,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}

YouTube Transcript API

Quick start

To fetch video transcripts (captions/subtitles), use the transcript endpoint with a video ID:

curl "https://app.scrapingbee.com/api/v1/youtube/transcript?api_key=YOUR-API-KEY&video_id=q0aFOxT6TNw"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/youtube/transcript',
        params={
            'api_key': 'YOUR-API-KEY',
            'video_id': 'q0aFOxT6TNw',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/youtube/transcript', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'video_id': q0aFOxT6TNw,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/youtube/transcript?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/youtube/transcript?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/youtube/transcript?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/youtube/transcript?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}

Here is a breakdown of all the parameters you can use with the YouTube Transcript API:

name [type] (default)
Description
video_id [string] required
YouTube video identifier
language [string] ("en")
Transcript language (ISO code)
transcript_origin ["auto_generated" | "uploader_provided"] ("auto_generated")
Choose auto-generated or uploader-provided transcripts

Response Example

{
    "text": "in this python tutorial you're going to learn everything you need to know to start programming in python if you want to learn python programming for data science machine learning or web development this python tutorial is the perfect place to learn python you don't need any prior knowledge in python or programming in general i'm going to teach you everything from scratch i'm mosh hamadani and i've taught millions of people how to code through this channel if you're new here make sure to subscribe as i upload new videos every week now let's jump in and get started all right before we get started let me give you some ideas about what you can do with python that's a ..."
    "transcript":
      [
        {
            "accessibility": {},
            "end_ms": "",
            "snippet": {},
            "start_ms": "",
            "start_time_text": "",
            "target_id": "",
            "tracking_params": ""
        },
        {
            "accessibility": {
                "accessibilityData": {
                    "label": "2 seconds in this python tutorial you're going to learn everything you need to know to start programming in python if you want"
                }
            },
            "end_ms": "7359",
            "snippet": {
                "runs": [
                    {
                        "text": "in this python tutorial you're going to learn everything you need to know to start programming in python if you want"
                    }
                ]
            },
            "start_ms": "2159",
            "start_time_text": "0:02",
            "target_id": "kqtD5dpn9C8.CgNhc3ISAmVuGgA%3D.2159.7359",
            "tracking_params": "CL8EENP2BxgBIhMIprniqcy3kAMVDyIGAB3Pxw7i"
        },
        ...
    ]
}


Video ID

video_id [string] (default= "") required

The video_id parameter is the unique YouTube video identifier. This is required for the transcript endpoint.

You can find the video ID in the URL of any YouTube video. For example, in the URL: https://www.youtube.com/watch?v=rfscVS0vtbw

The video ID is rfscVS0vtbw.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&video_id=rfscVS0vtbw"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'video_id': 'rfscVS0vtbw',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'video_id': rfscVS0vtbw,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


Language

language [string] (default= "en")

The language parameter allows you to specify which language transcript to retrieve using ISO language codes (e.g., "en", "es", "fr").

By default, English (en) transcripts are returned.

Example: language=es for Spanish transcripts

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&language=es&video_id=rfscVS0vtbw"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'language': 'es',
            'video_id': 'rfscVS0vtbw',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'language': es,
        'video_id': rfscVS0vtbw,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&language=es&video_id=rfscVS0vtbw")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&language=es&video_id=rfscVS0vtbw')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&language=es&video_id=rfscVS0vtbw');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&language=es&video_id=rfscVS0vtbw", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}


Transcript Origin

transcript_origin ["auto_generated" | "uploader_provided"] (default= "auto_generated")

The transcript_origin parameter allows you to choose between auto-generated and uploader-provided transcripts. Available options are:

  • auto_generated (default) - Automatically generated transcripts by YouTube
  • uploader_provided - Transcripts uploaded by the video creator

Example: transcript_origin=uploader_provided

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&transcript_origin=uploader_provided&video_id=rfscVS0vtbw"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'transcript_origin': 'uploader_provided',
            'video_id': 'rfscVS0vtbw',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'transcript_origin': uploader_provided,
        'video_id': rfscVS0vtbw,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&transcript_origin=uploader_provided&video_id=rfscVS0vtbw")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&transcript_origin=uploader_provided&video_id=rfscVS0vtbw')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&transcript_origin=uploader_provided&video_id=rfscVS0vtbw');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&transcript_origin=uploader_provided&video_id=rfscVS0vtbw", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}

YouTube Trainability API

Quick start

To check if a video has transcripts available for training purposes, use the trainability endpoint:

curl "https://app.scrapingbee.com/api/v1/youtube/trainability?api_key=YOUR-API-KEY&video_id=q0aFOxT6TNw"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/youtube/trainability',
        params={
            'api_key': 'YOUR-API-KEY',
            'video_id': 'q0aFOxT6TNw',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/youtube/trainability', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'video_id': q0aFOxT6TNw,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/youtube/trainability?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/youtube/trainability?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/youtube/trainability?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/youtube/trainability?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=q0aFOxT6TNw", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}

Here is a breakdown of all the parameters you can use with the YouTube Trainability API:

name [type] (default)
Description
video_id [string] required
YouTube video identifier

Response Example

{
    "etag": "LD9MhkFWfaPSnVWlW0gQ9cFDA44",
    "kind": "youtube#videoTrainability",
    "permitted": [
        "None"
    ],
    "video_id": "kqtD5dpn9C8"
}


Video ID

video_id [string] (default= "") required

The video_id parameter is the unique YouTube video identifier. This is required for the trainability endpoint.

You can find the video ID in the URL of any YouTube video. For example, in the URL: https://www.youtube.com/watch?v=rfscVS0vtbw

The video ID is rfscVS0vtbw.

curl "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&video_id=rfscVS0vtbw"
#  Install the Python Requests library:
# pip install requests
import requests

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/',
        params={
            'api_key': 'YOUR-API-KEY',
            'video_id': 'rfscVS0vtbw',
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// Install the Node Axios package
// npm install axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/', {
    params: {
        'api_key': 'YOUR-API-KEY',
        'url': 'YOUR-URL',
        'video_id': rfscVS0vtbw,
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )
    try {

      // Create request
      
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw")

      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request 
    uri = URI('https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url 
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
    die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);
>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request 
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/?api_key=YOUR-API-KEY&url=YOUR-URL&video_id=rfscVS0vtbw", nil)


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}

Credit cost for your requests

Each ScrapingBee plan provides a certain amount of API credits per month.

It costs 10 credits per YouTube API request.

Here is a breakdown of ScrapingBee API credit costs:

Feature usedAPI credit cost
YouTube Search API5
YouTube Metadata API5
YouTube Transcript API5
YouTube Trainability API5