import requests
import time
import datetime
print(datetime.datetime.now())
import re
url = 'http://prem1.rockradio.com:80/bluesrock?9555ae7caa92404c73cade1d'
encoding = 'latin1'
info = ''
radio_session = requests.Session()
while True:
radio = radio_session.get(url, headers={'Icy-MetaData': '1'}, stream=True)
metaint = int(radio.headers['icy-metaint'])
stream = radio.raw
audio_data = stream.read(metaint)
meta_byte = stream.read(1)
if (meta_byte):
meta_length = ord(meta_byte) * 16
meta_data = stream.read(meta_length).rstrip(b' ')
stream_title = re.search(br"StreamTitle='([^']*)';", meta_data)
if stream_title:
stream_title = stream_title.group(1).decode(encoding, errors='replace')
if info != stream_title:
print('Now playing: ', stream_title)
info = stream_title
else:
pass
else:
print('No StreamTitle!')
time.sleep(1)
import socket
from io import BytesIO
from datetime import datetime
STREAM_URL = "us4.internet-radio.com"
STREAM_PATH = "/proxy/radioestiloleblon?mp=/stream"
BUFFER_SIZE = 1024
PORT = 443
def stream_reader(sock):
sock.recv(BUFFER_SIZE) # http response
while data := sock.recv(BUFFER_SIZE):
print(f"[{datetime.now()}] Received data: {data[:10]}")
yield data
def get_socket():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((STREAM_URL, PORT))
s.send(bytes(f"GET {STREAM_PATH}; HTTP/1.1
Host:{STREAM_URL}
", encoding="UTF-8"))
return s
def write_buffer(filename, bytesio: BytesIO):
buffer = bytesio.getbuffer()
with open(filename, "wb") as file:
file.write(buffer)
print(f"[{datetime.now()}] Wrote buffer. Size: {buffer.nbytes} bytes")
def main():
s = get_socket()
with BytesIO() as bIO:
try:
for data in stream_reader(s):
bIO.write(data)
except KeyboardInterrupt: pass
finally: write_buffer("stream.mp3", bytesio=bIO)
if __name__ == "__main__":
main()
import vlc
import time
url = 'http://prem1.rockradio.com:80/bluesrock?9555ae7caa92404c73cade1d'
#define VLC instance
instance = vlc.Instance('--input-repeat=-1', '--fullscreen')
#Define VLC player
player=instance.media_player_new()
#Define VLC media
media=instance.media_new(url)
#Set player media
player.set_media(media)
#Play the media
player.play()
>>> play.pause() #pause play back
>>> player.play() #resume play back
>>> player.stop() #stop play back