import requests
from datetime import datetime, timedelta
import json

url = "https://mola.tv/api/v2/videos/cache/playlists/livethisweek?platformId=1&app_id=molatv&country=id&language=it"

response = requests.get(url)
data = response.json()

# Calcoliamo il timestamp corrente
current_time = datetime.now()

# Calcoliamo il timestamp tra 6 ore
six_hours_from_now = current_time + timedelta(hours=6)

# Lista per salvare i dati di ogni video
video_list = []

# ID iniziale per i video
video_id = 1

# Estraiamo solo il titolo, la copertina, lo startTime e lo stream URL di widevine per ogni video
for video in data["data"]:
    videos = video["attributes"]["videos"]
    for video_data in videos:
        widevine_drm = video_data.get("attributes", {}).get("drm", {}).get("widevine", {})
        widevine_stream_url = widevine_drm.get("streamUrl", "")
        
        # Estraiamo l'URL dell'immagine in formato "landscape" specifica per questo video
        cover_landscape = video_data["attributes"]["images"]["cover"]["landscape"]
        
        # Estraiamo il titolo e il startTime corrispondente a questo video
        title = video_data.get("attributes", {}).get("title", "")
        start_time = video_data.get("attributes", {}).get("startTime", "")
        
        # Verifichiamo se startTime è un timestamp UNIX epoch
        if isinstance(start_time, int):
            start_time_datetime = datetime.utcfromtimestamp(start_time)
        else:
            start_time_datetime = None
        
        # Controlliamo se il startTime è già trascorso o inizia tra 6 ore
        if start_time_datetime is not None and (start_time_datetime <= current_time or start_time_datetime <= six_hours_from_now):
            # Creiamo un dizionario per rappresentare i dati del video
            video_dict = {
                "Id": str(video_id),
                "Name": title,
                "mpdUrl": widevine_stream_url,
                "startDate": str(start_time),
                "imageurl": cover_landscape,
                "kid": "3e17c3798a294c49b93c1b2ddbcd8f29",
                "key": "0917fa8c9cf68c206efc24946d0c22cc"
            }
            video_list.append(video_dict)  # Aggiungiamo il dizionario alla lista dei video
            video_id += 1  # Incrementiamo l'ID per il prossimo video

# Salva i dati dei video in formato JSON
with open("molatv.json", "w") as json_file:
    json.dump(video_list, json_file, indent=2)

print("Dati salvati in video_data.json")
