Choix d'un dossier multimédia

Bonjour à tous

Je me penche actuellement sur une app minidlna. Car c’est un usage qui est très sollicité dans mon entourage par des personnes qui souhaite reconvertir une vieille machine en un media center. Premier pas à mon avis pour ces personnes vers un serveur autohébergé avec d’autres services par la suite.

Le problème que je rencontre est le choix d’un dossier multimédia universel pour toutes les applications orienté vers du contenu multimédia.
A mon avis, le choix arbitraire d’un dossier pour minidlna n’aurait pas de sens, car les ressources multimédia devrait être accessible par toutes les applications dédié à cet usage.
J’ai notamment en projet de packager mpd, la problématique est donc la même.

Je souhaiterais donc que la question soit discutée afin de choisir ensemble l’emplacement le plus adéquat pour Yunohost.

Je pensais pour ma part à quelque chose du genre /home/yunohost.multimedia

Mais je suis confronté à 2 problèmes:

  • D’une part, la gestion des fichiers: Le moyen le plus simple est sans doute d’utiliser owncloud pour gérer sa bibliothèque de fichier, en ajouter ou en supprimer.
    Je me contente de sshfs, mais ce n’est pas souhaitable pour un usage simple.
    Mais owncloud, en l’état, accède au home de chaque user et au dossier /media uniquement.
    Un mount bind dans /media est une solution, mais peut-être un peu lourde.

Intégrer un dossier multimedia au mount de owncloud me semble plus adéquat.

  • D’autre part, un intérêt évident d’un client dlna est d’accéder aux téléchargements en torrent. Mais, en l’état, seul transmission et root ont accès au dossier /home/yunohost.transmission/completed

Là encore, ajouter minidlna au groupe debian-transmission est une solution, mais particulièrement sale je trouve.

Qu’en pensez-vous?

Tu peux éventuellement t’inspirer de baikal et roundcube qui détectent la présence de l’autre apps et s’interconnecte en conséquence. Par contre, owncloud n’est pas la seule app du genre, il y a seafile aussi.

Pour ce qui est du dossier yunohost.multimedia, je n’ai pas trop d’avis.

Tout ceci, pose la question plus générale de l’interconnection entre les apps au delà du SSO et du LDAP.

Là encore, ajouter minidlna au groupe debian-transmission est une solution, mais particulièrement sale je trouve.

En fait le groupe de /home/yunohost.transmission/completed, c’est www-data, je pense que c’est ça qui est sale. À mon avis, il aurait été plus judicieux de créer un groupe torrent ou multimédia comprenant www-data et debian-transmission. Ce groupe aurait été le groupe d’attribution de completed.

Je suis complètement d’accord avec toi sur le fait qu’il faudrait unifier les applications yunohost en fonction de leur… Euh… “Thématique” pour une meilleure gestion des ACLs.

L’idée d’un groupe multimedia est à mon avis un bon choix. Chaque application concernée pourrait ainsi rendre ses dossiers de média accessibles aux autres app.
Ça me semble particulièrement utile pour des vidéos ou de la musique, qui sont très gourmand en espace disque.

Par contre, pour ce qui est de l’accès physique aux dossiers. Des questions reste en suspend.

  • Comme on a pu le voir sur un autre topic, un torrent supprimé sans un “trash data” depuis l’interface de transmission devient difficile à supprimer sans passer en ssh.
  • Gérer une bibliothèque de media en ssh n’est pas forcément le plus agréable.
  • Owncloud (ou seafile) restent les moyens les plus simple de gérer des fichiers pour un utilisateur standard. (L’idée étant bien sûr d’être accessible à tous. Sinon, c’est sûr, sshfs est bien plus ergonomique que owncloud…)

Ce qui m’amène à plusieurs réflexions:

  • minidlna me permet de renseigner plusieurs dossiers sources (mais c’est pas forcément le cas de tout les logiciels de ce type?)
  • Rassembler tout les médias, ainsi que les torrents dans un dossier parent commun permettrait de réunir tout ce beau monde.
  • Owncloud (ou autre) pourrait, avec les droits du groupe (et un umask qui va bien!), accéder et gérer le contenu de ce dossier.
  • Mais quid de la distinction entre utilisateurs du système?
  • Si Owncloud accède au dossier, TOUT le monde accède au dossier. Est-ce souhaitable?
  • Si un utilisateur souhaite avoir sa propre bibliothèque de media, il peut certes créer un dossier à son nom, mais il sera accessible à tous.

Si Owncloud accède au dossier, TOUT le monde accède au dossier. Est-ce souhaitable?

Euuuuh… non, pouvoir!=devoir. À la limite si on laisse la possibilité à Owncloud de pouvoir accéder tel ou tel dossier, ça ne veut pas dire qu’il doit être visible pour tous les utilisateurs. Pour moi ce qu’il y a à faire c’est simplement créer des groupes afin que des applications puissent accéder à des dossier “de partage” en commun. Pour le cas owncloud, ça ne veut pas dire que l’on doive rendre accessible le dossier par défaut, parce que ce serait trop spécifique, il y aura simplement à l’ajouter depuis l’interface de façon manuelle sans chown/chmod/whatever.

La réalité c’est qu’il n’y a aucune gestion des utilisateurs “système” ni des ACL dans yunohost et c’est ça qui manque.

Salut, le plus gros problème je pense est le privilège.
J’ai contourné pour ma part le problème avec un dosier /home/media monté en SFTP root sur Owncloud pour tous les utilisateurs. C’est pas génial mais ça fait l’affaire comme rustine …

L’avantage sur /home/yunohost.multimedia est qu’il n’est pas pris en compte dans le backup si je ne m’abuse ? Parce que backup 500G de contenu multimedia par défaut c’est quand même lourd … Faudrait pouvoir exclure des dossiers du backup via flag mais c’est un autre débat

L’idée de faire un groupe est intéressante. Ainsi si owncloud est installé on peut rajouter l’utilisateur owncloud dans le groupe multimedia et donc monter le dossier facilement ? Par contre oui tous les utilisateurs pourraient le faire si dans l’admin on leur laisse la possibilité de monter des dossiers locaux, ce qui selon moi est une faille de sécurité.

Si on veut des bibliothèques média par utilisateur, il faut utiliser le dossier /home/$user qui est monté par défaut dans owncloud (par l’admin) ou un dossier similaire /home/yunohost.multimedia/$user sur lequel chaque user a les permissions appropriées par exemple ?

Et pour le moment, qui est en mesure de monter un dossier dans owncloud? Uniquement l’admin de owncloud?

Oui on pourrait aussi définir un dossier multimédia pour chaque user dans le dossier /home/yunohost.multimedia, qui lui serait monté automatiquement pour chaque user.
Ça me semble une bonne idée, d’autant plus si ça permet de l’exclure des backups.

Pour des app multimédia gérant le multi-utilisateur, ça simplifie d’autant plus les choses.
Pour minidlna, par exemple, en revanche, tout serait rassemblé. Bien que la structure de dossier reste maintenue.

Dés lors, il serait intéressant que le dossier torrent soit accessible par l’admin Owncloud (et peut-être que lui!) ou plus logiquement, par l’admin de transmission via owncloud (ou autre app bien sûr)!

L’idée d’un dossier dossier yunohost.multimedia avec des dossiers utilisateurs montés dans owncloud me semble être la meilleure solution.

En fait en regardant de nouveau je ne crois pas que les utilisateurs puissent eux-même monter des dossiers locaux.
C’est l’admin owncloud dans la partie administration, en montant un dossier de type local (qui peut avoir une variable comme $user).

Par contre faut vérifier les permissions nécessaires (owncloud ? utilisateur ?). En fait j’ai monté mon dossier media en local et ça fonctionne pourtant owncloud a pas les droits dessus j’ai pas tout compris …
Pour le dossier yunohost.transmission par contre j’ai pas réussi à le monter en écriture, j’ai du passer par SFTP. Je pige pas …

Sans passer par un montage manuel, on devrait pouvoir monter chaque dossier multimedia pour chaque user via /home/yunohost.app/owncloud/data/mount.json

Et le dossier de torrent de la même manière pour l’user admin de transmission.
A condition, je pense, que le dossier torrent dispose de droit de lecture adéquat pour owncloud, ce qui devrait être faisable via le groupe.

Je me demande aussi ce que donnerais l’usage de liens symboliques. Pour dépasser la compatibilité de owncloud seulement.

Bonne idée
Par contre pour le répertoire multimedia user j’ai un doute maintenant. Il y a de l’authentification en DLNA ? Parce que sinon je ne pense pas que ce soit une bonne idée de proposer des répertoires media en DLNA à chaque utilisateur. Si jamais c’est quand même fait, ils auraient plus leur place dans /home/$user en fait non ?

Négatif (je rajoute du random text pour avoir 20+ caractères)

Non il n’y a pas d’authentification en dlna, Mais l’idée de dossier pour chaque utilisateur n’est pas tant pour le dlna. Mais plutôt pour d’autres app multimédia gérant le multi-user et également pour que chacun puisse ajouter ses medias dans le dossier qui sera diffusé en dlna.

Avec un client dlna, on aura accès à l’ensemble du dossier, avec l’arborescence de chaque utilisateur.
Tu préférerais que tout le dossier multimédia d’un user en soit pas diffusé en dlna? (Ça se tient)

Hm je ne sais plus trop maintenant …

Je pense que pour des raisons de confidentialité il faudrait 2 répertoires multimedia: yunohost.multimedia (générique/fourre-tout) et yunohost.multimedia.user (qui contient des sous-dossiers par utilisateur). Avec comme option à l’installation de partager de multimedia.user en DLNA ou non.

Si on choisit de ne pas le partager on a deux dossiers distincts et donc chacun a sa librairie cloisinée + une librairie commune DLNA.

Si on choisit de partager, on a toujours une librairie commune partagée mais aussi une librairie multi-users partagée. Par exemple dans Kodi on peut définir des profils pour chaque user en montant /home/yunohost.multimedia.user/$user. Et dans un profil “commun” on monte /home/yunohost.multimedia.user et il récupère le contenu de tout le monde ?
Mais bon après c’est plus compliqué que ça car Kodi a besoin de cloisonner les films, séries TV, musique et photos pour bien reconnaitre les metadata … Dans une optique Kodi la librairie idéale serait donc Media>Films,Séries,Musique,Photo et en multiutilisateur on aurait un sous-dossier utilisateur par catégorie ce qui est hyper complexe :frowning:
Donc le mieux serait peut-être carrément des liens symboliques avec plusieurs configuration

J’en arrive à une arborescence de dossiers de la sorte:

  • /home/yunohost.multimedia/
  • User1/
    • Music
    • Picture
    • Video
    • Share/
      • Music
      • Picture
      • Video

Le dossier multimedia de l’user reste privé. Le dossier share est partagé en dlna, et autre selon les app.
L’utilisateur garde un contrôle total sur ce qu’il souhaite partager ou non.

Il faut juste que le dossier Share comporte le nom de l’user pour les différencier lorsqu’ils sont tous partagés.
Ça implique toutefois que les app soit capable de prendre en charge plusieurs dossiers. Sauf à créer un dossier Share global qui répertorie les dossiers des utilisateurs. (Et qui pourrait par la même filtrer les dossiers vides)

En fait en réflechissant je me dis qu’il faudrait plutôt une méta-réflexion sur l’usage multimédia de YunoHost en fonction des différentes apps.
Par exemple est-ce le rôle de MiniDLNA de créer une telle arborescence, ou son rôle n’est-il que de partager un dossier comme tu le disais ?

Voici quelques idées pour des règles que devraient suivre tous les applications multimédia dans YNH (voir plus bas).

  • Chaque application multimédia doit mettre son user dans le groupe “multimedia”
  • Chaque application multimédia doit vérifier que l’arborescence multimédia* existe, et la créer sinon
  • Chaque application multimédia a pour charge de se lier à l’arborescence multimédia* ou de faire des liens symboliques vers cette arborescence multimédia dans son dossier yunohost.app

*L’arborescence multimédia est la suivante:

  • /home/media/[Movies,TV Shows,Music,Pictures,Other] - backupé
  • /home/$user/media/[Movies,TV Shows,Music,Pictures,Other] - donc le dossier personnel de l’utilisateur - backupé
  • /home/yunohost.media/users/ - agrège tous les dossiers users en lien symbolique
  • /home/yunohost.media.usercommon/[Movies,TV Shows,Music,Pictures,Other] - liens symboliques vers les dossiers ci-dessus pour chaque utilisateur / méta-dossier non backupé

Voici une liste de toutes les applications multimédia qui me viennent à l’esprit et leur usage:

  • owncloud, seafile…: accès à l’arborescence multimédia partagée (/home/media) et accès individuels /home/$user/media
  • owncloud plugin musique: lecture de /home/media/music et /home/$user/media/music
  • Kodi (lecture de média sur serveur YNH raccordé à une TV): accès à /home/media/ et /home/yunohost.multimedia.usercommon/
  • Subsonic & co (écoute musique): accès à /home/media/music et /home/$user/media/music (je crois qu’il y a du multi-utilisateur)
  • Couchpotato (renaming de films): accès écriture à /home/media/movies (pas de multi-utilisateur)
  • Sickbeard/Sickrage/… (renaming de séries): accès écriture à /home/media/TV shows (pas de multi-utilisateur)
  • Headphones (renaming de musique): accès écriture à /home/media/music (pas de multi-utilisateur)
  • HTPCmanager (gérer ses services renaming et multimédia): besoin de rien (se lie aux autres apps)
  • MiniDLNA (partage DLNA): partage l’accès à des répertoires de l’arborescence multimédia au choix (/home/media,/home/yunohost.media.users, /home/yunohost.media.usercommon)

C’est tout non ?
Je ne pense pas que les applications torrents aient leur place dans la discussion. Elles n’ont rien à voir avec le multimédia. Il leur faut des applications de renaming (couchpotato, sickbeard, flexget…) pour les rendre multimédia car ce n’est pas leur objet

@scith @Maniack_Crudelis J’ai ajouté le sujet à l’ordre du jour de demain.
https://pad.lqdn.fr/p/yunohost-1-2016

N’hésitez pas à faire un tour sur le mumble/pad/xmpp pour discuter de ça ou faire le bilan de votre réflexion. Pour info, il y a eu aussi une réflexion pour classer les apps par catégorie via le manifest.json.

Je ne peux plus me défiler maintenant que j’ai lancé le sujet :smile_cat:
À quelle heure la réunion aura-t-elle lieu demain ? J’essaierai d’être présent pour discuter de tout cela.

C’est à 19h30.
Le message doit avoir au moins 20 caractères.

Tardivement avant de rejoindre Morphée.

Une nouvelle proposition d’arborescence:

  • /home/yunohost.multimedia/
    • user1/
      • Music
      • Picture
      • Video
      • Share (lien symbolique sur le dossier /home/yunohost.multimedia/Share)
    • Share/
      • Music
      • Picture
      • Video

Et dans chaque home, lien symbolique sur le dossier /home/yunohost.multimedia/$user

Pas de complication pour le merge des dossiers Share, il n’y en a qu’un seul.
Chaque user à son propre dossier de media.
Le tout est cloisonné dans un dossier qui échappe à l’archivage automatique. Ce qui évite d’exploser l’espace disque.

Mais le backup ne va-t-il pas suivre les liens symboliques ?
Et comment faire en fait si l’utilisateur veut éventuellement backuper son dossier média quand même ? Le proposer en option dans le manifeste de chaque app multimédia ?

Je pense aussi qu’il faut séparer Films, Séries TV et Vidéos (pour le reste). C’est nécessaire à la fois pour Kodi mais aussi pour Couchpotato, Sickbeard, Sickrage, …

Ou sinon on fait comme tu proposes music/picture/video (générique) et les apps en lien avec films/séries tv (kodi, couchpotato…) ont le devoir supplémentaire de créer un sous-dossier Movie/TV Show dans le répertoire vidéo ?

Dans ton arbo du coup le dossier pour chaque user est placé où ?