0

I want to build a small application capable of playing audio streams from internet radio services.

I already found this code that saves the code as a mp3-File, but I'd like to instantly play the sound.

import requests
stream_url = "http://uk5.internet-radio.com:8097/;stream"
r = requests.get(stream_url, stream=True)

with open('stream.wav', 'wb') as f:
try:
    for block in r.iter_content(1024):
        f.write(block)
except KeyboardInterrupt:
    pass

This code doesn't work as it doesn't produce any useable sound and a lot underflowed errors occur:

stream_url = 'http://149.56.147.197:8064/;stream/1'#"""
r = requests.get(stream_url, stream=True)


pya = pyaudio.PyAudio()
stream = pya.open(format=pyaudio.paInt16, frames_per_buffer=2048, channels=2, rate=44100, output=True)

for block in r.iter_content(2048):
    data = array.array("h", block)
    stream.write(data,exception_on_underflow=True)

stream.stop_stream()
stream.close()

The error message:

Traceback (most recent call last):
File "/Users/bahe007/Desktop/pythonRadio.py", line 15, in <module>
stream.write(data,exception_on_underflow=True)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyaudio.py", line 586, in write
exception_on_underflow)
IOError: [Errno -9980] Output underflowed

Does anybody have ideas how I could achieve my live-streaming feature for internet radio in Python?

bahe007
  • 1
  • 3
  • It's not about the code,it's because the pyaudio don't support 64-bit RIFF,the format of your audio.change another stream or change library. – obgnaw Jul 17 '17 at 02:33
  • Oh, thanks! Are you aware of any libraries that would allow this format? – bahe007 Aug 02 '17 at 13:58

0 Answers0