Question

Nous générons des fichiers MP3 à la volée en Python, et avoir besoin de modifier les en-têtes ID3 en mémoire à l'aide d'un objet de type fichier.

Toutes les bibliothèques ID3 sur PyPI apparaissent pour vous obliger à passer un chemin de système de fichiers en tant que chaîne. Je trouve cela assez frustrant!

La rédaction de notre MP3 généré sur le disque (ou disque virtuel) juste pour ajouter des balises ID3 est inacceptable pour plusieurs raisons, notamment la performance.

Compte tenu de la plentitude des bibliothèques ID3 , est-il une bibliothèque ID3 qui fonctionne simplement avec des objets semblables aux fichiers?

Était-ce utile?

La solution 3

Eh bien, la réponse semble être qu'un tel animal existe. Les avantages de la programmation à une interface sont apparemment perdu sur le python pirates cadre MP3. Nous avons résolu le problème en modifiant une bibliothèque existante.

Autres conseils

Pour ceux qui trouvent cette réponse dans un futur lointain, Mutagène, a parfaitement fonctionné pour moi et le constructeur pour l'un de ses objets MP3 prend soit un chemin de fichier ou un objet de type fichier (les docs appellent un « filething »).

De https://mutagen.readthedocs.io/en/latest/ utilisateur / filelike.html :

  

Le premier argument est passé à un type de fichier ou métadonnées peuvent être soit un nom de fichier ou un objet de type fichier, comme StringIO (BytesIO en Python 3) et Mutagène vont trouver quoi faire.

MP3("myfile.mp3")
MP3(myfileobj)

balises AFAIR sont ajoutées à la fin du fichier. Vous voudrez peut-être étudier le format et faire une simple bibliothèque vous, qui ne devrait pas être très difficile.

En outre, vous pouvez envisager de les stocker temporairement sur un système de fichiers comme tmpfs (ramdisk).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top