radio: don't get stuck on mpd http streams

Merge pull request #285 from mweinelt/mpd-radio-stream
This commit is contained in:
azlux 2021-06-01 23:39:44 +02:00 committed by GitHub
commit ba02cdebf2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,11 +22,13 @@ def get_radio_server_description(url):
url_icecast = base_url + '/status-json.xsl'
url_shoutcast = base_url + '/stats?json=1'
try:
r = requests.get(url_shoutcast, timeout=10)
data = r.json()
title_server = data['servertitle']
return title_server
# logging.info("TITLE FOUND SHOUTCAST: " + title_server)
response = requests.head(url_shoutcast, timeout=3)
if not response.headers.get('content-type', '').startswith(("audio/", "video/")):
response = requests.get(url_shoutcast, timeout=10)
data = response.json()
title_server = data['servertitle']
return title_server
# logging.info("TITLE FOUND SHOUTCAST: " + title_server)
except (requests.exceptions.ConnectionError,
requests.exceptions.HTTPError,
requests.exceptions.ReadTimeout,
@ -38,16 +40,18 @@ def get_radio_server_description(url):
return url
try:
r = requests.get(url_icecast, timeout=10)
data = r.json()
source = data['icestats']['source']
if type(source) is list:
source = source[0]
title_server = source['server_name']
if 'server_description' in source:
title_server += ' - ' + source['server_description']
# logging.info("TITLE FOUND ICECAST: " + title_server)
return title_server
response = requests.head(url_shoutcast, timeout=3)
if not response.headers.get('content-type', '').startswith(("audio/", "video/")):
response = requests.get(url_icecast, timeout=10)
data = response.json()
source = data['icestats']['source']
if type(source) is list:
source = source[0]
title_server = source['server_name']
if 'server_description' in source:
title_server += ' - ' + source['server_description']
# logging.info("TITLE FOUND ICECAST: " + title_server)
return title_server
except (requests.exceptions.ConnectionError,
requests.exceptions.HTTPError,
requests.exceptions.ReadTimeout,