93 lines
3.8 KiB
Python
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...")
|