hvac-kia-content/youtube_browser_cookies.py
Ben Reed daab901e35 refactor: Update naming convention from hvacknowitall to hkia
Major Changes:
- Updated all code references from hvacknowitall/hvacnkowitall to hkia
- Renamed all existing markdown files to use hkia_ prefix
- Updated configuration files, scrapers, and production scripts
- Modified systemd service descriptions to use HKIA
- Changed NAS sync path to /mnt/nas/hkia

Files Updated:
- 20+ source files updated with new naming convention
- 34 markdown files renamed to hkia_* format
- All ScraperConfig brand_name parameters now use 'hkia'
- Documentation updated to reflect new naming

Rationale:
- Shorter, cleaner filenames
- Consistent branding across all outputs
- Easier to type and reference
- Maintains same functionality with improved naming

Next Steps:
- Deploy updated services to production
- Update any external references to old naming
- Monitor scrapers to ensure proper operation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-19 13:35:23 -03:00

97 lines
No EOL
3.7 KiB
Python

#!/usr/bin/env python3
"""
Use browser cookies for YouTube authentication
"""
import yt_dlp
from pathlib import Path
def test_with_browser_cookies():
"""Test YouTube access using browser cookies"""
print("🌐 Attempting to use browser cookies...")
print("=" * 60)
# Try different browser options
browsers = ['firefox', 'chrome', 'chromium', 'edge', 'safari']
for browser in browsers:
print(f"\nTrying {browser}...")
ydl_opts = {
'cookiesfrombrowser': (browser,), # Use cookies from browser
'quiet': False,
'no_warnings': False,
'extract_flat': False,
'skip_download': True,
'writesubtitles': True,
'writeautomaticsub': True,
'subtitleslangs': ['en'],
}
try:
test_video = "https://www.youtube.com/watch?v=TpdYT_itu9U"
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(test_video, download=False)
if info:
print(f"✅ Success with {browser}!")
print(f"Video: {info.get('title', 'Unknown')}")
# Check transcripts
subtitles = info.get('subtitles', {})
auto_captions = info.get('automatic_captions', {})
if 'en' in subtitles or 'en' in auto_captions:
print(f"✅ Transcripts available!")
# Now save the cookies for future use
cookie_file = Path("data_production_backlog/.cookies/youtube_browser.txt")
ydl_opts_save = {
'cookiesfrombrowser': (browser,),
'cookiefile': str(cookie_file),
'quiet': True,
}
with yt_dlp.YoutubeDL(ydl_opts_save) as ydl2:
ydl2.extract_info(test_video, download=False)
if cookie_file.exists():
lines = len(cookie_file.read_text().splitlines())
print(f"📄 Cookies saved: {lines} lines")
return browser
except Exception as e:
error_msg = str(e)
if "browser is not installed" in error_msg.lower():
print(f"{browser} not found")
elif "no profile" in error_msg.lower():
print(f" ❌ No {browser} profile found")
elif "could not extract" in error_msg.lower():
print(f" ❌ Could not extract cookies from {browser}")
else:
print(f" ❌ Error: {error_msg[:100]}")
print("\n❌ No browser cookies available")
print("\nTo fix this:")
print("1. Open Firefox or Chrome")
print("2. Log into YouTube with benreed1987@gmail.com")
print("3. Make sure you're logged in and can watch videos")
print("4. Keep the browser open and run this script again")
return None
if __name__ == "__main__":
browser = test_with_browser_cookies()
if browser:
print(f"\n✅ Successfully authenticated using {browser} cookies!")
print("Transcripts can now be fetched.")
else:
print("\n⚠️ Manual cookie export required:")
print("1. Install 'Get cookies.txt LOCALLY' extension")
print("2. Log into YouTube")
print("3. Export cookies while on youtube.com")
print("4. Save as: data_production_backlog/.cookies/youtube_manual.txt")