Guarda las canciones de tus radios favoritas con RadioSharam

 

This is a guest post writen by Daniel Díaz de Mayorga Ledesma from Spain

RadioSharam es una aplicación web con la que podrás escuchar la radio por internet, en el momento que escuches una canción poder saber qué canción es y si te ha gustado poder guardarla en una lista de reproducción propia en Spotify.

El proceso en alto nivel que sigue la app se puede ver con este diagrama (cada columna es una de las apps que utiliza RadioSharam):

RadioSharam utiliza lenguaje Java para toda la lógica interna que administra las acciones del usuario. En cuanto a la estructura, usa un sistema MVC de modelos (clases POJO que modelan los objetos con sus propiedades como Radio, Playlist o Song), vistas (clases normalmente HTML o JSP que se muestran al usuario como interfaz para interactuar en la página) y controladores (clases que administran y controlan todas las acciones del usuario y a través de la lógica creada dan un resultado específico a este usuario).

En este post hablaremos en especial de la parte implementada para controlar la lógica que involucra a los servicios de ACRCloud, del cual hemos utilizado el servicio de Identificación de canción en tiempo real, “Broadcast Monitoring Service”. Para ello es necesario obtener un monitor de los servicios de ACRCloud; un monitor se puede definir como un sistema que monitoriza a tiempo real un streaming de sonido, del cual va identificando cada intervalo de tiempo la canción que está reproduciéndose, mostrando todos los datos al administrador que podrá exportar estos datos y utilizarlos en su aplicación.

Tras la explicación previa del monitor ya podemos entrar en el funcionamiento de RadioSharam desde dentro.

Lo primero será explicar cómo actualizamos este monitor para que de manera automática si el usuario está escuchando una radio, el monitor también lo haga. Para ello existe un método en la API de ACRCloud con el que podemos actualizar los datos del monitor en cualquier momento. Éste método será un PUT HTTP en el que introduciremos los datos actualizados en el cuerpo del método http. Puede obtener toda la información del método en esta página.

public String updateMonitor(String streamUrl, String streamName) {
 return update("10356", streamUrl, streamName, "eu-west-1", "1",

"0", AccessKey, SecretKey);

}

En RadioSharam lo único que necesitamos actualizar del monitor será la url del streaming de audio, el nombre del streaming lo actualizamos para poder tener un atributo que nos de más información sobre el streaming en el panel de administración de ACRCloud (no sería necesario). El primer atributo que pasamos sería el id del monitor que queremos actualizar. Todos los demás atributos dependen de la configuración que queremos dar al monitor (tiempo real, grabar los resultados en algún tipo de url de callback, región del streaming) y las claves de acceso y secreta de nuestra cuenta de administración de ACRCloud.

Para cualquier duda sobre el código interno del método PUT puede consultar el github de ACRCloud con ejemplos en varios lenguajes de programación.

Con esto acabamos la primera parte en la que actualizamos el monitor, pero todavía queda el cómo obtenemos la información de la canción reproduciéndose. En el momento que el usuario quiera saber la canción que esté sonando debemos acceder a los datos actuales que el monitor esté enviando. Para ello ACRCloud nos permite con un simple método GET HTTP a esta url

https://api.acrcloud.com/v1/monitor-streams/{stream_id}/results?access_key={access_key}

(cambiando, por supuesto, los datos en la url del id del monitor y la clave de acceso proporcionada ésta vez por el proyecto en el que se encuentre el monitor, no es la misma clave de acceso que la de la cuenta administradora de ACRCloud) acceder a las propiedades del último dato registrado por el monitor, el cual coincidirá con la canción que se esté reproduciendo en el streaming de audio, en formato XML. Para más información aquí.

Después de conseguir toda la información de la canción actualmente reproduciéndose filtramos esos datos para quedarnos sólo con el nombre del autor, el título de la canción, y para el funcionamiento de RadioSharam nos quedamos también con una propiedad que nos proporciona el monitor de ACRCloud muy importante como es el id de la canción en la base de datos de Spotify, de manera que luego podamos administrar la lista de reproducción del usuario en Spotify y poder añadir esa canción en su lista.

Con esto concluye toda la implementación de RadioSharam con los servicios de ACRCloud, espero que les haya servido para sus proyectos y, ¡mucha suerte en ellos!

Firmado: Daniel Díaz de Mayorga Ledesma, Miembro Creador de RadioSharam. Método de contacto: danieldml112@gmail.com

Share

Leave a Reply