Sammelt Twitch-Clips nach Zeitraum & Mindest-Views, extrahiert .mp4-Links oder lädt die Clips herunter, und spielt sie zufällig im Browser ab – mit Cooldown, History und optionaler Anzeige des Clip-Datums.
- 🐍
fetch_clips_and_mp4.py– Clip-Fetcher mit zwei Modi:/local– nur.mp4-Links sammeln → JSON/download– Clips viayt-dlpladen → lokale Pfade in JSON
- 🌐
player.html– HTML5-Player mit Zufallsauswahl, Cooldown & History - 📜
get_lastplayed.php/save_lastplayed.php– vom Player genutzte Hilfsskripte zur Speicherung/Abruf des zuletzt gespielten Clips - 🗓️
write_clipdate.php– schreibt das aktuelle Clip-Datum (z. B. für Overlay/OBS) in eine Textdatei ▶️ start.bat– Beispiel-Starter für Windows- ⚙️
.env.example– Beispiel-Konfiguration für API-Keys
- Python 3.8+
- Twitch Developer App (Client-ID/Secret)
requests, ggf.playwright(nur/local),yt-dlp(nur/download)- Optional: lokaler Webserver (z. B. Laragon) für Player & PHP-Endpoints
pip install requests
# Für /local:
pip install playwright
python -m playwright install
# Für /download:
pip install yt-dlp- Repo klonen.
.env.examplenach.envkopieren undCLIENT_ID,CLIENT_SECRETusw. setzen.- In
fetch_clips_and_mp4.pyBasiswerte anpassen:CHANNEL_NAME = "dein_channel" DAYS_BACK = 30 MIN_VIEWS = 250
DAYS_BACK: Zeitfenster in Tagen (z. B. 730 = 2 Jahre)MIN_VIEWS: minimale Views
# Nur Links extrahieren:
python fetch_clips_and_mp4.py /local
# Clips herunterladen (Default, wenn kein Parameter):
python fetch_clips_and_mp4.py /download✨ Auto-Cleanup (nur /download): Clips außerhalb des Zeitfensters werden automatisch gelöscht.
<CHANNEL>_mp4_urls.json– Liste mit.mp4-Links oder lokalen Pfadenfetch_clips_and_mp4.log– Protokoll (API, Downloads, Löschungen)
Beispiel-JSON-Schema (vereinfacht):
[
{
"id": "ClipID",
"title": "Clip-Titel",
"url": "https://...mp4" ,
"local_path": "Twitch_Clips/...",
"created_at": "2024-12-31T23:59:59Z",
"view_count": 1234
}
]Dateien per Webserver bereitstellen:
player.html,get_lastplayed.php,save_lastplayed.php,<CHANNEL>_mp4_urls.json
Start:
http://localhost/player.html?clips=<CHANNEL>_mp4_urls.json
- ⏱️ Cooldown pro Clip (Standard: 240 Minuten - anpassbar in der player.htlm -> const cooldownMinutes = 240;)
- 📜 History in
clip_history.json - 🗓️ Clip-Datum anzeigen:
player.htmlliestcreated_ataus der JSON.
Optional schreibtwrite_clipdate.phpdas Datum in eine Textdatei → per OBS-Textquelle („Read from file“) im Stream einblendbar.
Diese PHP-Dateien werden vom Player per fetch() aufgerufen. Sie sind keine öffentliche API, sondern kleine Dateihilfen für den lokalen Player/OBS:
GET get_lastplayed.php– liefert das zuletzt gespielte ElementPOST save_lastplayed.php– speichert das zuletzt gespielte ElementPOST write_clipdate.php– schreibt das aktuelle Clip-Datum in eine Textdatei (für OBS-Overlays nutzbar)
start.batStartskript zum schnellen Aufruf der Standard-Befehle (anpassen nach Bedarf).
MIT – frei für private & kommerzielle Nutzung.