'Divan dit vent', 'description' => 'Installez-vous confortablement et laissez-vous emporter par les discussions animées du Divan dit vent. Le podcast audio de l\'association Camélia Studio vous invite à explorer les mondes fantastiques de la japanimation et bien plus encore. Plongez dans des critiques passionnées des dernières séries et films d\'animation, tout en découvrant des interviews exclusives avec des experts et des passionnés des différentes facettes de la culture. Avec chaque épisode, embarquez pour un voyage au pays de la créativité et de l\'imagination, où les voix des artistes et des fans se mêlent pour créer une symphonie culturelle captivante.', 'website' => 'https://camelia-studio.org/branches/divan-dit-vent/', 'author' => 'Camélia Studio', 'email' => 'contact.c.a@camelia-studio.org', 'category' => 'Animation & Interviews', 'copyright' => date('Y'), 'language' => 'fr-fr', 'image_url' => 'https://camelia-studio.org/branches/divan-dit-vent/img/logo.png', 'mp3_directory' => '/var/www/camelia-studio.org/branches/divan-dit-vent/mp3/', 'mp3_web_path' => 'https://camelia-studio.org/branches/divan-dit-vent/mp3/' ]; // Entêtes pour le XML header('Content-Type: application/xml; charset=utf-8'); // Fonction pour obtenir les métadonnées d'un fichier MP3 function getMp3Metadata($file) { $getID3 = new getID3(); $fileInfo = $getID3->analyze($file); getid3_lib::CopyTagsToComments($fileInfo); $metadata = [ 'title' => '', 'artist' => '', 'album' => '', 'duration' => '', 'description' => '' ]; // Récupération du titre if (!empty($fileInfo['comments']['title'][0])) { $metadata['title'] = $fileInfo['comments']['title'][0]; } else { // Utiliser le nom du fichier si pas de titre $metadata['title'] = pathinfo($file, PATHINFO_FILENAME); } // Récupération de l'artiste if (!empty($fileInfo['comments']['artist'][0])) { $metadata['artist'] = $fileInfo['comments']['artist'][0]; } // Récupération de la description depuis le commentaire if (!empty($fileInfo['comments']['comment'][0])) { $metadata['description'] = $fileInfo['comments']['comment'][0]; } // Formatage de la durée if (!empty($fileInfo['playtime_seconds'])) { $duration = $fileInfo['playtime_seconds']; $metadata['duration'] = sprintf('%02d:%02d:%02d', ($duration/3600), ($duration/60%60), $duration%60 ); } return $metadata; } // Ancienne fonction pour la compatibilité si getID3 n'est pas disponible function getMp3Duration($file) { $mp3file = fopen($file, "rb"); $block = fread($mp3file, 100); $mp3info = array(); if (substr($block, 0, 3) == "ID3") { // Fichier avec ID3v2 fseek($mp3file, 6); $block = fread($mp3file, 4); $header_size = unpack('N', $block); fseek($mp3file, $header_size[1] + 10); } do { $block = fread($mp3file, 10); if (feof($mp3file)) break; if (substr($block, 0, 1) == chr(255)) { $byte = ord(substr($block, 1, 1)); if ($byte >= 224) { $mp3info['version'] = ($byte & 24) >> 3; $mp3info['layer'] = ($byte & 6) >> 1; $mp3info['bitrate'] = ord(substr($block, 2, 1)) >> 4; $mp3info['sampling_rate'] = (ord(substr($block, 2, 1)) & 15) >> 2; break; } } } while (true); fclose($mp3file); // Calcul approximatif de la durée $duration = (filesize($file) * 8) / (($mp3info['bitrate'] + 1) * 1000); return sprintf('%02d:%02d:%02d', ($duration/3600), ($duration/60%60), $duration%60); } // Création du XML echo '' . "\n"; echo '' . "\n"; ?> <?php echo htmlspecialchars($config['title']); ?> Copyright <?php echo htmlspecialchars($title); ?> Épisode : Épisode :