Benutzer:Patrick Oberdoerfer/ZUM-Apps und H5P/Flashcards schneller erstellen/: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
K (Gliederung verbessert) |
||
Zeile 1: | Zeile 1: | ||
== H5P Python-Kopierer (hier für Flashcards) == | |||
'''Anwendungsfall:''' Sie haben eine Zeichnung oder ein Bild und stellen dazu unterschiedliche Fragen. | '''Anwendungsfall:''' Sie haben eine Zeichnung oder ein Bild und stellen dazu unterschiedliche Fragen. | ||
Zeile 5: | Zeile 6: | ||
'''Idee und Lösung:''' Mit einem Python-Skript eine Kartenvorlage beliebig oft kopieren lassen. Wichtig für OER-Fans! Auch die Metadaten und Quellen werden dabei übernommen. So spart man sich viel Zeit bei der Erstellung von OER-Content. | '''Idee und Lösung:''' Mit einem Python-Skript eine Kartenvorlage beliebig oft kopieren lassen. Wichtig für OER-Fans! Auch die Metadaten und Quellen werden dabei übernommen. So spart man sich viel Zeit bei der Erstellung von OER-Content. | ||
Wie gehe ich vor? | === Wie gehe ich vor? === | ||
Damit das alles klappt werden unterschiedliche Programme und Vorbereitungen benötigt. | |||
==== Natürlich einen H5P-Editor für die Erstellung der H5P-Vorlage mit der ersten Flashcard ==== | |||
Wo finde ich überall H5P-Editoren? | |||
Natürlich bietet die ZUM e.V. einen unter https://apps.zum.de/ an. | |||
Eine ganz tolle Desktop-Version gibt es unter https://lumi.education/de/lumi-h5p-desktop-editor/ | |||
Zum Testen und Spiel: https://einstiegh5p.de/ | |||
oder natürlich im LMS, wie Moodle | |||
==== Python auf dem Rechner installieren ==== | |||
Hier gibt es immer die aktuellsten Versionen: https://www.python.org/downloads/ | |||
==== Einen Zielordner anlegen ==== | |||
Es gibt nichts digital persönlicheres als die Logik einer Ordnerstruktur. Kurz um, einen Ordner am passenden Ort anlegen. | |||
==== Zielordner befüllen und Skript ausführen ==== | |||
Damit das Skript auch funktioniert, muss jetzt der Ordner passend befüllt werden. | |||
[[Datei:Übersicht Zielordner.png|mini|Beschreibungen im Zielordner|rand|links]] | Es müssen das Python-Skript und die H5P-Vorlage drin sein. Doppelklick auf das Skript und fertig![[Datei:Übersicht Zielordner.png|mini|Beschreibungen im Zielordner|rand|links]] | ||
Zeile 24: | Zeile 39: | ||
==== Kopie des Skripts erstellen ==== | |||
Kopie der Skript-Vorlage (siehe unten) in einen Texteditor '''einfügen'''. | |||
'''Speichern unter''' wählen und die Endung '''.py''' hinzufügen | |||
und fügt diese in einen en diesen kommt das Python-Skript und die H5P-VorlageVertiefung | |||
Wie wurde das erstellt? | Wie wurde das erstellt? |
Version vom 19. Oktober 2024, 05:10 Uhr
H5P Python-Kopierer (hier für Flashcards)
Anwendungsfall: Sie haben eine Zeichnung oder ein Bild und stellen dazu unterschiedliche Fragen.
Problem: Eine angelegte Karte kann nicht einfach dupliziert werden. Diese Funktion ist leider in diesem Inhaltstypen nicht verfügbar.
Idee und Lösung: Mit einem Python-Skript eine Kartenvorlage beliebig oft kopieren lassen. Wichtig für OER-Fans! Auch die Metadaten und Quellen werden dabei übernommen. So spart man sich viel Zeit bei der Erstellung von OER-Content.
Wie gehe ich vor?
Damit das alles klappt werden unterschiedliche Programme und Vorbereitungen benötigt.
Natürlich einen H5P-Editor für die Erstellung der H5P-Vorlage mit der ersten Flashcard
Wo finde ich überall H5P-Editoren?
Natürlich bietet die ZUM e.V. einen unter https://apps.zum.de/ an.
Eine ganz tolle Desktop-Version gibt es unter https://lumi.education/de/lumi-h5p-desktop-editor/
Zum Testen und Spiel: https://einstiegh5p.de/
oder natürlich im LMS, wie Moodle
Python auf dem Rechner installieren
Hier gibt es immer die aktuellsten Versionen: https://www.python.org/downloads/
Einen Zielordner anlegen
Es gibt nichts digital persönlicheres als die Logik einer Ordnerstruktur. Kurz um, einen Ordner am passenden Ort anlegen.
Zielordner befüllen und Skript ausführen
Damit das Skript auch funktioniert, muss jetzt der Ordner passend befüllt werden.
Es müssen das Python-Skript und die H5P-Vorlage drin sein. Doppelklick auf das Skript und fertig!
Kopie des Skripts erstellen
Kopie der Skript-Vorlage (siehe unten) in einen Texteditor einfügen.
Speichern unter wählen und die Endung .py hinzufügen
und fügt diese in einen en diesen kommt das Python-Skript und die H5P-VorlageVertiefung
Wie wurde das erstellt?
Einen (beliebigen) Python-Chatbot zur Erstellung des Skripts. Oder die unten stehende Vorlage:-)
Oder hier der Dialog mit ChatGPT
Welche Software wird gebraucht?
Python und H5P-Editor
Anleitung:
Hier das Skript:
import zipfile
import json
import os
import shutil
# Funktion zum Vervielfältigen der Flashcards
def duplicate_flashcards(content_data, num_duplicates=10):
original_card = content_data['dialogs'][0] # Originale Karte
for i in range(num_duplicates):
# Dupliziere die Karte
new_card = original_card.copy()
new_card['text'] = f'<p style="text-align: center;"><strong>Bauteile {i+2}</strong></p>\n'
new_card['answer'] = f'<p style="text-align: center;">Vertikalrahmen {i+2}</p>\n'
content_data['dialogs'].append(new_card)
return content_data
# Pfade zur Original-H5P-Datei und zum Extraktionsort
h5p_file_path = 'interactive-content-35394.h5p'
extract_path = 'h5p_extract/'
# Extrahiere die H5P-Datei
with zipfile.ZipFile(h5p_file_path, 'r') as zip_ref:
zip_ref.extractall(extract_path)
# Pfad zur content.json und Bilderordner
content_json_path = os.path.join(extract_path, 'content', 'content.json')
with open(content_json_path, 'r', encoding='utf-8') as json_file:
content_data = json.load(json_file)
# Flashcards vervielfältigen (z.B. 10 mal)
updated_content_data = duplicate_flashcards(content_data, num_duplicates=10)
# Speichere die aktualisierte content.json
with open(content_json_path, 'w', encoding='utf-8') as json_file:
json.dump(updated_content_data, json_file, ensure_ascii=False, indent=4)
# Nur die erlaubten Dateien (JSON, Bilder) in die neue H5P-Datei packen
def zipdir(path, ziph):
# Gehe durch alle Dateien und füge nur zulässige Dateitypen hinzu
allowed_extensions = ['.json', '.png', '.jpg', '.jpeg', '.gif', '.bmp', '.tif', '.tiff', '.svg',
'.eot', '.ttf', '.woff', '.woff2', '.otf', '.webm', '.mp4', '.ogg', '.mp3',
'.m4a', '.txt', '.pdf', '.rtf', '.doc', '.docx', '.xls', '.xlsx', '.ppt',
'.pptx', '.odt', '.ods', '.odp', '.xml', '.csv', '.diff', '.patch', '.swf',
'.md', '.textile', '.wav', '.gltf', '.glb']
for root, dirs, files in os.walk(path):
for file in files:
if any(file.endswith(ext) for ext in allowed_extensions):
file_path = os.path.join(root, file)
ziph.write(file_path, os.path.relpath(file_path, path))
# ZIP die erlaubten Dateien in eine neue H5P-Datei
output_h5p_file = 'duplicated_flashcards_fixed.h5p'
with zipfile.ZipFile(output_h5p_file, 'w') as zipf:
zipdir(extract_path, zipf)
print(f'H5P-Datei erstellt: {output_h5p_file}')
Bei der Erstellung kamen zum Einsatz:
Python GPT via ChatGPT
Python 3.13 (64-bit)
H5P-Editor