RADIO 24/7
Clásicos, grandes recuerdos y sonidos contemporáneos. Una selección musical en español e inglés pensada para acompañarte durante todo el día.
OR Music Live
Una programación amplia que combina canciones memorables de varias generaciones con éxitos contemporáneos. Para escuchar en casa, durante el trabajo, en el automóvil o simplemente cuando quieres buena música.
OR Music Live sin fronteras
Nuestra señal está disponible las 24 horas. Consulta la hora local en algunas de las ciudades desde donde puedes acompañarnos.
Música que forma parte de nuestra historia
Hay canciones que identifican momentos, lugares y generaciones. Radio 24/7 reúne música de los años 70, 80, 90 y 2000 junto a producciones actuales, creando una señal variada, reconocible y agradable para escuchar durante todo el día.
¿Quieres cambiar de ambiente?
Si prefieres sesiones continuas, DJs, minitecas, discplay y mezclas especiales, también puedes entrar a nuestro canal Mixes & DJs.
🎧 CAMBIAR A MIXES & DJS¿Quieres ver OR Music Live TV?
Accede a transmisiones, programas, entrevistas, videos y contenido audiovisual de OR Music Live.
📺 IR A OR MUSIC LIVE TV“Hay canciones que no envejecen. Simplemente esperan el momento perfecto para volver a sonar.”
OR MUSIC LIVE/* OR_RADIO247_TEXTS_V2_20260916 */
(function(){
const API =
"https://video.ormusiclive.com:9444/api/texts/output?platform=web&screen=radio";
function ensureBox(){
const player =
document.getElementById(
"or247Player"
);
if(!player){
return null;
}
let box =
document.getElementById(
"or247TextV2"
);
if(box){
return box;
}
box =
document.createElement(
"div"
);
box.id =
"or247TextV2";
box.setAttribute(
"aria-live",
"polite"
);
const inner =
document.createElement(
"div"
);
inner.id =
"or247TextV2Inner";
box.appendChild(
inner
);
const bottom =
player.querySelector(
".or247-player-bottom"
);
if(bottom){
player.insertBefore(
box,
bottom
);
}else{
player.appendChild(
box
);
}
return box;
}
function cleanText(value){
return String(
value || ""
)
.split(/\r?\n/)
.map(
function(line){
return line.trim();
}
)
.join("\n");
}
function hide(){
const box =
ensureBox();
if(!box){
return;
}
const inner =
document.getElementById(
"or247TextV2Inner"
);
box.className =
"";
box.removeAttribute(
"style"
);
if(inner){
inner.textContent =
"";
}
}
function show(message){
const box =
ensureBox();
const inner =
document.getElementById(
"or247TextV2Inner"
);
if(
!box
||
!inner
||
!message
){
hide();
return;
}
const text =
cleanText(
message.text
);
if(!text.trim()){
hide();
return;
}
const effect =
String(
message.effect
|| "normal"
);
const color =
String(
message.color
|| "#ffffff"
);
const align =
[
"left",
"center",
"right"
].includes(
String(
message.align
|| "center"
)
)
? String(
message.align
|| "center"
)
: "center";
const intensity =
Math.max(
0,
Math.min(
100,
Number(
message.intensity
?? 55
)
)
);
const level =
intensity / 100;
const speeds = {
slow:"1.55s",
medium:"1.05s",
fast:".72s"
};
inner.textContent =
text;
inner.style.textAlign =
align;
box.style.textAlign =
align;
box.style.color =
color;
box.className =
"is-active effect-"
+ effect;
box.style.setProperty(
"--or247-pulse-speed",
speeds[
String(
message.pulse_speed
|| "medium"
)
]
|| "1.05s"
);
box.style.setProperty(
"--or247-glow-1",
Math.round(
level * 7
)
+ "px"
);
box.style.setProperty(
"--or247-glow-2",
Math.round(
level * 22
)
+ "px"
);
box.style.setProperty(
"--or247-glow-3",
Math.round(
level * 38
)
+ "px"
);
box.style.setProperty(
"--or247-brightness",
String(
1
+ level * .28
)
);
box.style.setProperty(
"--or247-saturation",
String(
1
+ level * .25
)
);
box.style.setProperty(
"--or247-pulse-low-opacity",
String(
.88
- level * .50
)
);
box.style.setProperty(
"--or247-pulse-high-scale",
String(
1
+ level * .010
)
);
box.style.setProperty(
"--or247-pulse-low-scale",
String(
1
- level * .005
)
);
}
async function refresh(){
try{
const response =
await fetch(
API
+ "&t="
+ Date.now(),
{
cache:
"no-store"
}
);
if(!response.ok){
throw new Error(
"HTTP "
+ response.status
);
}
const data =
await response.json();
if(
data.enabled
&&
data.message
){
show(
data.message
);
}else{
hide();
}
}catch(error){
hide();
}
}
setTimeout(
refresh,
600
);
setInterval(
refresh,
5000
);
})();