Cómo obtener la url de streaming de la emisora ​​de radio en línea

Se me ha pedido que realice una aplicación no oficial en línea para una determinada estación de radio.
Tengo experiencia con streaming en android para ciertos mp3 o cualquier corriente.
Pero no sé la stream url para proporcionar en mediaPlayer.setDataSource(url) .

¿Hay alguna manera de obtener la url de flujo de la página streaming ofiicial para ex. Esta emisora ​​de radio ?

No es tan difícil,

Si echa un vistazo a la fuente de la página, verá que utiliza para transmitir el audio a través de shoutcast.

Esta es la URL del flujo

"STREAMURL": " http://stream.radiotime.com/listen.stream?streamIds=3244651&rti=c051HQVbfRc4FEMbKg5RRVMzRU9KUBw%2fVBZHS0dPF1VIExNzJz0CGQtRcX8OS0o0CUkYRFJDDW8LEVRxGAEOEAcQXko%2bGgwSBBZrV1pQZgQZZxkWCA4L%7e%7e%7e ",

Que devuelve un JSON así:

 { "Streams": [ { "StreamId": 3244651, "Reliability": 92, "Bandwidth": 64, "HasPlaylist": false, "MediaType": "MP3", "Url": "http://mp3hdfm32.hala.jo:8132", "Type": "Live" } ] } 

Creo que es la url que necesita: http://mp3hdfm32.hala.jo:8132

Esta es la estación WebSite

La respuesta de Shahar fue realmente útil, pero me pareció bastante tedioso hacer esto todo por mí mismo, así que hice un pequeño programa Python:

 import re import urllib2 import string url1 = raw_input("Please enter a URL from Tunein Radio: "); open_file = urllib2.urlopen(url1); raw_file = open_file.read(); API_key = re.findall(r"StreamUrl\":\"(.*?),",raw_file); #print API_key; #print "The API key is: " + API_key[0]; use_key = urllib2.urlopen(str(API_key[0])); key_content = use_key.read(); raw_stream_url = re.findall(r"Url\": \"(.*?)\"",key_content); bandwidth = re.findall(r"Bandwidth\":(.*?),", key_content); reliability = re.findall(r"lity\":(.*?),", key_content); isPlaylist = re.findall(r"HasPlaylist\":(.*?),",key_content); codec = re.findall(r"MediaType\": \"(.*?)\",", key_content); tipe = re.findall(r"Type\": \"(.*?)\"", key_content); total = 0 for element in raw_stream_url: total = total + 1 i = 0 print "I found " + str(total) + " streams."; for element in raw_stream_url: print "Stream #" + str(i + 1); print "Stream stats:"; print "Bandwidth: " + str(bandwidth[i]) + " kilobytes per second." print "Reliability: " + str(reliability[i]) + "%" print "HasPlaylist: " + str(isPlaylist[i]) + "." print "Stream codec: " + str(codec[i]) + "." print "This audio stream is " + tipe[i].lower() + "." print "Pure streaming URL: " + str(raw_stream_url[i]) + "."; i = i + 1 raw_input("Press enter to close TMUS.") 

Es básicamente la solución de Shahar automatizada.

Editado respuesta de ZygD para python 3.x .:

 import re import urllib.request import string url1 = input("Please enter a URL from Tunein Radio: "); request = urllib.request.Request(url1); response = urllib.request.urlopen(request); raw_file = response.read().decode('utf-8'); API_key = re.findall(r"StreamUrl\":\"(.*?),\"",raw_file); #print API_key; #print "The API key is: " + API_key[0]; request2 = urllib.request.Request(str(API_key[0])); response2 = urllib.request.urlopen(request2); key_content = response2.read().decode('utf-8'); raw_stream_url = re.findall(r"Url\": \"(.*?)\"",key_content); bandwidth = re.findall(r"Bandwidth\":(.*?),", key_content); reliability = re.findall(r"lity\":(.*?),", key_content); isPlaylist = re.findall(r"HasPlaylist\":(.*?),",key_content); codec = re.findall(r"MediaType\": \"(.*?)\",", key_content); tipe = re.findall(r"Type\": \"(.*?)\"", key_content); total = 0 for element in raw_stream_url: total = total + 1 i = 0 print ("I found " + str(total) + " streams."); for element in raw_stream_url: print ("Stream #" + str(i + 1)); print ("Stream stats:"); print ("Bandwidth: " + str(bandwidth[i]) + " kilobytes per second."); print ("Reliability: " + str(reliability[i]) + "%"); print ("HasPlaylist: " + str(isPlaylist[i])); print ("Stream codec: " + str(codec[i])); print ("This audio stream is " + tipe[i].lower()); print ("Pure streaming URL: " + str(raw_stream_url[i])); i = i + 1 input("Press enter to close") 

Cuando vas a una url de stream, te ofrecen un archivo. Alimentar este archivo a un parser para extraer el contenido fuera de él. El archivo es (generalmente) de texto sin formato y contiene la url para jugar.

  • AppView.addJavascriptInterface () no funciona en la API 17
  • Evento Javascript para el lanzamiento del navegador móvil o dispositivo despertador
  • Android - JavaScript: el evento touchstart no se activa hasta que se amplía o se desplaza por la página
  • Error no detectado: INVALID_STATE_ERR: excepción DOM 11
  • Proguard de Android problema de interfaz de Javascript
  • Cómo configurar el ancho en Android con javascript?
  • Javascript encuentra la diferencia entre Chrome y Dolphin
  • Resultados del proyecto Firebase en el error "Auth / network-request-failed" en el inicio de sesión
  • Cómo obtener el ancho de ventana correcto en el cambio de orientación para dispositivos Android, tabletas y móviles
  • ViewPagerAndroid devuelve la vista vacía cuando se agregan nuevos datos de origen
  • Desarrollo web de Android ... El ancho de Div (texto interior más probable) está cambiando en píxeles en función del zoom del dispositivo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.