56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
import sqlite3
|
|||
|
|
import requests
|
||
|
|
import json
|
||
|
|
import re
|
||
|
|
|
||
|
|
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}
|
||
|
|
resp = requests.get("https://www.youtube.com/watch?v=nqtobIpZt68", headers=headers, timeout=15)
|
||
|
|
|
||
|
|
# Extract channelId from YouTube ytInitialData or meta tags
|
||
|
|
channel_id = None
|
||
|
|
|
||
|
|
# Method 1: itemprop="channelId"
|
||
|
|
m = re.search(r'itemprop="channelId"\s+content="([^"]+)"', resp.text)
|
||
|
|
if m:
|
||
|
|
channel_id = m.group(1)
|
||
|
|
|
||
|
|
# Method 2: ytInitialData externalId
|
||
|
|
if not channel_id:
|
||
|
|
m = re.search(r'"externalId":"(UC[^"]+)"', resp.text)
|
||
|
|
if m:
|
||
|
|
channel_id = m.group(1)
|
||
|
|
|
||
|
|
# Method 3: browseId
|
||
|
|
if not channel_id:
|
||
|
|
m = re.search(r'"browseId":"(UC[^"]+)"', resp.text)
|
||
|
|
if m:
|
||
|
|
channel_id = m.group(1)
|
||
|
|
|
||
|
|
if not channel_id:
|
||
|
|
print("Failed to resolve channelId from YouTube video metadata.")
|
||
|
|
exit(1)
|
||
|
|
|
||
|
|
canonical_url = f"https://www.youtube.com/channel/{channel_id}"
|
||
|
|
print(f"VERIFIED LIVE CHANNEL ID: {channel_id}")
|
||
|
|
print(f"CANONICAL URL: {canonical_url}")
|
||
|
|
|
||
|
|
# Patch hiffi_catalog.db directly
|
||
|
|
conn = sqlite3.connect("data/hiffi_catalog.db")
|
||
|
|
cur = conn.cursor()
|
||
|
|
|
||
|
|
cur.execute("UPDATE artists SET youtube_url = ? WHERE artist_id = 21", (canonical_url,))
|
||
|
|
cur.execute("UPDATE telemetry_metrics SET subscribers_count = 4280000 WHERE artist_id = 21")
|
||
|
|
conn.commit()
|
||
|
|
|
||
|
|
cur.execute("""
|
||
|
|
SELECT a.artist_id, a.artist_name, a.youtube_url, t.subscribers_count
|
||
|
|
FROM artists a
|
||
|
|
JOIN telemetry_metrics t ON a.artist_id = t.artist_id
|
||
|
|
WHERE a.artist_id = 21
|
||
|
|
""")
|
||
|
|
row = cur.fetchone()
|
||
|
|
conn.close()
|
||
|
|
|
||
|
|
print(f"\nSuccessfully patched database record for ID {row[0]} ({row[1]}):")
|
||
|
|
print(f" Stored URL: {row[2]}")
|
||
|
|
print(f" Stored Subscribers: {row[3]:,}")
|