52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
import json
|
|
import os
|
|
from googleapiclient.discovery import build
|
|
import socket
|
|
socket.setdefaulttimeout(500)
|
|
|
|
|
|
def search_youtube(api_key, query, max_results=50):
|
|
youtube = build('youtube', 'v3', developerKey=api_key)
|
|
|
|
search_response = youtube.search().list(
|
|
q=query,
|
|
part="id,snippet",
|
|
maxResults=max_results,
|
|
type="video"
|
|
).execute()
|
|
|
|
videos = []
|
|
|
|
for search_result in search_response.get("items", []):
|
|
if search_result["id"]["kind"] == "youtube#video":
|
|
video_id = search_result["id"]["videoId"]
|
|
video_metadata = get_video_metadata(api_key, video_id)
|
|
videos.append(video_metadata)
|
|
|
|
return videos
|
|
|
|
|
|
def get_video_metadata(api_key, video_id):
|
|
youtube = build('youtube', 'v3', developerKey=api_key)
|
|
|
|
request = youtube.videos().list(
|
|
part="snippet,contentDetails,statistics",
|
|
id=video_id
|
|
)
|
|
response = request.execute()
|
|
return response
|
|
|
|
|
|
api_key = 'AIzaSyDI_BBExs-HypVZFxgnR5tj5S6-uKyU4vk' # Replace with your actual API key
|
|
|
|
# Search for videos related to "VLC player"
|
|
vlc_related_videos = search_youtube(api_key, "Ubuntu Desktop Tutorial", max_results=10)
|
|
|
|
# create data folder if not exist
|
|
if not os.path.exists("data"):
|
|
os.makedirs("data")
|
|
|
|
for video in vlc_related_videos:
|
|
# store the video metadata into a json file
|
|
with open(f"data/{video['etag']}.json", "w") as f:
|
|
json.dump(video, f, indent=4) |