Este artículo está dedicado a los administradores de Nudgis que necesitan automatizar tareas utilizando la API de Nudgis, como configurar un flujo de trabajo subordinado a su sistema de información.
Tabla de contenido
Para facilitar el uso de esta función, UbiCast ha creado un cliente de API de Nudgis en Python con scripts listos para usar. Comenzaremos explicando los requisitos de instalación para usar estos scripts. Luego, entraremos en detalle sobre el uso de ciertos scripts relevantes en el contexto del ciclo de vida de los medios, estadísticas/métricas y, finalmente, el proceso de reversibilidad. Antes de comenzar, puede acceder a los detalles de la API de Nudgis a través del menú 'Administración > Acerca de este sitio > Documentación de la API':
Prerrequisitos
Para usar el cliente de API de Nudgis, debe instalar el entorno de Python.
Consulte la documentación oficial del proyecto Python para la instalación.
El cliente de la API de Nudgis solo requiere que el módulo de Python 'Requests' esté instalado como dependencia.
A continuación, deberá descargar el código fuente de la implementación de Python del cliente de la API de Nudgis en esta dirección: https://github.com/UbiCastTeam/mediaserver-client/releases/latest
Asegúrese de verificar regularmente si hay actualizaciones de este código para garantizar que la API de Nudgis funcione correctamente.
Archivo de configuración
Luego, copie el archivo de configuración JSON de ejemplo 'config.json.example' en el directorio de ejemplos con el nombre 'config.json':
cd mediaserver-client-4.5 cp config.json.example examples/config.jsonFinalmente, debe editar el archivo de configuración (config.json) agregando la clave API de la cuenta API_KEY que ejecutará el script y la dirección de su servidor Nudgis SERVER_URL:
{ "API_KEY": "XXX", "CLIENT_ID": "python-api-client", "PROXIES": { "http": "", "https": "" }, "SERVER_URL": "https://XXX", "UPLOAD_CHUNK_SIZE": 5242880, "VERIFY_SSL": false }Clave API
Puede encontrar su clave API en la página de perfil de usuario de Nudgis a través de Mi Perfil > Mostrar mi clave API:
Para terminar este capítulo, recomendamos encarecidamente crear una cuenta de API dedicada sin contraseña y con solo los permisos apropiados para el script que se está ejecutando. Esta cuenta no podrá conectarse a Nudgis (ya que la contraseña está vacía).
La clave API maestra del sitio nunca debe utilizarse para la API de Nudgis.
Uso de scripts
Los scripts disponibles se pueden encontrar en el directorio 'examples' del proyecto.
En primer lugar, para comprobar que la configuración en el archivo 'config.json' es correcta y que puede comunicarse con su servidor, debe ejecutar el script ping_server.py.
Este script no requiere ningún permiso especial. El comando debe devolver un éxito, así como el número de versión de su servidor Nudgis. Una respuesta correcta se leerá de la siguiente manera:
cd examples python3 ping_server.py config.json {'success': True, 'mediaserver': '13.0.1'}Una vez completada con éxito esta prueba, ya puede ejecutar los scripts en el directorio de ejemplos. Comenzaremos nuestra exploración presentando scripts para administrar el almacenamiento de su servidor, ahorrando espacio en disco donde sea posible.
Ciclo de vida del video
Dado que el espacio en disco de su servidor es limitado, deberá limpiar sus videos regularmente. Esta operación se hace mucho más fácil con los scripts presentados a continuación. Sin embargo, deben usarse con el máximo cuidado, ya que eliminarán permanentemente los datos de su servidor. Es por esto que estos scripts le permiten realizar pruebas en blanco para validar las condiciones de eliminación. Para usarlos, debe tener permiso para acceder y eliminar los medios de su catálogo.
El primer script disponible es delete_video_qualities.py. Se puede usar para eliminar calidades de video no deseadas de un canal, o de un archivo csv. Una vez que se ha ejecutado el script, solo se conserva la mejor calidad del recurso MP4 (o MP3 si corresponde). También debe tener el permiso de edición 'Archivos de recursos' para poder ejecutar este script.
Pero también puede elegir qué resoluciones eliminar individualmente. Por ejemplo, para simular la eliminación de las calidades 360p de un canal (representado en el script por su identificador, u OID), ejecute el siguiente comando:
python delete_video_qualities.py --conf config.json --channel c12640c68e63b949rq65 --qualities "360"Al final de la ejecución del script, el espacio en disco que se liberará se muestra de la siguiente manera:
Would have freed 1 GB (29 resources) if run with "--delete".Si el resultado es satisfactorio, puede aplicar la eliminación agregando la opción --delete
python delete_video_qualities.py --conf config.json --channel c12640c68e63b949rq65 --qualities "360" --deleteEl siguiente comando detalla las opciones del script:
python delete_video_qualities.py --help
El segundo script presentado, cleanup_unwatched_media.py, elimina medios no vistos. Además de los permisos de acceso y eliminación de medios, este script requiere el permiso global 'Puede ver todas las estadísticas' y el permiso de edición 'Archivos de recursos'.
Por ejemplo, el comando para simular la eliminación de medios que tienen 10 visitas (o menos) para el año 2023 y ponerlos en la papelera de reciclaje sería el siguiente:
python cleanup_unwatched_media.py --conf config.json --start-date 2023-01-01 --end-date "2023-12-31" --max-views 10 --action trashPuede especificar un canal en particular en lugar de abordar todo el catálogo, si agrega la opción --channel-oid con el OID del canal seleccionado siguiendo:
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 c12664e08d3623prveobAl final de la ejecución del script, el espacio en disco que se liberará se muestra de la siguiente manera:
Trashing these VODs would have freed up to 61.4MBSi el resultado es satisfactorio, puede aplicar la eliminación agregando la opción --apply:
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 --applyEl siguiente comando detalla las opciones del script:
python cleanup_unwatched_media.py --help
Para concluir este capítulo, echemos un vistazo al script mass_delete.py, que le permite realizar una eliminación masiva especificando una lista de identificadores de video con un archivo CSV en la primera columna. Las líneas que comienzan con '#' se ignoran.
La ID del video también se puede encontrar en el enlace permanente de los medios.
Este script requiere el permiso global adicional 'Puede editar la configuración del sitio' y el permiso de edición 'Archivos de recursos'. Use el siguiente comando para ejecutar el script:
python mass_delete.py --conf config.json --csv ./videos-id.csvEl resultado debería ser similar a la siguiente línea:
Deleting these VODs would have freed 4.1 GBSi el resultado es satisfactorio, puede aplicar la eliminación agregando la opción --apply:
python mass_delete.py --conf config.json --csv ./videos-id.csv --applySi no desea que los medios vayan a la papelera de reciclaje, agregue la opción --permanent. Tenga cuidado al usarla, sin embargo, ya que la eliminación será inmediata y permanente:
python mass_delete.py --conf config.json --csv ./videos-id.csv --apply --permanentEl siguiente comando detalla las opciones del script:
python mass_delete.py --help
Estadísticas y métricas
Hay una gran cantidad de información sobre el uso del portal disponible en la interfaz del sitio, como se describe en el artículo 'Estadísticas en Nudgis'. Sin embargo, puede ir aún más lejos utilizando el script csv_media_stats.py, que se puede usar para extraer métricas que no están disponibles en las estadísticas de Nudgis. Por ejemplo, es posible obtener información sobre la distribución de sus medios por tipo, duración y datos por contribuyente, como los diez mayores contribuyentes en términos de medios publicados, por ejemplo.
Para poder analizar estos datos, primero debe generarlos ejecutando el script csv_media_generate.py. Debe tener el permiso global 'Puede editar la configuración del sitio' para ejecutar este script, cuyo comando generará un archivo CSV:
python csv_media_generate.py config.jsonUna vez que se haya generado el archivo, puede ejecutar su análisis con el siguiente comando:
python csv_media_stats.py --input media-monserveur.fr.csvTambién es posible recuperar la lista de medios de un orador en formato CSV. Simplemente especifique la dirección de correo electrónico del orador utilizando la opción --target-email, usando el script list_media_for_speaker.py. Debe tener permiso para acceder y editar los medios en el catálogo para usar este script:
python list_media_for_speaker.py --conf config.json --target-email "test@ubicast.eu"
Reversibilidad
La API de Nudgis también ofrece la opción de recuperar datos para copia de seguridad o migración. El script backup_media.py generará un archivo ZIP que contiene los metadatos del video y el recurso de video de mejor calidad. Este script requiere permisos de edición de 'Archivos de recursos' y 'Configuración de la comunidad'. Para guardar los medios cargados antes de 2024, use el siguiente comando:
python backup_media.py --conf config.json --date 2024-01-01 --treeDe forma predeterminada, la copia de seguridad irá al directorio 'backups'
Para eliminar los archivos respaldados, agregue la opción --delete. Tenga cuidado al usar esta opción, ya que la eliminación será inmediata y definitiva:
python backup_media.py --conf config.json --date 2024-01-01 -tree --deleteEl siguiente comando detalla las opciones del script:
python backup_media.py --help
El siguiente script, backup_channel_recursive.py, le permite restringir la copia de seguridad por canal especificando el identificador del canal, pero también realizará una copia de seguridad predeterminada en el directorio 'backups':
python backup_channel_recursive.py --conf config.json --channel c12640c68e63b949rq65 --tree
Para restaurar la copia de seguridad en Nudgis, simplemente use el script restore_media.py y especifique el directorio de su copia de seguridad. Los medios se restauran en su cadena original:
python restore_media.py --conf config.json --path backupsTambién puede restaurar medios a otro canal existente en su servidor Nudgis usando la opción --channel con el OID del canal correspondiente siguiendo. En este caso, los medios se restaurarán a ese canal:
python restore_media.py --conf config.json --path backups --channel c1266553ef1690qfgln9
El último script, download_all_original_files.py, recupera solo la mejor calidad de su recurso original, que en la mayoría de los casos es el MP4 con la mejor resolución. Para completar el comando, simplemente especifique un directorio de destino ('VideosHD' en el siguiente ejemplo).
python download_all_original_files.py config.json VideosHD
Esperamos que este artículo le haya ayudado a comprender esta función y sus muchas posibilidades. ¡No dude en contarnos su experiencia con la API de Nudgis en los comentarios!
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.