Dieser Artikel richtet sich an Nudgis-Administratoren, die Aufgaben über die Nudgis-API automatisieren müssen, wie beispielsweise die Einrichtung eines mit ihrem Informationssystem verknüpften Workflows.
Inhaltsverzeichnis
Um die Nutzung dieser Funktion zu erleichtern, hat UbiCast einen Nudgis-API-Client in Python mit vorgefertigten Skripten erstellt. Wir beginnen mit der Erklärung der Installationsvoraussetzungen für die Nutzung dieser Skripte. Anschließend gehen wir detailliert auf die Verwendung bestimmter relevanter Skripte im Kontext des Medien-Lebenszyklus, der Statistiken/Metriken und schließlich des Reversibilitätsprozesses ein.
Bevor Sie beginnen, können Sie Details zur Nudgis-API über das Menü „Administration > Über diese Seite > API-Dokumentation“ aufrufen:
Voraussetzungen
Um den Nudgis-API-Client zu verwenden, müssen Sie die Python-Umgebung installieren.
Informationen zur Installation finden Sie in der offiziellen Dokumentation des Python-Projekts.
Der Nudgis-API-Client benötigt lediglich das Python-Modul 'Requests' als Abhängigkeit.
Anschließend müssen Sie den Quellcode der Python-Implementierung des Nudgis-API-Clients unter folgender Adresse herunterladen:
https://github.com/UbiCastTeam/nudgis-client/tags
Achten Sie darauf, regelmäßig nach Aktualisierungen dieses Codes zu suchen, um die ordnungsgemäße Funktion der Nudgis-API zu gewährleisten.
Konfigurationsdatei
Kopieren Sie dann die Beispiel-JSON-Konfigurationsdatei „config.json.example“ in das Ordnerverzeichnis „examples“ unter dem Namen „config.json“:
cd nudgis-client-1.1
cp config.json.example examples/config.jsonSchließlich müssen Sie die Konfigurationsdatei (config.json) bearbeiten, indem Sie den API-Schlüssel des API_KEY-Kontos, das das Skript ausführt, sowie die Adresse Ihres Nudgis-Servers SERVER_URL hinzufügen:
{
"API_KEY": "XXX",
"CLIENT_ID": "python-api-client",
"PROXIES": {
"http": "",
"https": ""
},
"SERVER_URL": "https://XXX",
"UPLOAD_CHUNK_SIZE": 5242880,
"VERIFY_SSL": false
}API-Schlüssel
Ihren API-Schlüssel finden Sie auf Ihrer Nudgis-Benutzerprofilseite über „Mein Profil > Mein API-Schlüssel anzeigen“:
Zum Abschluss dieses Kapitels empfehlen wir dringend, ein dediziertes API-Konto ohne Passwort zu erstellen, das nur über die für das auszuführende Skript erforderlichen Berechtigungen verfügt. Dieses Konto kann sich nicht bei Nudgis anmelden (da das Passwort leer ist).
Der Haupt-API-Schlüssel der Website darf niemals für die Nudgis-API verwendet werden.
Verwendung der Skripte
Die verfügbaren Skripte befinden sich im Verzeichnis „examples“ des Projekts.
Um zunächst zu überprüfen, ob die Konfiguration in der Datei „config.json“ korrekt ist und Sie mit Ihrem Server kommunizieren können, müssen Sie das Skript ping_server.py ausführen.
Dieses Skript erfordert keine besonderen Berechtigungen. Der Befehl muss einen Erfolg sowie die Versionsnummer Ihres Nudgis-Servers zurückgeben. Eine korrekte Rückmeldung sieht wie folgt aus:
cd examples
python3 ping_server.py config.json
{'success': True, 'mediaserver': '13.0.1'}Nachdem Sie diesen Test erfolgreich abgeschlossen haben, können Sie nun die Skripte im Verzeichnis „examples“ ausführen. Wir beginnen unsere Erkundung mit der Vorstellung von Skripten zur Verwaltung des Speicherplatzes Ihres Servers, um nach Möglichkeit Speicherplatz zu sparen.
Video-Lebenszyklus
Da der Speicherplatz Ihres Servers begrenzt ist, müssen Sie Ihre Videos regelmäßig bereinigen. Diese Operation wird durch die unten vorgestellten Skripte erheblich erleichtert. Sie sollten jedoch mit größter Vorsicht verwendet werden, da sie Daten dauerhaft von Ihrem Server löschen. Aus diesem Grund ermöglichen Ihnen diese Skripte die Durchführung von Testläufen (Simulationen), um die Löschbedingungen zu überprüfen. Um sie zu verwenden, müssen Sie über die Berechtigung verfügen, auf die Medien in Ihrem Katalog zuzugreifen und diese zu löschen.
Das erste verfügbare Skript ist delete_video_qualities.py. Es kann verwendet werden, um unerwünschte Videoqualitäten aus einem Kanal oder aus einer CSV-Datei zu löschen. Nach Ausführung des Skripts bleibt nur die beste Qualität der MP4- (oder ggf. MP3-) Ressource erhalten. Sie müssen außerdem über die Bearbeitungsberechtigung „Ressourcendateien“ verfügen, um dieses Skript ausführen zu können.
Sie können aber auch auswählen, welche Auflösungen einzeln gelöscht werden sollen. Um beispielsweise das Löschen der 360p-Qualitäten eines Kanals zu simulieren (im Skript durch seine Kennung oder OID dargestellt), führen Sie folgenden Befehl aus:
python delete_video_qualities.py --conf config.json --channel c12640c68e63b949rq65 --qualities "360"Am Ende der Skriptausführung wird der Speicherplatz, der freigegeben werden würde, wie folgt angezeigt:
Would have freed 1 GB (29 resources) if run with "--delete".Wenn das Ergebnis zufriedenstellend ist, können Sie die Löschung anwenden, indem Sie die Option --delete hinzufügen:
python delete_video_qualities.py --conf config.json --channel c12640c68e63b949rq65 --qualities "360" --deleteDer folgende Befehl liefert Details zu den Skriptoptionen:
python delete_video_qualities.py --help
Das zweite vorgestellte Skript, cleanup_unwatched_media.py, löscht nicht angesehene Medien. Zusätzlich zu den Medienzugriffs- und Löschberechtigungen erfordert dieses Skript die globale Berechtigung „Kann alle Statistiken sehen“ und die Bearbeitungsberechtigung „Ressourcendateien“.
Der Befehl zur Simulation der Löschung von Medien, die im Jahr 2023 10 Aufrufe (oder weniger) hatten, und deren Verschiebung in den Papierkorb würde beispielsweise wie folgt lauten:
python cleanup_unwatched_media.py --conf config.json --start-date 2023-01-01 --end-date "2023-12-31" --max-views 10 --action trashSie können einen bestimmten Kanal angeben, anstatt den gesamten Katalog zu adressieren, indem Sie die Option --channel-oid mit der entsprechenden Kanal-OID hinzufügen:
python cleanup_unwatched_media.py --conf config.json --start-date 2023-01-01 --end-date "2023-12-31" --max-views 10 --action trash --channel-oid c12664e08d3623prveobAm Ende der Skriptausführung wird der Speicherplatz, der freigegeben werden würde, wie folgt angezeigt:
Trashing these VODs would have freed up to 61.4MBWenn das Ergebnis zufriedenstellend ist, können Sie die Löschung anwenden, indem Sie die Option --apply hinzufügen:
python cleanup_unwatched_media.py --conf config.json --start-date 2023-01-01 --end-date "2023-12-31" --max-views 10 --action trash --channel-oid c12664e08d3623prveob --applyDer folgende Befehl liefert Details zu den Skriptoptionen:
python cleanup_unwatched_media.py --help
Um dieses Kapitel abzuschließen, werfen wir einen Blick auf das Skript mass_delete.py, mit dem Sie eine Massenlöschung durchführen können, indem Sie eine Liste von Video-IDs in der ersten Spalte einer CSV-Datei angeben. Zeilen, die mit „#“ beginnen, werden ignoriert.
Die Video-ID ist auch im permanenten Medienlink zu finden.
Dieses Skript erfordert zusätzlich die globale Berechtigung „Kann Website-Einstellungen bearbeiten“ sowie die Bearbeitungsberechtigung „Ressourcendateien“. Verwenden Sie den folgenden Befehl, um das Skript auszuführen:
python mass_delete.py --conf config.json --csv ./videos-id.csvDas Ergebnis sollte der folgenden Zeile ähneln:
Deleting these VODs would have freed 4.1 GBWenn das Ergebnis zufriedenstellend ist, können Sie die Löschung anwenden, indem Sie die Option --apply hinzufügen:
python mass_delete.py --conf config.json --csv ./videos-id.csv --applyWenn Sie nicht möchten, dass die Medien in den Papierkorb gelangen, fügen Sie die Option --permanent hinzu. Seien Sie bei der Verwendung jedoch vorsichtig, da die Löschung sofort und endgültig erfolgt:
python mass_delete.py --conf config.json --csv ./videos-id.csv --apply --permanentDer folgende Befehl liefert Details zu den Skriptoptionen:
python mass_delete.py --help
Statistiken und Metriken
Viele Informationen über die Nutzung des Portals sind in der Benutzeroberfläche der Website verfügbar, wie im Artikel „Statistiken in Nudgis“ beschrieben. Sie können jedoch noch weiter gehen, indem Sie das Skript csv_media_stats.py verwenden, mit dem Metriken extrahiert werden können, die in den Nudgis-Statistiken nicht verfügbar sind. Beispielsweise ist es möglich, Informationen über die Verteilung Ihrer Medien nach Typ, Dauer sowie Daten nach Mitwirkenden zu erhalten, wie etwa die zehn größten Mitwirkenden gemessen an den veröffentlichten Medien.
Um diese Daten analysieren zu können, müssen Sie sie zuerst generieren, indem Sie das Skript csv_media_generate.py ausführen. Sie müssen über die globale Berechtigung „Kann Website-Einstellungen bearbeiten“ verfügen, um dieses Skript auszuführen. Der Befehl generiert eine CSV-Datei:
python csv_media_generate.py config.jsonSobald die Datei generiert wurde, können Sie deren Analyse mit folgendem Befehl ausführen:
python csv_media_stats.py --input media-monserveur.fr.csvEs ist auch möglich, die Medienliste eines Referenten im CSV-Format abzurufen. Geben Sie dazu einfach die E-Mail-Adresse des Referenten mit der Option --target-email an, unter Verwendung des Skripts list_media_for_speaker.py. Sie müssen über die Berechtigung verfügen, auf die Medien im Katalog zuzugreifen und diese zu bearbeiten, um dieses Skript zu verwenden:
python list_media_for_speaker.py --conf config.json --target-email "test@ubicast.eu"
Reversibilität
Die Nudgis-API bietet auch die Möglichkeit, Daten zur Sicherung oder Migration wiederherzustellen. Das Skript backup_media.py generiert ein ZIP-Archiv, das die Video-Metadaten und das Video-Asset in bester Qualität enthält. Dieses Skript erfordert die Bearbeitungsberechtigungen „Ressourcendateien“ und „Community-Einstellungen“. Um Medien zu sichern, die vor 2024 hochgeladen wurden, verwenden Sie folgenden Befehl:
python backup_media.py --conf config.json --date 2024-01-01 --treeStandardmäßig wird das Backup im Verzeichnis „backups“ gespeichert.
Um die gesicherten Dateien zu löschen, fügen Sie die Option --delete hinzu. Seien Sie bei der Verwendung dieser Option jedoch vorsichtig, da die Löschung sofort und endgültig erfolgt:
python backup_media.py --conf config.json --date 2024-01-01 -tree --deleteDer folgende Befehl liefert Details zu den Skriptoptionen:
python backup_media.py --help
Das folgende Skript, backup_channel_recursive.py, ermöglicht es Ihnen, die Sicherung auf einen bestimmten Kanal zu beschränken, indem Sie die Kanal-ID angeben. Es führt jedoch standardmäßig ebenfalls eine Sicherung im Verzeichnis „backups“ durch:
python backup_channel_recursive.py --conf config.json --channel c12640c68e63b949rq65 --tree
Um die Sicherung auf Nudgis wiederherzustellen, verwenden Sie einfach das Skript restore_media.py und geben das Verzeichnis Ihrer Sicherung an. Die Medien werden in ihrem ursprünglichen Kanal wiederhergestellt:
python restore_media.py --conf config.json --path backupsSie können Medien auch auf einem anderen bestehenden Kanal Ihres Nudgis-Servers wiederherstellen, indem Sie die Option --channel mit der entsprechenden Kanal-OID verwenden. In diesem Fall werden die Medien in diesem Kanal wiederhergestellt:
python restore_media.py --conf config.json --path backups --channel c1266553ef1690qfgln9
Das letzte Skript, download_all_original_files.py, ruft nur die beste Qualität Ihrer Originalressource ab, was in den meisten Fällen das MP4 mit der besten Auflösung ist. Um den Befehl zu vervollständigen, geben Sie einfach ein Zielverzeichnis an („VideosHD“ im folgenden Beispiel):
python download_all_original_files.py config.json VideosHD
Wir hoffen, dieser Artikel hat Ihnen geholfen, sich mit dieser Funktion und ihren zahlreichen Möglichkeiten vertraut zu machen. Zögern Sie nicht, uns Ihre Erfahrungen mit der Nudgis-API in den Kommentaren mitzuteilen!
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.