Comment jouer des fichiers mp3 à partir de l'URL
Je suis en train d'écrire un script python qui permettra de lire les fichiers mp3 à partir de Soundcloud URL
C'est ce que j'ai déjà fait:
from urllib.request import urlopen
url = "soundcloud.com/artist/song.mp3"
u = urlopen(url)
data = u.read(1024)
while data:
player.play(data)
data = u.read(1024)
J'ai essayé pyaudio
avec de nombreuses options comme le changement de formats, les canaux, les taux d'.
et je viens d'obtenir étrange son des haut-parleurs, j'ai cherché sur Google pour pyaudio
la lecture de mp3 et n'ai pas trouvé d'information.
J'ai essayé pygame
par la création de Sound
objet en passant les octets du mp3 et ensuite seulement par l'exécution de la fonction de lecture. Je ne reçois pas toutes les erreurs: le script fonctionne, mais rien n'est jouer.
Je travaille avec Python 3 et Ubuntu.
Je suppose que vous devez trouver un moyen de d'abord télécharger les fichiers mp3 et de les jouer comme vous l'avez mentionné avec pygame par exemple. Le téléchargement devrait être la partie la plus difficile cependant... Comment url = "sound_cloud url"? Pouvez-vous donner un exemple? Je vous avais quelque chose comme url="soundcloud.com/artist/song.mp3" vous pouvez simplement utiliser: import os; os.système('wget' + url), mais je doute que l'url a ce format.
J'ai besoin d'elle pour être diffusé, l'url ressemble à ceci: "ec-media.sndcdn.com/... tout?
J'ai "403 - Forbidden" si je clique sur l'url. Êtes-vous sûr que l'url est correcte?
il peut être possible, mais vous devez d'abord décoder le téléchargement morceau en données PCM et flux ....
J'ai besoin d'elle pour être diffusé, l'url ressemble à ceci: "ec-media.sndcdn.com/... tout?
J'ai "403 - Forbidden" si je clique sur l'url. Êtes-vous sûr que l'url est correcte?
il peut être possible, mais vous devez d'abord décoder le téléchargement morceau en données PCM et flux ....
OriginalL'auteur LichKing | 2016-07-03
Vous devez vous connecter pour publier un commentaire.
Si vous avez VLC installé (ou vous êtes prêt à l'installer), alors cela devrait fonctionner:
L'avantage est qu'il fonctionne avec tout VLC fonctionne, pas seulement MP3. Il peut également être mis en pause si vous le souhaitez.
OriginalL'auteur randomdude999
Désolé, mais je n'ai pas de Python3 de tester ici, pour diffuser de l'
mp3
à l'aide depyaudio
vous aurez besoin de les décoder en données PCM, je sais que pymedia peut le faire, mais il est trop vieux et, en plus de soutenirpython27
.Pour ce faire de la bonne façon, vous aurez besoin de connaître certaines des attributs de vos fichiers audio, des choses comme la fréquence d'échantillonnage, nombre de canaux, la résolution en bits, de le mettre dans le pyaudio.
Je peux vous montrer comment je le fais à l'aide de
python27
+pyaudio
, je vais d'abord vous montrer comment faire pour diffuser.wav
gros tampon, python est lent dans la boucle while, je l'ai fait à l'aide de morceaux de taille
8192
, notez queformat
,channels
etrate
sont la droite attributs de cettewav
fichier, donc pour.wav
avons-nous pas besoin de décoder, c'est unPCM
données, maintenant pourmp3
nous aurons besoin de décoder et de mettre enPCM
format de flux.Permet d'essayer en utilisant
pymedia
Cela peut être secret, parce que je n'ai jamais vu quelqu'un en montrant comment cela peut être fait en python, pour python3 je sais pas tout ce qui peut décoder .mp3 dans des pièces comme pymedia faire.
Ici, ces deux codes sont streming et de travail pour
.wav
et.mp3
OriginalL'auteur ederwander
De vérifier si vous pouvez télécharger le fichier manuellement à l'aide que
URL
. Si son site protégé avec nom d'utilisateur/mot de passe, vous pouvez avoir besoin de prendre soin de cette première.Si non, voici un code de travail qui télécharge un fichier à partir de
url
à l'aide deurllib2
puis joue à l'aide de pydub.Ses un processus en deux étapes où le premier fichier mp3 est téléchargé et enregistré dans un fichier et ensuite joué à l'aide de lecteur externe.
** Mise à jour **
Vous ne mentionnez que vous avez besoin en streaming à partir du web. Dans ce cas, vous voudrez peut-être chercher à GStreamer avec Liaisons Python
Ici est un DONC, le lien.
OriginalL'auteur Anil_M