Jinzora : diffuser votre musique sur internet

Jinzora est une plate-forme de streaming et un gestionnaire de fichiers audio intégralement basé sur une interface Web.

Les fichiers de votre médiathèque peuvent être diffusés par un flux audio au format MP3, Ogg, Wav ou WMA ou tout simplement téléchargés.

L'interface, très jolie et personnalisable par thèmes, permet de rechercher des morceaux par genre, par artiste ou par album. Le logiciel est même capable d'analyser les tags ID3 pour créer la bibliothèque et télécharger les jaquettes depuis Internet.

Pour la suite des opérations, des pré-requis sont nécessaires :

  • Disposer des droits d'administration ;
  • Disposer d'une connexion à Internet configurée et activée pour télécharger le logiciel ;
  • Un serveur LAMP (Linux Apache Mysql Php) fonctionnel.
  • Installer mpd

Paramétrage de php pour les prérequis Jinzora

Editer le fichier php.ini pour changer les valeurs de quelques variables :

sudo xdg-open /etc/php5/apache2/php.ini

Rechercher les lignes ci-dessous dans le fichier puis remplacer les valeur par celles-ci :

max_execution_time = 300
memory_limit = 32M
post_max_size = 32M
upload_max_filesize = 32M

Enregistrer les modifications et redémarrer le serveur web :

sudo /etc/init.d/apache2 restart

En cas de virtual-host

Dans le cas d'une installation sur un virtual-host apache dédié à Jinzora, il peut être préférable de faire le paramétrage de PHP dans la configuration du virtual-host (ce qui évite de changer la configue PHP pour tout le serveur).

Dans ce cas, Editer le fichier de configuration du virtual host

sudo xdg-open /etc/apache2/sites-available/virtual-host

Dans la section Directory adapté (celle dédiée au répertoire racine du virtual-host), ajouter les php value necessaires :

<Directory /var/www/jinzora/>
...
php_value max_execution_time 300
php_value post_max_size 32M
php_value upload_max_filesize 32M
...
</Directory>

Enregistrer les modifications et redémarrer le serveur web :

sudo /etc/init.d/apache2 reload

Installation du logiciel Jinzora

Jinzora n'est pas dans les dépots de base ; il va donc falloir récupérer la dernière version stable du logiciel directement sur internet, à l'adresse http://en.jinzora.com/download

Décompresser le fichier téléchargé

tar -zxvf j2.7.tar.gz

Ou bien clique droit sur le fichier puis Extraire ici

Déplacer le dossier contenant les fichiers de Jinzora dans le répertoire du serveur web Apache

sudo mv jinzora2/ /var/www/

Modification des permissions d'écritures

Le script configure.sh fourni par jinzora met les droits d'écriture pour tout le monde sur certains fichiers. Pour ceux que ca gêne, il semble possible de le modifier pour mettre ceci :

chown -R root:www-data settings.php jukebox/settings.php temp/ data/

chmod 775 settings.php

chmod 775 jukebox/settings.php

chmod 775 -R temp/

chmod 775 -R data/

cd /var/www/jinzora2/
sudo sh configure.sh

Paramétrage du logiciel Jinzora

Lancer dans votre navigateur internet la page http://127.0.0.1/jinzora2/ et suivre les instructions ; je vais tenter de vous décrire les étapes les plus importantes.

Etape 2 / Requirements

Il s'agit de vérifier que les indicateurs sont bien au vert ; il est normal que 'PHP PostgreSQL Support' et 'DBX Support' ne soient pas installés puisque nous n'utiliserons pas ces bases de données. Pour le pdf, c'est également normal.

Etape 5 / Main Settings

Saisir le nom d'utilisateur et le mot de passe de l'administrateur du logiciel Jinzora ; bien choisir Database comme Backend type puisque nous utiliserons la base de données Mysql.

Suivant vos goûts, choisissez le Frontend et le Style qui seront appliqués à l'application et l manière dont serons géré

Etape 6 / Backend Setup

Saisir les identifiants du compte root de la base MySql ; choisir true dans la zone 'Create Database' pour que la base de données soit créée automatiquement.

Etape 7 / Import media

Il vous suffit de parcourir les répertoires de votre disque dur pour en importer les fichiers musicaux. Attention : il faut impérativement que le serveur ait les droits d'accès à ces fichiers musicaux. C'est à dire que www-data (ou moins sécurisé 'other') ait au minimum les droits de lecture sur les fichiers !

Voilà, les étapes les plus sensibles ont été expliquées et c'est -déjà- la fin de l'installation ; exécuter la commande suivante pour supprimer le répertoire d'installation de Jinzora :

sudo rm -Rf /var/www/jinzora2/install

Et après avoir exécuté cette commande, accéder à Jinzora par l'adresse http://127.0.0.1/jinzora2/ ; il ne vous reste plus qu'à saisir vos identifiants pour accéder à votre musique !

1ere solution : Le player XSPF

Il est possible d'utiliser le player flash XSPF (http://musicplayer.sourceforge.net) au niveau du client. Ce player est déja intégré à Jinzora.

Le player s'ouvrira dans une fenêtre popup.

Pour l'utiliser il faut éditer le fichier jinzora2/settings.php comme ceci :

    $embedded_player = "xspf";

2eme solution : Le player d'enricolai.com

Player très sympa, mais moins simple a mettre en oeuvre. Démo : http://www.enricolai.com/FMP3/XSPF-flash-mp3-player.asp

D'abord il faut créer un fichier enricolai.php :

gedit /var/www/jinzora2/services/services/players/enricolai.php

copier/coller le contenu ci dessous dans gedit et sauver :

<?php if (!defined(JZ_SECURE_ACCESS)) die ('Security breach detected.');
	/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *      
	* JINZORA | Web-based Media Streamer 
	*
	* Jinzora is a Web-based media streamer, primarily desgined to stream MP3s 
	* (but can be used for any media file that can stream from HTTP). 
	* Jinzora can be integrated into a CMS site, run as a standalone application, 
	* or integrated into any PHP website.  It is released under the GNU GPL. 
	* 
	* Jinzora Author:
	* Ross Carlson: ross@jasbone.com
	* http://www.jinzora.org
	* Documentation: http://www.jinzora.org/docs	
	* Support: http://www.jinzora.org/forum
	* Downloads: http://www.jinzora.org/downloads
	* License: GNU GPL <http://www.gnu.org/copyleft/gpl.html>
	* 
	* Contributors:
	* Please see http://www.jinzora.org/modules.php?op=modload&name=jz_whois&file=index
	*
	* Code Purpose: Processes data for Enricolai FMP3 Embedded XSMPF Player
	* Created: 03.03.05 by Ross Carlson
	*
	* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

	define('SERVICE_PLAYERS_enricolai','true');

	/**
	* Returns the player width
	* 
	* @author Ben Dodson
	* @version 8/23/05
	* @since 8/23/05
	*/
	function SERVICE_RETURN_PLAYER_WIDTH_enricolai(){
	  return 350;
	}

	/**
	* Returns the players height.
	* 
	* @author Ben Dodson
	* @version 8/23/05
	* @since 8/23/05
	*/
	function SERVICE_RETURN_PLAYER_HEIGHT_enricolai(){
	  return 350;
	}

	
	/**
	* Returns the data for the form posts for the player
	* 
	* @author Ross Carlson
	* @version 06/05/05
	* @since 06/05/05
	* @param $formname The name of the form that is being created
	*/
	function SERVICE_RETURN_PLAYER_FORM_LINK_enricolai($formname){
		return "document.". $formname. ".target='embeddedPlayer'; openMediaPlayer('', 350, 350);";
	}
	
	
	/**
	* Returns the data for the href's to open the popup player
	* 
	* @author Ross Carlson
	* @version 06/05/05
	* @since 06/05/05
	*/
	function SERVICE_RETURN_PLAYER_HREF_enricolai(){
		return ' target="embeddedPlayer" onclick="openMediaPlayer(this.href, 350, 350); return false;"';
	}
	

	/**
	* Actually displays this embedded player
	* 
	* @author Ross Carlson
	* @version 3/03/05
	* @since 3/03/05
	* @param $list an array containing the tracks to be played
	*/
	function SERVICE_DISPLAY_PLAYER_enricolai($width, $height){
		global $root_dir, $this_site, $css;
		
		?>
		<SCRIPT LANGUAGE=JAVASCRIPT TYPE="TEXT/JAVASCRIPT"><!--\
			window.resizeTo(<?php echo $width; ?>,<?php echo $height; ?>)
		-->
		</SCRIPT>
		<?php	
		
		// Let's setup the page
		echo '<title>Jinzora Enricolai FMP3 XSPF Player</title>';
		echo '<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" bgcolor="#FFFFFF">';

		$playlist = $this_site. $root_dir. "/temp/playlist.xspf?". time();
		$height = $height - 30;
		?>
		<object 
			classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
			codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" 
			width="350" 
			height="<?php echo $height; ?>" 
			id="XSPF-FMP3" 
			align="middle">
			<param name="allowScriptAccess" value="sameDomain" />
			<param name="movie" value="<?php echo $this_site. $root_dir; ?>/services/services/players/XSPF.swf?action=play&playlist=<?php echo $this_site. $root_dir; ?>/temp/playlist.xspf&folder=<?php echo $this_site. $root_dir; ?>/services/services/players/&textcolor=033066&color=E6E9FB&loop=playlist&lma=yes&viewinfo=false" />
			<param name="quality" value="high" />
			<param name="bgcolor" value="#DADADA" />

			<embed src="<?php echo $this_site. $root_dir; ?>/services/services/players/XSPF.swf?action=play&playlist=<?php echo $this_site. $root_dir; ?>/temp/playlist.xspf&folder=<?php echo $this_site. $root_dir; ?>/services/services/players/&textcolor=000000&color=DADADA&loop=playlist&lma=yes&viewinfo=true" 
				quality="high" 
				bgcolor="#B0B0C0" 
				width="270" 
				height="<?php echo $height; ?>" 
				name="FMP3" 
				align="middle" 
				allowScriptAccess="sameDomain" 
				type="application/x-shockwave-flash" 
				pluginspage="http://www.macromedia.com/go/getflashplayer" />
		</object>
		<?php
		exit();
	}
	
	/**
	* Processes data for the jlGui embedded player
	* 
	* @author Ross Carlson
	* @version 3/03/05
	* @since 3/03/05
	* @param $list an array containing the tracks to be played
	*/
	function SERVICE_OPEN_PLAYER_enricolai($list){
		global $include_path, $root_dir, $this_site;
	
		$display = new jzDisplay();

		// Let's set the name of this player for later
		$player_type = "enricolai";		
				
		// Now let's loop through each file
		$list->flatten();

		$output_content = '<?xml version="1.0" encoding="UTF-8"?>'. "\n";
		$output_content .= '<playlist version="1" xmlns = "http://www.jinzora.org">'. "\n";
		$output_content .= '  <trackList>'. "\n";
		
		// Now let's loop throught the items to create the list
		foreach ($list->getList() as $track) {
			// Should we play this?
			if ((stristr($track->getPath("String"),".lofi.") 
				or stristr($track->getPath("String"),".clip."))
				and $_SESSION['jz_play_all_tracks'] <> true){continue;}
				
			// Let's get the meta
			$meta = $track->getMeta();
			
			// Let's get the art
			$parent = $track->getParent();
			if (($art = $parent->getMainArt()) !== false) {
				$image = jzCreateLink($art,"image");
			} else {
				$image = $this_site. $root_dir. "/style/images/default.jpg";
			}
			
			$output_content .= '    <track>'. "\n";
			$output_content .= '      <location>'. $track->getFileName("user"). '</location>'. "\n";
			$output_content .= '      <image>'. $image. '</image>'. "\n";
			$output_content .= '      <annotation>'. $meta['artist']. " - ". $meta['title']. '</annotation>'. "\n";
			$output_content .= '    </track>'. "\n";
		}

		// Now let's finish up the content
		$output_content .= '  </trackList>'. "\n";
		$output_content .= '</playlist>';
		
		// Now that we've got the playlist, let's write it out to the disk
		$plFile = $include_path. "temp/playlist.xspf";
		@unlink($plFile);
		$handle = fopen ($plFile, "w");
		fwrite($handle,$output_content);				
		fclose($handle);
			
		// Now let's display
		$width = "270";
		$height = "340";
		SERVICE_DISPLAY_PLAYER_enricolai($width, $height);
	}	
?>

Attention de ne pas laisser de ligne vide avant ou après, cela créera un disfonctionnement…

Ensuite télécharger les 2 fichiers flash (zippés) en bas de ces 2 pages : http://www.enricolai.com/FMP3/XSPF-flash-mp3-player.asp http://www.enricolai.com/FMP3/

Les décompresser tous deux dans le répertoire /var/www/jinzora2/services/services/players/

Enfin, modifier le fichier /var/www/jinzora2/settings.php

     $embedded_player = "enricolai";

Et voila un joli player flash !

Forum qui traite de l'intégration de ce dernier player (j'ai un peu changé le code) http://en.jinzora.com/forums/viewtopic.php?f=8&t=5995&p=22085

  • Ampache, unserveur de streaming plus évolué, basé sur une interface web
  • iceCast2, une autre plateforme de streaming audio,
  • Gnump3d, un serveur de streaming plus simple, mais avec moins de fonctionnalités
  • Subsonic : un serveur multimédia multiplate-forme basé sur Java.

Contributeurs : sidney_v

  • jinzora.txt
  • Dernière modification: Le 11/09/2022, 11:29
  • par moths-art