Base Scripte

Nützliche Python-Utility-Sammlung

Python Utilities Automation

🚀 Interesse an diesem Projekt? Sprechen Sie mich an!

📞 02406 803 7603 ✉️ info@computerkumpel.de

💰 Business Value

Vollautomatischer YouTube-Video-Workflow: Video von EU-Parlament herunterladen, KI-Titel + Thumbnail generieren, auf YouTube hochladen, Datenbank synchronisieren — alles in einem Durchlauf.

End-to-End Automation
Von der Video-Beschaffung über Titel-Generierung bis zum Upload — kein manueller Eingriff nötig.
🤖
KI-gestützt
OpenAI generiert automatisch SEO-optimierte YouTube-Titel aus Videobeschreibungen — kein manuelles Texten.
🗄️
DB-Synchronisation
Nach Upload automatischer MySQL-Update — Status, YouTube-ID und Fehlerflag werden in der Datenbank vermerkt.
🖼️
Thumbnail-Engine
Automatische Thumbnail-Erstellung mit Overlay, Textbox und OpenCV — Upload-ready für YouTube.

⚙️ Funktionsweise

Die Kern-Mechanik des Projekts im Überblick.

📡
1. Quelle abrufen
Video-Daten per API von multimedia.europarl.europa.eu holen, höchste Auflösung extrahieren, Download starten.
🧠
2. KI verarbeiten
OpenAI erstellt SEO-Titel und Kurzfrage aus Beschreibung — optimiert für YouTube-Suchanfragen.
🎨
3. Thumbnail bauen
Ersten Video-Frame extrahieren, Overlay-PNG drüberlegen, Frage-Text einzeichnen — komplett mit PIL + OpenCV.
📤
4. Upload + DB
Video via YouTube Data API hochladen, Thumbnail setzen, MySQL-Datensatz aktualisieren — fertig.

💻 Code-Einblicke

Ein Blick unter die Haube — so ist das Projekt technisch umgesetzt:

EU-Parlament Video-Download & JSON-Parsing

response = requests.get(url)
html_text = response.text

json_pattern = re.compile(
    r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>')
match = re.search(json_pattern, html_text)

if match:
    data = json.loads(match.group(1))
    resolutions = (data.get("props", {})
        .get("pageProps", {})
        .get("mediaItem", {})
        .get("videos", [])[0]
        .get("resolutions", []))
    
    # Größte Auflösung finden und herunterladen
    filtered = [r for r in resolutions if r.get("resolution")]
    sorted_res = sorted(filtered, key=lambda r: r.get("size"), reverse=True)
    largest = sorted_res[0]
    
    # Download mit Streaming
    response = requests.get(largest.get("url"), stream=True)
    with open(f'{media_business_id}_fin.mp4', 'wb') as f:
        for chunk in response.iter_content(chunk_size=8192):
            if chunk:
                f.write(chunk)

OpenAI Titel-Generierung für YouTube

openai.api_key = config.openai_api_key

prompt = (f"Create a YouTube video title from this description: "
          f"{description}. The title should be engaging and "
          f"informative. Dont use thes charaters @, #, $, %, "
          f"&, *, +, =, |, /, {{, }}, [, ]. It should look "
          f"like someones Search request to youtube search and "
          f"has a maximum of 70 charaters")

settings = {
    "engine": "text-davinci-003",
    "prompt": prompt,
    "temperature": 0.7,
    "max_tokens": 1000,
    "n": 1,
    "stop": "."
}

response = openai.Completion.create(**settings)
for choice in response.choices:
    title = choice.text.strip()
    title = title.replace("engine", "").replace("bar", "")
    print(f"Title: {title}")

Thumbnail-Erstellung mit PIL & OpenCV

# Video-Datei öffnen und ersten Frame extrahieren
video = cv2.VideoCapture(f'{media_business_id}_fin.mp4')
ok, frame = video.read()
cv2.imwrite(f'{media_business_id}_alt.jpg', frame, 
            [int(cv2.IMWRITE_JPEG_QUALITY), 90])
video.release()

# Overlay-PNG auf Thumbnail legen
input_image = Image.open(f'{media_business_id}_alt.jpg').convert('RGBA')
overlay_image = Image.open('overlay_thumb.png').convert('RGBA')
result = Image.alpha_composite(input_image, overlay_image)

# Text mit Frage einzeichnen
draw = ImageDraw.Draw(result)
font = ImageFont.truetype('arialbd.ttf', 100)
text = quest  # OpenAI-generierte Frage
draw.rectangle((50, 800, box_width, box_height), fill=(255,255,255))
draw.text((60, 810), text, font=font, fill=(0, 0, 0))
result.convert('RGB').save(f'{media_business_id}thumb.jpg')

YouTube Upload mit API & DB-Update

request_body = {
    'snippet': {
        'categoryId': 25,
        'title': title,
        'description': description,
        'tags': tags
    },
    'status': {
        'privacyStatus': 'public',
        'selfDeclaredMadeForKids': False,
    },
    'notifySubscribers': False,
}

mediaFile = MediaFileUpload(VIDEO_FILE_NAME, chunksize=-1, 
                            resumable=True)
response_upload = googleAPI.videos().insert(
    part='snippet,status',
    body=request_body,
    media_body=mediaFile
).execute()

# Thumbnail setzen
googleAPI.thumbnails().set(
    videoId=response_upload.get('id'),
    media_body=MediaFileUpload(thumb)
).execute()

# Datenbank aktualisieren
sql = "UPDATE Videos SET ytID=%s, uploaded=1 WHERE ID=%s"
cursor.execute(sql, (response_upload.get('id'), mediaID))
conn.commit()

⚡ In wenigen Tagen zum MVP — mit Vibecoding.

📞 02406 803 7603 ✉️ info@computerkumpel.de

🚀 Gebaut mit Vibecoding

👴 Klassische Entwicklung
  • 📋 2–3 Wochen Requirements
  • 🏗️ 2–3 Wochen Architektur
  • 💻 3–4 Wochen Implementierung
  • 🧪 1–2 Wochen Testing
  • ⏱️ Gesamt: 8–13 Wochen
🤖 Vibecoding-Ansatz
  • 🗣️ 0.5 Tage Prompt-Engineering
  • ⚡ 2–3 Tage iterative Generierung
  • 🔧 1–2 Tage Refinement
  • ✅ 1 Tag Testing & Deployment
  • ⏱️ Gesamt: 5–7 Tage

🎯 Strategische Erkenntnisse

Jedes Projekt liefert wertvolle Einsichten — technisch wie strategisch. Diese Learnings fließen direkt in Folgeprojekte ein.

🔒
Open Source = Unabhängigkeit
Offene Technologien bedeuten keine Vendor-Lock-ins, volle Kontrolle über den Code und langfristige Wartbarkeit ohne Lizenzkosten.
📈
Bottom-up statt Big Bang
Kleine, funktionierende Prototypen schlagen monatelange Planungsphasen. Erst beweisen, dann ausrollen — iterativ und risikominimiert.
🔄
Wiederverwendbarkeit
Modular aufgebauter Code beschleunigt Folgeprojekte massiv. Einmal gelöste Probleme werden zur Template-Bibliothek für zukünftige Herausforderungen.
🤖
KI als Beschleuniger
Vibecoding mit Coding-Agenten komprimiert Entwicklungszyklen von Wochen auf Tage — ohne Qualitätseinbußen durch iterative Prompt-Verfeinerung.

Bereit für Ihr nächstes Projekt?

Lassen Sie uns gemeinsam herausfinden, wo Automatisierung und KI den größten Hebel für Ihr Business haben — unverbindlich und pragmatisch.

🔍
Analyse & Konzept
Wir analysieren Ihre Anforderungen und skizzieren eine passgenaue Lösung — technisch fundiert und wirtschaftlich sinnvoll.
🧪
Proof-of-Concept
Ein funktionierender Prototyp innerhalb weniger Tage — Sie sehen das Ergebnis, bevor Sie sich committen.
🤝
Projektbegleitung
Von der Entwicklung über das Deployment bis zum Go-Live — ich begleite Sie durch den gesamten Prozess.
📞 02406 803 7603 ✉️ info@computerkumpel.de