Présentation du projet

You can read english introducing

MyDMAM est un Digital Media Asset Management c’est à dire un système de gestion technique et éditorial de médias. Il est pensé différemment des outils de ce genre, notamment par le fait qu’il n’a pas de pré-suppositions sur la façon d’organiser des médias.

MyDMAM c’est aussi et surtout un projet libre qui est actuellement en version alpha, avec quelques briques stables. Bien qu’il manque encore un certain nombre de fonctionnalités, il y a déjà une mise en production dans sa version actuelle.

Pour le moment, MyDMAM est destiné à tous les bidouilleurs dans le monde des médias, il n’est actuellement pas destiné à être mis en production bien qu’il n’y a pas pour le moment de gros bug connu et bloquant. A terme, MyDMAM devrait trouver une place dans une structure qui manipule des médias et qui à déjà une expérience dans les DMAM.

Il n’est pas destiné à remplacer ou à rentrer en concurrence avec quelconque DMAM propriétaire, mais plutôt à agir à coté, là où une fonction ou une possibilité manquerait.

D’ailleurs, la gratuité de MyDAM implique l’absence de garantie tel que l’indique la licence libre LGPL.

Actuellement, ce projet permet déjà :

  • D’indexer dans une base de donnée les chemins de fichiers contenus dans des dossiers locaux et distants via SMB/CIFS et FTP.
  • De rechercher via un site web le contenu de cette indexation.
  • De naviguer virtuellement dans les dossiers indexés via le site web.
  • D’analyser le contenu des vidéos contenues dans les dossiers indexés, afin d’importer les métadonnées techniques (principalement le format, la durée, codecs, débits avec ffprobe…) dans la base de donnée.
  • A l’issue de cette analyse, il sera préparé et affiché sur le site une vignette, voir un bas débit de ces médias.
  • L’accès au site web est contraint par un système de connexion (utilisateur, mot de passe, groupe et rôle) via une base de donnée local et/ou via un/des serveur(s) Active Directory.

Les fonctionnalités sont bien évidement limitées, mais le projet est construit pour pouvoir y ajouter bien plus de possibilités. Sont prévues dans l’avenir l’analyse d’images, les conversion de médias (front end automatisé d’ffmpeg et d’ImageMagick), de mouvement de fichiers via le site (copie, déplacement, synchronisation), de tagger dans la base des fichiers afin d’en faciliter la manipulation, et enfin la possibilité de structurer toutes ces fonctions pour les rendre automatiques et/ou manuelles.

Dans tous les cas, c’est l’administrateur qui décide de ce qui est fait et comment. Toutes ces fonctionnalités sont/seront actionnables au besoin par la configuration.

L’objectif de MyDMAM est d’offrir un panel de fonctions et d’API sans que rien ne doit être forcé, limité ou interdit. Par exemple, du moment ou vous respectez leur structure, vous pouvez agir directement sur les éléments en base de donnée sans être obligé de passer par une passerelle quelconque. D’autre part, si vous ajouter des champs supplémentaires aux éléments dans les bases, ils ne devraient pas gêner MyDMAM car il n’y a pas de schémas contraignant pour les bases (NoSQL).

Il n’est pas prévu pour MyDMAM d’être mis en front-end d’un site à forte visibilité/trafic, d’ailleurs, ce n’est pas un nouveau réseau social, ni un Youtube-like, ni destiné à être un site de partage de fichiers public. Il n’est pas prévu non plus d’y ajouter un connecteur Facebook ou Twitter, ni même de créer une appli mobile spécifique (Bootstrap s’adapte très bien au navigateur d’un mobile). Dans tous les cas MyDMAM est un projet libre, vous pouvez vous même vous laisser aller avec toutes vos envies.

La force de MyDMAM et son architecture décentralisé qui repose sur des bases elle mêmes décentralisées. Sans point central, pas de point de faiblesse. Déployez votre structure en suivant vos besoins de tolérances à la panne et de performances. Il n’y a pas vraiment de limites logicielles par rapport aux quantités, du moment que l’installation supporte les ressources demandées.

Pour aller plus loin, MyDMAM utilise un système de module optionnel et est capable de recevoir des éléments de code externes et supplémentaires afin étendre les fonctionnalités de base.

MyDMAM est écrit majoritairement en Java et repose sur plusieurs technologies libres :

  • Java 7 et 8
  • Apache Cassandra 1.2.x présentation
  • ElasticSearch 1.x présentation
  • Play! Framework 1.x présentation
  • Astyanax (un client pour Cassandra)
  • Twitter Bootstrap (un framework graphique)
  • Facebook React (un framework JavaScript de templating)
  • Gson (une bibliothèque Java pour  du JSON)
  • JSch (une bibliothèque Java pour du SSH/SFTP)
  • JCIFS (un client Java pour SMB/CIFS)
  • Re-Mimeutils (une bibliothèque Java pour émuler la commande unix File), forké depuis Mimeutils
  • MD5.js (une bibliothèque pour calculer des MD5 en Javascript)
  • SQLite et H2 DB (des moteurs de base de donnée pour le système de connexion utilisateur)
  • JSON Path (une bibliothèque Java pour faire du XPath avec JSON)
  • YUI Compressor (une bibliothèque Java pour réduire et optimiser le code Javascript)
  • ainsi que des appels indirects à leurs dépendances (Jackson, Lucene, Commons, Avro, Guava, Jettison, uuid, jgit, json smart…)

Pour exécuter MyDMAM, vous avez besoin de faire tourner Cassandra et Elastisearch, ainsi que Play pour la partie web. Vous avez une certaine liberté dans le déploiement et l’organisation des serveurs: tout est compatible Windows/OSX/Linux (via Java), du moment ou vous avez assez de RAM pour les prérequis de Cassandra et d’Elastisearch; ainsi que la même version de la JVM partout (v1.6 ou v1.7).

La partie web est du HTML 5 pur, sans applet. La lecture de fichiers vidéo/audio fait appel à des player flash quand HTML5 ne suffit plus.

Voir le tutoriel d’installation pour en savoir plus (en anglais).

Lire la FAQ pour les plus curieux.

Les évolutions futures qui sont prévues (en anglais).