import requests import json import xml.etree.ElementTree as ET from xml.dom import minidom import datetime API_KEY = "YOUR_API_KEY_HERE" # Replace with your KeyXML string BASE_URL = "https://www.googleapis.com/youtube/v3/videos" REGION_CODE = "US" # Top videos in the United States MAX_RESULTS = 20 # Max is 50 per page
updated = ET.SubElement(root, "updated") updated.text = datetime.datetime.now().isoformat() youtube api keyxml download top
response = requests.get(BASE_URL, params=params) import requests import json import xml
def fetch_top_videos(): """Fetch the most popular videos from YouTube API""" params = { 'part': 'snippet,statistics', 'chart': 'mostPopular', # This gives you the "TOP" videos 'regionCode': REGION_CODE, 'maxResults': MAX_RESULTS, 'key': API_KEY } []): entry = ET.SubElement(root
# Add each video as an entry for item in json_data.get('items', []): entry = ET.SubElement(root, "entry") # Video ID vid_id = ET.SubElement(entry, "id") vid_id.text = f"yt:video:{item['id']}" # Title title_elem = ET.SubElement(entry, "title") title_elem.text = item['snippet']['title'] # Channel Info channel = ET.SubElement(entry, "author") name = ET.SubElement(channel, "name") name.text = item['snippet']['channelTitle'] # Statistics (Views, Likes) stats = ET.SubElement(entry, "yt:statistics") stats.set("viewCount", item['statistics'].get('viewCount', '0')) stats.set("likeCount", item['statistics'].get('likeCount', '0')) stats.set("commentCount", item['statistics'].get('commentCount', '0')) # Published Date published = ET.SubElement(entry, "published") published.text = item['snippet']['publishedAt'] # Thumbnail Link thumb = ET.SubElement(entry, "link") thumb.set("rel", "enclosure") thumb.set("href", item['snippet']['thumbnails']['high']['url']) # Pretty print XML xml_str = minidom.parseString(ET.tostring(root)).toprettyxml(indent=" ") return xml_str def download_xml(xml_content, filename="youtube_top_videos.xml"): """Save the XML file locally""" with open(filename, 'w', encoding='utf-8') as f: f.write(xml_content) print(f"✅ Successfully downloaded: {filename}") if name == " main ": print("🚀 Fetching TOP YouTube videos via API...") data = fetch_top_videos()