#!/usr/bin/env python3 """ Debug YouTube scraper to get actual videos from the Videos tab. """ import os import sys from pathlib import Path from dotenv import load_dotenv import yt_dlp # Load environment variables load_dotenv() def debug_youtube_videos(): """Debug YouTube videos from the main Videos tab.""" # Use the direct playlist URL for the Videos tab videos_url = "https://www.youtube.com/@HVACKnowItAll/videos" print(f"Testing videos tab: {videos_url}") # Options to get individual videos ydl_opts = { 'quiet': False, 'extract_flat': True, 'playlistend': 20, # Get first 20 videos 'ignoreerrors': True, } try: with yt_dlp.YoutubeDL(ydl_opts) as ydl: print("Extracting videos from Videos tab...") videos_info = ydl.extract_info(videos_url, download=False) print(f"\nVideos info keys: {list(videos_info.keys())}") if 'entries' in videos_info: videos = [v for v in videos_info['entries'] if v is not None] print(f"\nāœ… Found {len(videos)} actual videos") # Show video details for i, video in enumerate(videos[:10]): title = video.get('title', 'N/A') video_id = video.get('id', 'N/A') duration = video.get('duration', 'N/A') print(f" {i+1}. {title}") print(f" ID: {video_id}, Duration: {duration}s") if len(videos) > 10: print(f" ... and {len(videos) - 10} more videos") else: print("āŒ No 'entries' key found") except Exception as e: print(f"āŒ Error: {e}") import traceback traceback.print_exc() if __name__ == "__main__": debug_youtube_videos()