Ceci est une ancienne révision du document !
Subsonic
Il existe dorénavant, un fichier .deb sur le site de subsonic.org pour une installation plus simple.
Subsonic est un serveur de contenu audio et vidéo en streaming avec une interface web (via http ou https) et une gestion de plusieurs utilisateurs, ainsi que l'authentification LDAP.
La musique est encodée à la volée, par défaut grâce à ffmpeg et lame en MP3 pour l'audio et FLV pour la vidéo. Ces paramètres se changent très aisément. Un grand nombre de format est reconnu par défaut, ainsi que les tags correspondant avec la possibilité d'édition, notamment pour les formats MP3, AAC, OGG, FLAC, WMA et APE.
Subsonic est traduit dans de nombreuses langues, dont le français, avec 24 thèmes par défaut. Il offre la possibilité de lire la musique dans le lecteur web, comme dans un lecteur externe (avec gestion des playlists), de contrôler la musique à distance grâce à votre téléphone, ainsi que de télécharger la musique, piste par piste, comme un album entier. Des applications existent pour Android, iPhone/iPad, Windows Phone 7/8, Windows, Mac, Linux et BlackBerry PlayBook.
Il y a une gestion de la bande passante en limitant le bitrate, la musique sera automatiquement réencodée avec le bon débit binaire.
Subsonic fonctionne sur la plupart des plateformes grâce à la technologie Java, notamment sur Windows, Mac, Linux et autres variantes Unix.
Subsonic est un logiciel open-source sous licence GPL.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
- Java 1.6 ou ultérieur, il suffit d'installer les paquets openjdk-6-jre.
- Lame : Il suffit d'installer le paquet lame
Installation
Cette installation fonctionne pour Debian et Ubuntu.
via l'interface graphique
Télécharger le paquet .deb disponible sur la page suivante avec votre navigateur préféré : http://www.subsonic.org/pages/download.jsp.
Double-cliquer ensuite sur le fichier téléchargé, ceci lancera l'installation.
via la ligne de commande (version 4.9)
Ouvrez un terminal
wget http://freefr.dl.sourceforge.net/project/subsonic/subsonic/4.9/subsonic-4.9.deb
Puis installer le paquet
sudo dpkg -i subsonic-4.9.deb
post-installation
Le service n'est pas démarré automatiquement a la fin de l'installation, il faut le démarrer manuellement en ligne de commande
sudo service subsonic start
Le service sera automatiquement lancé au démarrage du système.
Configuration
Pour changer le numéro de port, les paramètres de mémoire java ou autres paramètres de lancement, éditer la variable SUBSONIC_ARGS dans /etc/default/subsonic avec les droits d'administration. Pour redémarrer Subsonic, faire
sudo service subsonic restart
Utilisation
Subsonic est désormais disponible à l'adresse http://localhost:4040. Changer la langue en se rendant dans Settings>Personal, puis suivre les instructions de la page d'accueil. Une fois le ou les dossiers contenant les médias choisi, le service est fonctionnel. L'utilisation et la configuration sont très intuitives et ne présentent aucune difficulté particulière. Il existe différentes applications disponible sur le site officiel. Pour contrôler la musique à distance grâce à un téléphone, se rendre sur cette page : http://votre_ip_ou_votre_nom_de_domaine:4040/wap
Logs
En cas de problème, penser à regarder les logs dans /var/subsonic.
Désinstallation
Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
Fork de Subsonic : Supersonic & Madsonic
Il est à noter que Subsonic étant davantage reconnu comme un logiciel Open Source qu'un Logiciel Libre, un fork s'est mis en place sous le nom de Supersonic ici : https://github.com/Mach5/supersonic ; le forum de discussion à ce propos commence par là : http://forum.subsonic.org/forum/viewtopic.php?f=3&t=3521 Ce projet ne semble cependant plus soutenu. Un autre fork nommé Madsonic est toujours actif ici http://www.madsonic.org/
Désactivation de la licence
Subsonic requiert une licence (1 $ par mois) pour les fonctions suivantes :
- streaming vidéo;
- connexion depuis un smartphone grâce à l'application officielle.
Nous allons voir comment désactiver la licence. Pour cela, nous allons modifier le code Java et recompiler l'application.
Installation des outils nécessaires et récupération des sources
Installons les outils nécessaires :
sudo apt-get install maven openjdk-7-jdk subversion lintian dpkg-repack fakeroot
Récupérons la dernière version des souces :
svn checkout svn://svn.code.sf.net/p/subsonic/code/trunk subsonic-code
Les sources seront téléchargées dans le dossier subsonic-code.
svn checkout svn://svn.code.sf.net/p/subsonic/code/tags/release-5.0 subsonic-code
Modification des sources
Se placer dans le dossier contenant les sources :
cd subsonic-code
Le patch à appliquer est le suivant :
Index: subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java =================================================================== --- subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java (revision 4101) +++ subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java (working copy) @@ -647,14 +647,11 @@ } public boolean isLicenseValid() { - return isLicenseValid(getLicenseEmail(), getLicenseCode()) && licenseValidated; + return true; } public boolean isLicenseValid(String email, String license) { - if (email == null || license == null) { - return false; - } - return license.equalsIgnoreCase(StringUtil.md5Hex(email.toLowerCase())); + return true; } public LicenseInfo getLicenseInfo() { @@ -1264,36 +1261,8 @@ private void validateLicense() { String email = getLicenseEmail(); Date date = getLicenseDate(); - - if (email == null || date == null) { - licenseValidated = false; - return; - } - licenseValidated = true; - - HttpClient client = new DefaultHttpClient(); - HttpConnectionParams.setConnectionTimeout(client.getParams(), 120000); - HttpConnectionParams.setSoTimeout(client.getParams(), 120000); - HttpGet method = new HttpGet("http://subsonic.org/backend/validateLicense.view" + "?email=" + StringUtil.urlEncode(email) + - "&date=" + date.getTime() + "&version=" + versionService.getLocalVersion()); - try { - ResponseHandler<String> responseHandler = new BasicResponseHandler(); - String content = client.execute(method, responseHandler); - licenseValidated = content != null && !content.contains("false"); - if (!licenseValidated) { - LOG.warn("License key is not valid."); - } - String[] lines = StringUtils.split(content); - if (lines.length > 1) { - licenseExpires = new Date(Long.parseLong(lines[1])); - } - - } catch (Throwable x) { - LOG.warn("Failed to validate license.", x); - } finally { - client.getConnectionManager().shutdown(); - } + return; } public synchronized void scheduleLicenseValidation() { Index: pom.xml =================================================================== --- pom.xml (revision 4101) +++ pom.xml (working copy) @@ -102,6 +102,13 @@ <module>subsonic-assembly</module> </modules> </profile> + <profile> + <id>debian</id> + <modules> + <module>subsonic-booter</module> + <module>subsonic-installer-debian</module> + </modules> + </profile> </profiles> @@ -170,4 +177,4 @@ </plugins> </build> -</project> \ No newline at end of file +</project>
Pour appliquer un patch, copiez le contenu du patch ci-dessus dans un nouveau fichier nommé "no_license.patch", et placez-le dans le dossier "subsonic-code". Appliquez ensuite le patch grâce à la commande :
patch -p0 < no_license.patch
Il reste à compiler tout ça :
mvn -P debian install
Maven va télécharger de nombreux plugins, cela peut prendre du temps ;) Si tout s'est bien passé, vous devriez obtenir :
[INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] Subsonic .......................................... SUCCESS [1.889s] [INFO] Subsonic Main ..................................... SUCCESS [15.290s] [INFO] Subsonic Booter ................................... SUCCESS [5.499s] [INFO] Subsonic Installer for Debian ..................... SUCCESS [10.345s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 33.277s [INFO] Finished at: Thu Jan 09 22:06:15 CET 2014 [INFO] Final Memory: 13M/106M [INFO] ------------------------------------------------------------------------
Il ne nous reste plus qu'à installer le paquet créé :
sudo dpkg -i subsonic-installer-debian/target/subsonic*.deb
Ça marche pas...
Si vous avez un problème de compilation (le patch fonctionne pour la révision 4101, version 5.0 de Subsonic, mais il ne pourrait plus fonctionner pour les versions ultérieures), voici quelques explications qui vous permettront d'adapter les modifications vous-même.
Tout d'abord, dans le fichier "pom.xml", on ajoute le profil "debian", pour ne compiler que ce qui est nécessaire à Ubuntu, grâce aux lignes 105 à 111 (fichier exemple modifié, révision 4101) :
<profile> <id>debian</id> <modules> <module>subsonic-booter</module> <module>subsonic-installer-debian</module> </modules> </profile>
Ensuite, pour le fichier de licence proprement dit "subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java", 3 méthodes sont modifiées :
public boolean isLicenseValid() { return true; } public boolean isLicenseValid(String email, String license) { return true; } private void validateLicense() { String email = getLicenseEmail(); Date date = getLicenseDate(); licenseValidated = true; return; }
Voici la source avec la licence active, et la source avec la licence désactivée (valable pour la révision 4101). Bon courage !
Voir aussi
- Jinzora, un autre serveur de streaming.
- iceCast, un autre serveur de streaming.
- Gnump3d, un serveur de streaming plus simple, mais avec moins de fonctionnalités.
Contributeurs principaux : clement.analogue.