ich versuche gerade mich darin einzuprogrammieren, wie man Internetradio aufnehmen kann. Hier mal das bisherige Skript von mir:
Code: Alles auswählen
import socket
import time
BUFSIZE = 1024
url = "http://ruhit.imgradio.pro/RusHit48"
host = "ruhit.imgradio.pro"
afterhost = "/RusHit48"
useragent = "VLC/2.1.5 LibVLC/2.1.5"
range = "bytes=6867051-"
connection = "close"
icymetadata = "1"
sendtosocket = "GET {0} HTTP/1.1\n".format(afterhost)
sendtosocket = "{0}Host: {1}\n".format(sendtosocket, host)
sendtosocket = "{0}User-Agent: {1}\n".format(sendtosocket, useragent)
sendtosocket = "{0}Range: {1}\n".format(sendtosocket, range)
sendtosocket = "{0}Connection: {1}\n".format(sendtosocket, connection)
sendtosocket = "{0}Icy-MetaData: {1}\n\n".format(sendtosocket, icymetadata)
s = socket.socket()
s.connect((host, 80))
s.send(bytes(sendtosocket, 'utf-8'))
filename = "test - {0}.mp3".format(time.strftime("%d - %m - %Y %H'%M'%S"))
f = open(filename, "wb")
running = True
try:
while running:
try:
print("Attempting to read from socket...")
while True:
data = s.recv(BUFSIZE)
if len(data) == 0: # remote end closed
print("Remote end closed")
running = False
break;
# print("Received %d bytes: %r" % (len(data), data))
f.write(data)
except socket.error as e:
if e[0] != 11: # Resource temporarily unavailable
print(e)
raise
# Perform other program tasks
print("Sleeping...")
time.sleep(1)
except KeyboardInterrupt:
print("Programm wird beendet...")
print("Socket wird geschlossen...")
s.close()
print("Datei wird geschlossen...")
f.close()
Ein weiteres Problem das ich hier habe ist dass wenn eine Aufnahme funktioniert, dass es ab und zu mal so Stellen gibt, wo es für Millisekunden lang kurz nichts zu hören ist und dann wieder was. Aber ich glaube, das liegt daran, dass ich ja meine Daten speichere und in der Zeit ich keine Daten empfange.