2026-04-14 17:41:39 +02:00

93 lines
3.8 KiB
Python

#!/usr/bin/env python3
"""
MercyV Loadingscreen - Video Einbetter
======================================
Lege dieses Script in den Ordner mercyv-loadingscreen-v2/
Dann einfach ausführen: python video-einbetten.py
"""
import base64
import os
import shutil
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
VIDEO_PATH = os.path.join(SCRIPT_DIR, "assets", "background.mp4")
HTML_PATH = os.path.join(SCRIPT_DIR, "index.html")
# ── Prüfungen ──────────────────────────────────────────────────────────────────
if not os.path.exists(VIDEO_PATH):
print("❌ Fehler: assets/background.mp4 nicht gefunden!")
print(f" Erwartet unter: {VIDEO_PATH}")
input("\nEnter drücken zum Beenden...")
exit(1)
if not os.path.exists(HTML_PATH):
print("❌ Fehler: index.html nicht gefunden!")
print(f" Erwartet unter: {HTML_PATH}")
input("\nEnter drücken zum Beenden...")
exit(1)
# ── Video einlesen & kodieren ──────────────────────────────────────────────────
video_size_mb = os.path.getsize(VIDEO_PATH) / (1024 * 1024)
print(f"🎬 Video gefunden: background.mp4 ({video_size_mb:.1f} MB)")
print("⏳ Kodiere Video als base64... (kann kurz dauern)")
with open(VIDEO_PATH, "rb") as f:
b64 = base64.b64encode(f.read()).decode("utf-8")
print(f"✅ Kodierung fertig ({len(b64) / (1024*1024):.1f} MB base64)")
# ── HTML einlesen ──────────────────────────────────────────────────────────────
with open(HTML_PATH, "r", encoding="utf-8") as f:
html = f.read()
# ── Backup der alten index.html ────────────────────────────────────────────────
backup_path = HTML_PATH + ".backup"
shutil.copy2(HTML_PATH, backup_path)
print(f"💾 Backup erstellt: index.html.backup")
# ── base64 in HTML eintragen ───────────────────────────────────────────────────
import re
# Ersetzt jede bestehende <source src="..."> im bg-video
new_source = f' <source src="data:video/mp4;base64,{b64}" type="video/mp4">'
# Suche nach dem video-Tag und ersetze den source-Eintrag
pattern = r'(<video[^>]*id="bg-video"[^>]*>[\s\S]*?)<source[^>]*>([\s\S]*?</video>)'
replacement = r'\g<1>' + new_source + r'\n \g<2>'
new_html, count = re.subn(pattern, replacement, html)
if count == 0:
# Fallback: direkt nach data:video oder src= suchen und ersetzen
new_html = re.sub(
r'<source src="[^"]*" type="video/mp4">',
f'<source src="data:video/mp4;base64,{b64}" type="video/mp4">',
html
)
if new_html == html:
print("❌ Konnte die <source>-Zeile in der index.html nicht finden!")
print(" Stelle sicher dass das Video-Tag so aussieht:")
print(' <source src="..." type="video/mp4">')
input("\nEnter drücken zum Beenden...")
exit(1)
# ── Speichern ──────────────────────────────────────────────────────────────────
with open(HTML_PATH, "w", encoding="utf-8") as f:
f.write(new_html)
final_size = os.path.getsize(HTML_PATH) / (1024 * 1024)
print(f"✅ index.html aktualisiert ({final_size:.1f} MB)")
print()
print("🚀 Fertig! Jetzt:")
print(" 1. FiveM Cache leeren: %localappdata%\\FiveM\\FiveM.app\\cache")
print(" 2. Server neu starten")
print()
input("Enter drücken zum Beenden...")