Dieser Artikel richtet sich an Nudgis-Administratoren, die Aufgaben mithilfe der Nudgis-API automatisieren müssen, wie z. B. das Einrichten eines Workflows, der ihrem Informationssystem untergeordnet ist.
Inhaltsverzeichnis
Um diese Funktion benutzerfreundlicher zu gestalten, hat UbiCast einen Nudgis-API-Client in Python mit gebrauchsfertigen Skripten erstellt. Wir beginnen mit der Erläuterung der Installationsanforderungen für die Verwendung dieser Skripte. Anschließend gehen wir detailliert auf die Verwendung bestimmter relevanter Skripte im Kontext des Medienlebenszyklus, der Statistiken/Metriken und schließlich des Reversibilitätsprozesses ein. Bevor Sie beginnen, können Sie auf Details zur Nudgis-API über das Menü „Administration > Über diese Seite > API-Dokumentation“ zugreifen:
Voraussetzungen
Um den Nudgis-API-Client nutzen zu können, müssen Sie die Python-Umgebung installieren.
Bitte konsultieren Sie die offizielle Dokumentation des Python-Projekts für die Installation.
Der Nudgis-API-Client benötigt als Abhängigkeit nur die Installation des Python-Moduls 'Requests'.
Sie müssen dann den Quellcode für die Python-Implementierung des Nudgis-API-Clients unter dieser Adresse herunterladen:
https://github.com/UbiCastTeam/mediaserver-client/releases/latest
Überprüfen Sie regelmäßig, ob Updates für diesen Code verfügbar sind, um sicherzustellen, dass die Nudgis-API ordnungsgemäß funktioniert.
Konfigurationsdatei
Kopieren Sie dann die Beispiel-JSON-Konfigurationsdatei „config.json.example“ in das examples-Verzeichnis unter dem Namen „config.json“:
cd mediaserver-client-4.5 cp config.json.example examples/config.jsonSchließlich müssen Sie die Konfigurationsdatei (config.json) bearbeiten, indem Sie den API-Schlüssel des Kontos API_KEY, 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
Sie finden Ihren API-Schlüssel auf Ihrer Nudgis-Benutzerprofilseite unter „Mein Profil > Meinen API-Schlüssel anzeigen“:
Zum Abschluss dieses Kapitels empfehlen wir Ihnen dringend, ein dediziertes API-Konto ohne Passwort zu erstellen, das nur über die für das ausgeführte Skript erforderlichen Berechtigungen verfügt. Dieses Konto kann sich nicht bei Nudgis anmelden (da das Passwort leer ist).
Der Master-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.
Zunächst müssen Sie das Skript ping_server.py ausführen, um sicherzustellen, dass die Konfiguration in der Datei „config.json“ korrekt ist und Sie mit Ihrem Server kommunizieren können.
Dieses Skript erfordert keine besonderen Berechtigungen. Der Befehl muss einen Erfolg sowie die Versionsnummer Ihres Nudgis-Servers zurückgeben. Eine korrekte Rückgabe liest sich wie folgt:
cd examples python3 ping_server.py config.json {'success': True, 'mediaserver': '13.0.1'}Nachdem dieser Test erfolgreich abgeschlossen wurde, können Sie nun die Skripte im Verzeichnis „examples“ ausführen. Wir beginnen unsere Erkundung mit der Vorstellung von Skripten zur Verwaltung des Speichers Ihres Servers, um nach Möglichkeit Speicherplatz auf der Festplatte zu sparen.
Video-Lebenszyklus
Da der Speicherplatz auf Ihrem Server begrenzt ist, müssen Sie Ihre Videos regelmäßig bereinigen. Dieser Vorgang 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 diese Skripte Leer-Tests, um die Löschbedingungen zu validieren. Um sie zu verwenden, müssen Sie über die Berechtigung verfügen, auf 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. Sobald das Skript ausgeführt wurde, wird nur die beste Qualität der MP4-Ressource (oder ggf. MP3) beibehalten. Sie müssen auch über die Bearbeitungsberechtigung „Ressourcendateien“ verfügen, um dieses Skript ausführen zu können.
Sie können aber auch individuell auswählen, welche Auflösungen 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 den folgenden Befehl aus:
python delete_video_qualities.py --conf config.json --channel c12640c68e63b949rq65 --qualities "360"Am Ende der Skriptausführung wird der freizugebende Speicherplatz 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 durch Hinzufügen der Option --delete anwenden:
python delete_video_qualities.py --conf config.json --channel c12640c68e63b949rq65 --qualities "360" --deleteDer folgende Befehl gibt Details zu den Skriptoptionen an:
python delete_video_qualities.py --help
Das zweite vorgestellte Skript, cleanup_unwatched_media.py, löscht nicht angesehene Medien. Neben den Berechtigungen für den Medienzugriff und das Löschen erfordert dieses Skript die globale Berechtigung „Kann alle Statistiken sehen“ und die Bearbeitungsberechtigung „Ressourcendateien“.
Der Befehl zum Simulieren des Löschens von Medien, die 10 Aufrufe (oder weniger) für das Jahr 2023 haben, und zum Verschieben 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, wenn Sie die Option --channel-oid mit der ausgewählten 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 freizugebende Speicherplatz wie folgt angezeigt:
Trashing these VODs would have freed up to 61.4MBWenn das Ergebnis zufriedenstellend ist, können Sie die Löschung durch Hinzufügen der Option --apply anwenden:
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 gibt Details zu den Skriptoptionen an:
python cleanup_unwatched_media.py --help
Zum Abschluss dieses Kapitels 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 Videokennungen mit einer CSV-Datei in der ersten Spalte angeben. Zeilen, die mit „#“ beginnen, werden ignoriert.
Die Video-ID finden Sie auch im permanenten Medienlink.
Dieses Skript erfordert die zusätzliche globale Berechtigung „Kann Website-Einstellungen bearbeiten“ und 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 durch Hinzufügen der Option --apply anwenden:
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 jedoch vorsichtig bei der Verwendung, da die Löschung unmittelbar und dauerhaft erfolgt:
python mass_delete.py --conf config.json --csv ./videos-id.csv --apply --permanentDer folgende Befehl gibt Details zu den Skriptoptionen an:
python mass_delete.py --help
Statistiken und Metriken
Viele Informationen zur Portalnutzung sind in der Website-Oberfläche 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 und Daten pro Mitwirkendem zu erhalten, wie zum Beispiel die zehn größten Mitwirkenden in Bezug auf gepostete Medien.
Um diese Daten analysieren zu können, müssen Sie sie zuerst durch Ausführen des Skripts csv_media_generate.py generieren. Sie müssen über die globale Berechtigung „Kann Website-Einstellungen bearbeiten“ verfügen, um dieses Skript auszuführen, dessen Befehl eine CSV-Datei generiert:
python csv_media_generate.py config.jsonSobald die Datei generiert wurde, können Sie deren Analyse mit dem folgenden 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 einfach die E-Mail-Adresse des Referenten mithilfe der Option --target-email an, wobei Sie das Skript list_media_for_speaker.py verwenden. Sie müssen über die Berechtigung verfügen, auf die Medien im Katalog zuzugreifen und sie 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 für Sicherungen oder Migrationen wiederherzustellen. Das Skript backup_media.py generiert ein ZIP-Archiv, das die Videometadaten und das Video-Asset in bester Qualität enthält. Dieses Skript erfordert die Bearbeitungsberechtigung für „Ressourcendateien“ und „Community-Einstellungen“. Um die vor 2024 hochgeladenen Medien zu speichern, verwenden Sie den 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 jedoch vorsichtig bei der Verwendung dieser Option, da die Löschung unmittelbar und endgültig erfolgt:
python backup_media.py --conf config.json --date 2024-01-01 -tree --deleteDer folgende Befehl gibt Details zu den Skriptoptionen an:
python backup_media.py --help
Das folgende Skript, backup_channel_recursive.py, ermöglicht es Ihnen, das Backup nach Kanal einzuschränken, indem Sie die Kanalkennung angeben, führt aber auch ein Standard-Backup im Verzeichnis „backups“ durch:
python backup_channel_recursive.py --conf config.json --channel c12640c68e63b949rq65 --tree
Um das Backup auf Nudgis wiederherzustellen, verwenden Sie einfach das Skript restore_media.py und geben Sie das Verzeichnis Ihres Backups an. Die Medien werden in ihrer ursprünglichen Kette wiederhergestellt:
python restore_media.py --conf config.json --path backupsSie können Medien auch auf einem anderen vorhandenen Kanal auf Ihrem Nudgis-Server 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 ursprünglichen Ressource 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 vielen 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.