Et l'eau,
* réédition ancien message
ligne de commande dans un dossier (création environnement virtuel et installation du module tinytag):
$python3 -m venv venv
$ . venv/bin/activate
$pip install tinytag==0.18.0
ouvrir un fichier (nom : app.py) dans le dossier contenant l'environnement virtuel et taper ceci :
import os
import json
from tinytag import TinyTag
try:
output = []
source = "./musics/"
if os.path.isdir(source):
mp3s = os.listdir(source)
for mp3 in mp3s:
tags = TinyTag.get(os.path.join(source, mp3))
row = {
'album': tags.album,
'albumartist': tags.albumartist,
'artist': tags.artist,
'audio_offset': tags.audio_offset,
'bitrate': tags.bitrate,
'disc': tags.disc,
'disc_total': tags.disc_total,
'duration': tags.duration,
'filesize': tags.filesize,
'genre': tags.genre,
'samplerate': tags.samplerate,
'title': tags.title,
'track': tags.track,
'track_total': tags.track_total,
'year': tags.year,
}
output.append(row)
print(json.dumps(output))
# open('./output.json', "w").write(json.dumps(output))
else:
raise Exception("ce répertoire (%s) n'existe pas" % source)
except Exception as e:
print('error =>', e)
pour voir le résultat ou si tu veux faire une sortie dans un fichier json (dans ce cas, tu décomentes la ligne open(....).write(....)):
python app.py
Dans le cas où tu souhaites récupérer à la volée tous les tags de tes mp3,
Tu ouvres un nouveau fichier qui sera en bash et tu l'enregistres sous le nom "script_schell". Tu y saisis ceci :
#!/usr/bin/env bash
source venv/bin/activate
python app.py
deactivate
* ne pas oublier de rendre ce fichier exécutable....
$chmod 777 script_schell
Pour finir en php, tu fais ceci dans un fichier:
<?php
$command = escapeshellcmd('./script_schell');
$output = shell_exec($command);
header('Content-Type: application/json');
echo json_encode(json_decode($output, true));
?>
* il est évident que cette solution fonctionne sur Unix / Unix-like ....
résultats en image :
-
navigateur
-
éditeur Modifié par niuxe (05 Feb 2020 - 00:17)