Playlist4me

python django angularjs streaming

Ecrit par Bastien Abadie, le 08/09/2016

Depuis fin 2014, j'apporte mon expertise technique à la société Playlist4me, un site de recommendation et diffusion musicale. Etant le premier développeur à intervenir sur le projet, j'ai pu prendre part aux différents choix techniques initiaux de la plate-forme.

Le cahier des charges initial prévoyait une architecture web découplée, avec un backend en Django, fournissant une API rest à de multiples frontends (2 versions web différentes, et une application mobile pour Apple & Android)

Backend & API

Le backend est une application Django moderne et robuste, fournissant un site d'administration classique aux employés de la société, mais surtout une API Rest aux différentes vitrines utilisées par les clients.

Les technologies suivantes ont été utilisées :

Plusieurs migrations majeures de l'application ont été réalisées depuis la mise en production des sites, en minimisant à chaque fois le downtime, grâce à l'utilisation de serveurs de pré-production validant les divers changements (nouvelles fonctionalités, update Django, ...).

Le backend supporte ces fonctions principales :

Double Frontend

Afin de créer deux versions du site (B2C & B2B), répondant à des besoins et un modèle économique différents (achats de playlists pour les particuliers, et diffusion de web radios pour les professionels), les technologies suivantes ont été utilisées :

Un des grands défis à relever a été la création d'un lecteur audio en Javascript supportant un mécanisme de crossfade (écoute avec fondu) compatibles avec différents navigateurs modernes.

Je n'ai pas participé au développement des applications mobiles, qui utilisent l'API précèdemment mentionée. Le design initial du site web a été crée par Aline Mengant, alors que la version actuelle sous Wordpress, a été réalisée par Smart Interactive.

Diffusion musicale

De la conception du projet à septembre 2016, deux modes de diffusion musicale étaient fournis :

Ces différents moyens étaient entièrement controlés par le backend en Python.

Analyse musicale

En collaboration avec Francois Aichelbaum, un projet de modernisation de l'infrastructure de diffusion musicale utilise ces technologies afin de remplacer intégralement le système actuel :

Afin de stocker plus de morceaux de musique, dans plus de formats, tout en répondant à une charge d'utilisateurs croissantes, l'utilisation d'un Cloud provider comme AWS est apparue évidente.

Teamplay

Ce projet est l'oeuvre de plusieurs intervenants qui utilisent ces outils pour communiquer et travailler efficacement, même à distance :