Hello,
Dans ce journal, je vous avais laissé avec cette perspective:
Idéalement, j'aimerai sortir la fonctionnalité de listing de contenus pour la déléguer à un programme externe, et ne plus être contraint de mettre le serveur HTTP et le media server au même endroit.
C'est chose faîte.
Quoi ?
Au lieu de lister le file system, le programme principal lance un programme secondaire qui reçoit comme argument la clé à lister et doit produire des lignes:
-
child_folderpour un sous dossier -
media.ext size urlpour un media
A partir de là, tout devient possible puisque l'on peut recourir à n'importe quel langage. A titre d'exemple, j'ai créé le listing des vidéos du Fosdem 2025, rangé par room, avec un peu de shell et de awk.

Ce format présente toute fois des limitations : le titre doit comporter l'extension afin de faire correspondre le mime-type. Le logiciel ne gère pas bien les espaces. La date n'est pas présente.
Une limitation plus globale et qui devait exister dans le logiciel d'origine est qu'il n'implémente qu'une petite partie du protocole. Cette partie semble être suffisante pour VLC et la Freebox - qui en demande d'ailleurs un plus que VLC - mais est peut être insuffisante pour un autre player.
Expérience
Le résultat est plutôt satisfaisant et j'ai plein d'autres cas d'usage en tête.
Mais écrire du C me fiche vraiment la frousse. Tout est plus compliqué que dans un langage de plus haut niveau. Rien qu'un str.split est une épreuve. J'ai constamment l'impression de jouer avec de la nitroglycérine en manipulant des pointeurs. A chaque nouveau besoin, j'ai eu envie de tout ré-écrire en python/elixir/nim.
Ce que je ferai peut être un jour cas au final, le protocole n'est pas très compliqué.
A l'inverse, C permet d'avoir un logiciel rapide, portable (je l'ai compilé pour mon serveur 32bit) et d'implémenter un serveur efficace, multi-protocole, multi-threadé, en quelques lignes.
Éternel insatisfait…
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.