rejetto forum

Script VBS Pour Générer récursivement des playlistes XSPF-XML [EN-FR]

0 Members and 1 Guest are viewing this topic.

Offline SilentPliz

  • Moderator
  • Tireless poster
  • *****
    • Posts: 1298
  • ....... chut ! shh!
    • View Profile
Salut à tous ! :)


Je poste ces scripts Windows Scripting Host (.vbs) permettant de générer récursivement une "playliste" .xspf ou .xml du contenu d'un Dossier et de ses sous-Dossiers.

Je pense que cela peut être utile, beaucoup de lecteurs Flash utilisés par les utilisateurs de HFS gèrent les listes de lecture en xml / xspf; cela évitera d'avoir un soft rien que pour faire ce type de liste.

- les extensions de fichiers prises en comptes dans les "playlistes" sont (il est possible d'en ajouter ou d'en retrancher au besoin) :

aac flv mp3 mp4 h264 swf jpg png gif avi mpg divx xvid mpeg asf mov mp2 m2p vob mkv ogg ogm ts flac ape wav a52 ac3 dts m4a m4p oga ogv

Pour pouvoir lancer les script vbs, un seul prérequis : activer Windows Scripting Host (si ce n'est pas déjà le cas) dans Windows... au moins le temps de créer vos "playlistes".

Les script vbs simples (sans "scan" ID3) sont très rapides... une dizaine de secondes pour 4439 Fichiers (j'ai testé ;))

Une partie des commentaires des scripts sont en anglais, mais j'ai commenté les modifications apportées, ainsi que ce qui me semblait important en français.

Pour utiliser les script, il suffit d'utiliser un fichier FR_XSPF_playliste.vbs du pack ci-joint, et de le mettre à la racine d'un Dossier ou d'une partition contenant des Dossiers audio ou vidéo.

Exemple :

c:\
Dossier
Dossier

Dossier serveur\
      Dossier audiovisuel\
             Dossier(album mp3)
             Dossier(18 albums mp3)
             Dossier(album mp3)
             Dossier(albums mp3)
             Dossier(120 albums mp3)
             Dossier(films)
             Dossier(Vrac-films-vidéos-jpg etc)
             Dossier(JPG)

FR_XSPF_playliste.vbs
     
Dossier
Dossier
Dossier


- Si vous voulez une "playliste" de la totalité du contenu du "Dossier audiovisuel", il vous suffit de déposer le Dossier sur le fichier FR_XSPF_playliste.vbs

- Si vous voulez une "playliste" uniquement du "Dossier(films)" vous faites la même opération avec ce Dossier.

- Si vous voulez une "playliste" du Dossier serveur, il vous suffit de déplacez le fichier FR_XSPF_playliste.vbs dans c:\ et de faire glisser Dossier serveur sur le fichier.

ATTENTION : les "playlistes" sont générées à l'endroit où se trouve le fichier FR_XSPF_playliste.vbs (je n'ai pas encore modifié cette gestion), donc si vous faites plusieurs "playlistes" à partir du même emplacement, pensez à renommer ou déplacer au fur et à mesure les listes créées dans leurs dossiers respectifs.


Quand une liste est générée, une boite de dialogue vous invite à éditer votre "playliste", pour rédiger des annotations par exemple; si votre éditeur ne s'ouvre pas, c'est que vous n'avez pas notepad++ qui est l'éditeur paramétré par défaut pour éditer la playliste.
Pour changer l'éditeur par défaut... éditez le fichier FR_XSPF_playliste.vbs > chercher notepad++.exe > remplacer le par votre éditeur : wordpad.exe, pspad.exe... etc
----------------------------------------------------------
A propos des vignettes qui peuvent être vues dans les lecteurs :

Si vous associez une image  (vignette) placée dans un Dossier contenant des fichiers audio (Dossier album mp3), cette image devra être nommée : front.jpg
Pour modifier ce nom par défaut, modifiez "/front.jpg</image>" dans le fichier FR_XSPF_playliste.vbs (.gif ou .png sont aussi des extensions valides)


Vous pouvez associer un fichier image (vignette) à chacun de vos fichiers vidéo.
Les vignettes doivent se nommer comme le nom de votre fichier vidéo avec .jpg pour extension : "nom_de_votre fichier vidéo.jpg"
Vous pouvez changer l'extension par défaut pour vos vignette en .gif ou en .png en modifiant la partie "jpg</image>" du fichier FR_XSPF_playliste.vbs (ne pas mettre de point)

Les photos non associées à des fichiers "multimedia" peuvent conserver leurs noms (ATTENTION : les lecteurs vidéo Flash acceptent bien les photos, mais les lecteur uniquement audio Flash MP3 peuvent interrompre la lecture quand ils trouvent une piste vierge de fichier .mp3).
Donc évitez de faire des listes audio comprenant des fichiers "images" autres que des fichiers "front.jpg" pour vos "players" uniquement audio.



Le contenu des playlistes est classé dans l'ordre alphabétique.
"Dé-commentez" la fonction suivante pour un classement aléatoire.

Quote
'Le contenu des playlistes est classé dans l'ordre alphabétique.
'"Dé-commentez" la fonction suivante pour un classement aléatoire.
'
'   ***********************************
'    Randomizer Function
'   ***********************************


   Dim intRnd, AryRnd(), arrDupe(), x, z, bexists
   z = 0
   Randomize  
   ReDim AryRnd(0)
   ReDim arrDupe(0)

   for x = 0 to (cptTot-1)
      ReDim Preserve AryRnd(UBound(AryRnd)+1)
      AryRnd(x) = arrFiles(x)
   next

   for x = 0 to (cptTot-1)
      ReDim Preserve arrDupe(UBound(arrDupe)+1)
      arrDupe(x) = arrFiles(x)
   next


'CC don't forget that arrays start at zero, the total number of files is the array length +1

while z < cptTot

intRnd = Int((cptTot * Rnd) + 1)
bexists = false

for x = 0 to cptTot
     If AryRnd(x) = intRnd then
          bexists = true          
          exit for
     End if
next

if bexists = false then
     AryRnd(z) = intRnd
     arrFiles(z)=arrDupe(intRnd-1)
     z = z + 1
end if
Wend

'***********************************
'CC Randomizer Function End
'***********************************

----------------------------------------------------------

C'est dur de faire si long pour un outil si simple... Désolé.  :-\ ;)


Modification : 29-03-2010  
Modifiez cette ligne dans le script par votre site si vous le désirez :
txt.write("<info>http://VotrePageWebIci/</info>")


Change: 03-29-2010
Change this line by your Web page if you wish:
txt.write("<info>http://YourWebpageHere/</info>")


Le fichier Playlisters xspf-xml [EN] & [FR].zip contient désormais l'ensemble des scripts... il ne vous reste plus qu'à choisir celui que vous utiliserez.

Playlisters xspf-xml [EN] & [FR].zip
now contains all the scripts ...  just choose one you will use.

Archive content / Contenu de l'archive :

[EN] TAG TITLE WITHOUT EXTENSION
Simple script & ID3 script + MP3Tag.dll
[EN] TAG TITLE WITH EXTENSION
Simple script & ID3 script + MP3Tag.dll
[FR] TAG TITRE SANS EXTENSION
Simple script & ID3 script + MP3Tag.dll
[FR] TAG TITRE AVEC EXTENSION
Simple script & ID3 script + MP3Tag.dll
« Last Edit: September 01, 2010, 12:49:44 AM by SilentPliz »


Offline TCube

  • Tireless poster
  • ****
    • Posts: 440
    • View Profile
Pour mémoire dans un autre post de "ma pomme" dans la section FR :

- "Il est évident que le player XPSf est intéressant - no plugin 2 install - mais quel boulot des gestion derrière pour l'admin. (sauf compter que le Xspf n'est pas dynamique sur la totalité des répertoires mais sur le seul dont on a fait soit même l'upolad !"

Et bien merci d'avoir trouvé et proposé une solution prenant en compte toutes les arborescences d'HFS.

Quote
Je poste ce script Windows Scripting Host (.vbs) permettant de générer récursivement une "playliste" .xspf ou .xml du contenu d'un Dossier et de ses sous-Dossiers.

Mais vu la longueur de post ... plus c'est simple plus ca devient compliqué dans la programmation  ;)

TCube


« Last Edit: March 25, 2010, 11:29:10 AM by TCube »
Make it idiot-proof and I will make a better idiot


Offline SilentPliz

  • Moderator
  • Tireless poster
  • *****
    • Posts: 1298
  • ....... chut ! shh!
    • View Profile
A propos des scripts prenant en compte les "tags ID3" :

Ces scripts sont plus longs lors du scan que les scripts simples (sans scan ID3); compter 100 ou 120 secondes pour + de 4400 mp3 déjà "taggés"... cela reste néanmoins très correct.

1)
- Télécharger le "pack" .zip en bas de post et décompressez-le.
- Vous aurez besoin des fichiers suivants (situés dans les sous-répertoires (ID3)) :
- La version du script en français FR_ID3_XSPF_Playlister.vbs ou la version en anglais EN_ID3_XSPF_Playlister.vbs
- MP3Tag.dll qui est la dll qui permet d'importer les tags ID3 dans les playlistes xspf

2)
Pour installer la dll MP3Tag.dll :

- Déplacer le fichier MP3Tag.dll à l'endroit où vous voulez le laisser de manière permanente :
  (exemple C:\Windows ou C:\Windows\system32).

- Ouvrir une invite de commande (démarrer > Exécuter > taper cmd).
- Placer vous dans le dossier où vous avez placé le fichier MP3Tag.dll
  (exemple : en tapant cd C:\Windows\system32).
- Tapez : regsvr32 MP3Tag.dll et fermez la fenêtre une fois la dll enregistrée avec succès.

Utilisation :
- Mettez le fichier .vbs dans le dossier contenant le dossier que vous voulez "playlister"
- Glissez-déposer le dossier contenant vos fichiers *.mp3 sur le fichier .vbs
- Un fichier "playlist.xspf" contenant vos "tags" sera créé dans le même dossier que le script.

PS : Le fichier playlist.xspf comprend les balises <comments></comments> et <annotation></annotation> qui correspondent à la même chose (vous pouvez y mettre des commentaires qui seront vus avec certains players), mais qui peuvent se nommer différemment selon le player utilisé... j'ai donc inclus les deux versions.

 ;)

Exemple de résultat sur une piste :

<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<title>Liste de lecture</title>
    <trackList>
       
        </track>
         <SortByPath>/Archie Shepp/A Sea of Faces/Hipnosis.mp3</SortByPath>
         <length>26m 18s</length>
         <location>/Musique mp3/Archie Shepp/A Sea of Faces/Hipnosis.mp3</location>
         <image>/Musique mp3/Archie Shepp/A Sea of Faces/front.jpg</image>
         <annotation></annotation>
         <duration></duration>
         <info>/Musique mp3/Archie Shepp/A Sea of Faces</info>
         <creator>Archie Shepp</creator>
         <title>Hipnosis</title>
         <album>A Sea of Faces</album>
         <trackNum>1/4</trackNum>
         <year>1993</year>
         <genre>Free Jazz</genre>
         <comments></comments>
        </track>


 </trackList>
</playlist>


Modification : 29-03-2010  
Modifiez cette ligne dans le script par votre site si vous le désirez :
txt.write("<info>http://VotrePageWebIci/</info>")


Change: 03-29-2010
Change this line by your Web page if you wish:
txt.write("<info>http://YourWebpageHere/</info>")


Le fichier Playlisters xspf-xml [EN] & [FR].zip contient désormais l'ensemble des scripts... il ne vous reste plus qu'à choisir celui que vous utiliserez.

Playlisters xspf-xml [EN] & [FR].zip
now contains all the scripts ...  just choose one you will use.

Archive content / Contenu de l'archive :

[EN] TAG TITLE WITHOUT EXTENSION
Simple script & ID3 script + MP3Tag.dll
[EN] TAG TITLE WITH EXTENSION
Simple script & ID3 script + MP3Tag.dll
[FR] TAG TITRE SANS EXTENSION
Simple script & ID3 script + MP3Tag.dll
[FR] TAG TITRE AVEC EXTENSION
Simple script & ID3 script + MP3Tag.dll
« Last Edit: September 01, 2010, 12:50:30 AM by SilentPliz »


Offline SilentPliz

  • Moderator
  • Tireless poster
  • *****
    • Posts: 1298
  • ....... chut ! shh!
    • View Profile
Scripts mis à jour : 01.09.2010

Ajouts :
- ligne <duration></duration> pour quelques lecteurs xspf/xml
- ajout de la prise en charge des extensions :  
avi mpg divx xvid mpeg asf mov mp2 m2p vob mkv ogg ogm ts flac ape wav a52 ac3 dts m4a m4p oga ogv




Scripts updated: 09.31.2010

Added:
- <duration></duration> line for some xspf/xml players
- Added support extensions:
avi mpg divx xvid mpeg asf mov mp2 m2p vob mkv ogg ogm ts flac ape wav a52 ac3 dts m4a m4p oga ogv

« Last Edit: September 01, 2010, 12:52:18 AM by SilentPliz »