1<!DOCTYPE html> 2<html lang="en-US"> 3<head> 4<meta charset="UTF-8"> 5<title>Online Radio: USA, Canada, Caribbean & Latin America</title> 6<meta name="audience" content="Alle"> 7<meta name="description" content="Stream live radio from the Americas & CaribbeanâUSA, Canada, Mexico, Central and South America. Free music, news and sports by country, city and genre."> 8<meta name="page-topic" content="Radio"> 9<meta name="robots" content="INDEX,FOLLOW"> 10<meta name="p:domain_verify" content="8c440af5aa666d815a07c52bd0e3d41e"> 11<meta name="title" content="Oceania Online Radio â Free Live Radio Stations"> 12<meta property="og:title" content="Online Radio: USA, Canada, Caribbean & Latin America"> 13<meta property="og:type" content="website"> 14<meta property="og:url" content="https://www.surfmusic.de/ozean.htm"> 15<meta property="og:description" content="Stream live radio from the Americas & CaribbeanâUSA, Canada, Mexico, Central and South America. Free music, news and sports by country, city and genre.""> 16<meta property="og:image" content="https://www.surfmusic.de/radio-station/logo2-neu.png"> 17<meta property="og:site_name" content="surfmusic.de"> 18<link rel="SHORTCUT ICON" href="https://www.surfmusic.de/favicon.ico"> 19<meta name="viewport" content="width=device-width, initial-scale=1">
20<script>"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}();</script>
20 21 22
22<script> 23 window._sp_queue = []; 24 window._sp_ = { 25 config: { 26 accountId: 375, 27 baseEndpoint: 'https://cdn.privacy-mgmt.com', 28 propertyId: 37603, 29 gdpr: { }, 30 events: { 31 onMessageChoiceSelect: function() { 32 console.log('[event] onMessageChoiceSelect', arguments); 33 }, 34 onMessageReady: function() { 35 console.log('[event] onMessageReady', arguments); 36 }, 37 onMessageChoiceError: function() { 38 console.log('[event] onMessageChoiceError', arguments); 39 }, 40 onPrivacyManagerAction: function() { 41 console.log('[event] onPrivacyManagerAction', arguments); 42 }, 43 onPMCancel: function() { 44 console.log('[event] onPMCancel', arguments); 45 }, 46 onMessageReceiveData: function() { 47 console.log('[event] onMessageReceiveData', arguments); 48 }, 49 onSPPMObjectReady: function() { 50 console.log('[event] onSPPMObjectReady', arguments); 51 }, 52 onConsentReady: function (consentUUID, euconsent) { 53 console.log('[event] onConsentReady', arguments); 54 }, 55 onError: function() { 56 console.log('[event] onError', arguments); 57 }, 58 } 59 } 60 } 61 </script>
61 62
62<script src='https://cdn.privacy-mgmt.com/unified/wrapperMessagingWithoutDetection.js' async></script>
vendor: 1 bytes, line 62
62
63<script> 64 var googletag = googletag || {}; 65 googletag.cmd = googletag.cmd || []; 66</script>
66 67<!-- Matomo -->
68<script> 69 var _paq = window._paq = window._paq || []; 70 /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ 71 _paq.push(['trackPageView']); 72 _paq.push(['enableLinkTracking']); 73 (function() { 74 var u="//surfmusik.at/matomo/"; 75 _paq.push(['setTrackerUrl', u+'matomo.php']); 76 _paq.push(['setSiteId', '2']); 77 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 78 g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); 79 })(); 80</script>
80 81<!-- End Matomo Code -->
82<script> 83function radio (url) { 84 fenster = window.open(url, "radio", "width=700,height=900,status=no,scrollbars=no,resizable=no"); 85 fenster.focus(); 86} 87</script>
87 88<link rel="stylesheet" href="https://www.surfmusic.de/radio.css"> 89<style> 90:root{ --line:#e5e7eb; --bg:#fff; --ink:#000080; --muted:#6b7280; --radius:12px; } 91.table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; } 92.table-wrap table{ width:100%; border-collapse:collapse; } 93#Sender { width:100%; border-collapse:collapse; } 94#Sender th.top, #Sender td { padding:.6rem .75rem; border-bottom:1px solid var(--line); } 95 96/* Pagination */ 97.pagination{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; margin:1rem 0; } 98.pagination .page-link, .pagination .dots{ padding:.4rem .6rem; border:1px solid var(--line); border-radius:.5rem; text-decoration:none; } 99.pagination .current{ font-weight:700; background:#f3f4f6; } 100.pagination .disabled{ opacity:.5; pointer-events:none; } 101.result-info{ margin:.6rem 0; color:#6b7280; font-size:.95rem; } 102 103/* Allgemein: Bilder flexibel */ 104.rounded img { max-width: 100%; height: auto; display: block; } 105/* ---------- MOBILE: alles auf volle Breite + mittig ---------- */ 106@media (max-width: 768px) { 107 /* GENRES: Tabelle mit .rounded-Kacheln */ 108 table.genres-table, 109 table.genres-table tr, 110 table.genres-table th { 111 display: block !important; 112 width: 100% !important; 113 box-sizing: border-box; 114 } 115 table.genres-table th { 116 padding: 0 !important; 117 margin: 0 0 24px 0 !important; /* Abstand zwischen Kacheln */ 118 text-align: center !important; 119 } 120 .rounded, 121 .rounded .border { 122 display: block !important; 123 width: 100% !important; 124 max-width: none !important; 125 margin: 0 auto !important; 126 text-align: center !important; 127 float: none !important; 128 } 129 .rounded img { margin: 0 auto !important; } 130 .rounded ul { 131 list-style: none; 132 padding: 0; 133 margin: 12px 0 0 0; 134 text-align: center; 135 } 136 .rounded ul li { margin: 6px 0; } 137 138 /* JERKY: Info + Formular untereinander & zentriert */ 139 table.jerky, 140 table.jerky tr, 141 table.jerky td { 142 display: block !important; 143 width: 100% !important; 144 box-sizing: border-box; 145 text-align: center !important; 146 } 147 table.jerky td { padding: 12px 16px; margin: 0 0 12px 0; } 148 149 table.jerky form { width: 100% !important; } 150 151 table.jerky input[type="text"], 152 table.jerky button[type="submit"] { 153 display: block !important; 154 width: 95% !important; /* schön breit wie "Trending"-Box */ 155 max-width: 520px !important; /* optionales Limit */ 156 margin: 8px auto !important; 157 box-sizing: border-box; 158 } 159} 160 161 162/* Elternzelle mittig (falls Form in einer Tabellenzelle steckt) */ 163td, .bg { text-align: center; } 164 165/* Form-Inhalt zentrieren */ 166form[action="such.htm"] { 167 display: inline-flex; /* bleibt als Block zentrierbar */ 168 align-items: center; 169 justify-content: center; 170 gap: 8px; 171} 172 173/* Feldbreite begrenzen, damit es âschönâ wirkt */ 174form[action="such.htm"] input[type="text"] { 175 width: 100%; 176 max-width: 420px; 177 box-sizing: border-box; 178} 179 180/* Mobile: untereinander */ 181@media (max-width: 768px) { 182 form[action="such.htm"] { 183 display: flex; 184 flex-direction: column; 185 } 186 form[action="such.htm"] input[type="text"], 187 form[action="such.htm"] button[type="submit"] { 188 width: 90%; 189 max-width: 420px; 190 margin: 10px auto 0; 191 } 192} 193 194.meta { 195 /* Layout */ 196 display: flex; 197 align-items: center; 198 justify-content: center; /* mobil: mittig */ 199 gap: 10px; 200 flex-wrap: wrap; 201 202 /* Box */ 203 padding: 10px 14px; 204 border: 1px solid #e5e7eb; /* helles Grau */ 205 border-radius: 8px; 206 background: #000080; /* sehr helles Grau/Blau */ 207 208 /* Typo */ 209 font-size: 0.75rem; 210 line-height: 1.35; 211 212 /* zentriert im Container */ 213 width: 100%; 214 box-sizing: border-box; 215 margin: 12px auto; 216 text-align: center; 217} 218 219.submit-cta { margin: 8px 0 0; } 220.submit-cta .btn { 221 display: inline-block; 222 padding: 8px 12px; 223 border-radius: 8px; 224 border: 1px solid #fff; 225 background: #000080; 226 text-decoration: none; 227 font-weight: 600; 228 color: aqua; 229} 230.submit-cta .btn:hover { background: #fff; } 231 232 233.meta, .meta a { color:#fff; } 234.meta a:hover { text-decoration: underline; } 235 236 237/* Falls irgendwo pauschal article { border:... } gesetzt war, Station-Karten hart entrahmen */ 238article.station { border: none !important; box-shadow: none !important; } 239 240 241:root{ 242 --nav-bg:#000080; /* deine Navi-Farbe */ 243 --nav-ink:#fff; 244 --nav-hover-bg:#3a3f8f; /* dunkler beim Hover */ 245 --nav-hover-ink:#ff3b3b;
245 /* rot wie âtipp:hoverâ */ 246 --sub-bg:#000080; /* Dropdown-Hintergrund */ 247 --sub-bd:rgba(255,255,255,.12); 248} 249 250/* Container */ 251#main-nav{ 252 background:var(--nav-bg); 253 border-radius:12px; 254 padding:6px 10px; 255z-index: 1000!important; 256} 257 258/* Top-Level als Reihe */ 259#main-nav ul, #main-nav li{ list-style:none; margin:0; padding:0; } 260#main-nav > ul.top{ 261 display:flex; 262 align-items:center; 263 justify-content:center; 264 gap:10px; 265 flex-wrap:wrap; 266} 267 268/* Links */ 269#main-nav a{ 270 display:inline-block; 271 color:var(--nav-ink); 272 text-decoration:none; 273 padding:8px 12px; 274 border-radius:8px; 275 transition:background .2s ease, color .2s ease; 276 white-space:nowrap; 277} 278#main-nav a:hover, 279#main-nav li:focus-within > a{ 280 background:var(--nav-hover-bg); 281 color:var(--nav-hover-ink); 282} 283 284/* Dropdown-Grundlage (wie zuvor) */ 285#main-nav { position: relative; z-index: 1000; overflow: visible; } 286#main-nav .has-sub { position: relative; } 287#main-nav .sub{ 288 display: none; 289 position: absolute; 290 left: 0; 291 top: 100%; /* keine Lücke */ 292 min-width: 240px; 293 padding: 6px 0; 294 background-color: #0b1f6d; 295 border: 1px solid rgba(255,255,255,.25); 296 border-radius: 10px; 297 box-shadow: 0 10px 22px rgba(0,0,0,.35); 298} 299 300/* Für Touch (per JS .open setzen) */ 301#main-nav li.open > .sub { display: block; } 302 303/* Nur auf Geräten mit echter Hover-Maus: per Hover öffnen */ 304@media (hover: hover) and (pointer: fine) { 305 #main-nav li.has-sub:hover > .sub { display: block; } 306} 307 308/* Top-Level (Hauptpunkte in der Leiste) */ 309#main-nav .top > li > a.top-link { 310 font-size: 1.1rem; /* z.B. ~17â18px */ 311 font-weight: 700; /* fett */ 312 line-height: 1.2; 313 padding: 10px 14px; /* ggf. etwas mehr Höhe geben */ 314 color: #fff; /* sicherheitshalber */ 315} 316 317/* Dropdown-Links etwas kleiner/fett-light */ 318#main-nav .sub a { 319 font-size: 1rem; /* ~16px */ 320 font-weight: 600; /* halbfett */ 321 line-height: 1.2; 322 color: #fff; 323} 324 325/* Optional: auf Mobile noch eine Idee gröÃer */ 326@media (max-width: 640px){ 327 #main-nav .top > li > a.top-link { 328 font-size: 1.10rem; /* leicht gröÃer auf Handy */ 329 } 330} 331 332 333/* Pagination visibility + contrast */ 334.pagination{ 335 display:flex; flex-wrap:wrap; gap:.45rem; align-items:center; justify-content:center; 336 margin:1rem 0; 337} 338.pagination .dots{ 339 color: rgba(255,255,255,.7); 340 padding:.4rem .6rem; 341} 342.pagination .page-link{ 343 display:inline-block; 344 padding:.4rem .65rem; 345 border:1px solid rgba(255,255,255,.35); 346 border-radius:.5rem; 347 background: rgba(255,255,255,.06); 348 color:#fff; /* make links readable on dark bg */ 349 text-decoration:none; 350 line-height:1; 351} 352.pagination .page-link:hover{ 353 background:#fff; 354 color:#000080; /* your brand blue */ 355 border-color:#fff; 356} 357.pagination .current{ 358 font-weight:700; 359 background:#fff; 360 color:#000080; 361 border-color:#fff; 362} 363.pagination .disabled{ 364 opacity:.5; 365 pointer-events:none; 366 border-color:rgba(255,255,255,.2); 367 color:rgba(255,255,255,.7); 368} 369 370@media (max-width:600px){ 371 .pagination .page-link{ padding:.35rem .55rem; font-size:.95rem; } 372} 373</style> 374</head> 375<body> 376<div class="wrapper"> 377 <header><a href="https://www.surfmusic.de"><img src="https://www.surfmusic.de/logo2.gif" alt="Surfmusic.de Live Radio Web-TV" width="122" height="105"></a><h1>Listen to Online Radio from the Americas & Caribbean</h1></header> 378 <article> 379 380<nav id="main-nav" class="main-nav" aria-label="Primary"> 381 <ul class="top"> 382 <li class="has-sub"> 383 <a href="#" class="top-link" aria-haspopup="true" aria-expanded="false">Online Radio ▽</a> 384 <ul class="sub"> 385 <li><a href="https://www.surfmusic.de/afrika.htm">Africa Online Radio</a></li> 386 <li><a href="https://www.surfmusic.de/amerika.htm">Americas Online Radio</a></li> 387 <li><a href="https://www.surfmusic.de/asien.htm">Asia Online Radio</a></li> 388 <li><a href="https://www.surfmusic.de/euro.htm">Europe Online Radio</a></li> 389 <li><a href="https://www.surfmusic.de/ozean.htm">Oceania Online Radio</a></li> 390 <li><a href="https://www.surfmusic.de/radiocharts.htm">Top 100 Radio Stations</a></li> 391 <li><a href="https://www.surfmusic.de/genres.htm">Radio Genres</a></li> 392 <li><a href="https://www.surfmusic.de/cities/a.html">Cities AâZ</a></li> 393 </ul> 394 </li> 395 396 <li class="has-sub"> 397 <a href="#" class="top-link" aria-haspopup="true" aria-expanded="false">Webradio ▽</a> 398 <ul class="sub"> 399 <li><a href="https://www.surfmusic.de/internetradio/germany">Webradio Germany</a></li> 400 <li><a href="https://www.surfmusic.de/internetradio/europe">Webradio Europe</a></li> 401 <li><a href="https://www.surfmusic.de/internetradio/america">Webradio America</a></li> 402 <li><a href="https://www.surfmusic.de/internetradio/asia">Webradio Asia</a></li> 403 </ul> 404 </li> 405 406 407 <li><a href="https://www.surfmusic.de/search">Search</a></li> 408 </ul> 409</nav> 410 411 412 413 <h2>Top Regions & Countries</h2> 414 <table class="jerky"> 415 <tr style="background-color:#003399;"> 416 <td class="bg">Discover hundreds of live radio stations across the Americas and the Caribbean. From the USA and Canada to Mexico, Central & South America, and island nations across the Caribbean, tune in to free music, news, and sportsâinstantly, no signup. Browse by country, city, or genre and start listening within seconds.</td> 417</tr> 418</table> 419<div class="border6"> 420 421<div data-role="main" class="ui-content"> 422 <table id="Sender" data-role="table" class="ui-responsive" data-mode="columntoggle" data-column-btn-text="Spalten"> 423 <thead> 424 <tr> 425 <th class="top">Country</th> 426 <th class="top">Free Online Radio</th> 427 <th class="top">Live Music Stations</th> 428 <th class="top">Listen Now</th> 429 </tr> 430 </thead> 431 432<tbody> 433 <tr> 434 <td><a class="tipp" href="https://www.surfmusic.de/canada-province.htm" title="Canada Online Radio by Province">Canada</a></td> 435 <td><a class="tipp" href="https://www.surfmusic.de/staaten.htm" title="USA Online Radio">USA</a></td> 436 <td><a class="tipp" href="https://www.surfmusic.de/central-america.htm" title="Papua New Guinea Online Radio Stations">Central America & Caribbean</a></td> 437 <td><a class="tipp" href="https://www.surfmusic.de/south-america.htm" title="South America">South America</a></td> 438</tr> 439 </tbody> 440</table> 441<br> 442<br> 443 444<table class="jerky"> 445 <tr style="background-color:#003399;"> 446 <td class="bg"><p>Explore the sound of an entire hemisphere in one place. Our directory brings together FM, AM, and internet-only stations from the United States and Canada through Mexico and Central America down to South Americaâplus the rich radio scenes of the Caribbean. Whether youâre after todayâs hits, classic rock, jazz, talk radio, or Latin favorites, youâll find reliable live streams around the clock.</p> 447 448<p>Navigate by region to discover both national networks and local gemsâmajor cities like New York, Los Angeles, Toronto, Vancouver, Mexico City, São Paulo, Rio de Janeiro, Buenos Aires, Bogotá, Lima, and Santiago, as well as island hubs such as Kingston, Port of Spain, San Juan, Santo Domingo, Havana, Nassau, and Bridgetown. Each station listing offers a one-click Livestream plus a link to the official website for programs and schedules.</p> 449 450<p>Prefer to browse by style? Jump straight into reggae, dancehall, soca, calypso, zouk, and kompa from the Caribbean; salsa, bachata, merengue, MPB and samba from Latin America; country, classic hits, hip-hop, EDM, and smooth jazz from North America. Sports fans can follow live commentary, while news listeners get breaking updates from public and private broadcasters in English, Spanish, Portuguese, French, Dutch, and Creole.</p> 451 452<p>All streams are free to access. If a station is temporarily unavailable, try another optionânew streams are added and updated regularly. Save your favorites and come back anytime to enjoy the best of American and Caribbean radio, from Arctic Canada to the shores of Patagonia and the islands in between.</p></td> 453</tr> 454</table> 455 456 457</div> 458</div> 459</article> 460</div> 461<footer><p><a class="norm" href="https://www.surfmusic.de/privacy-policy.htm">Privacy Policy</a> <a class="norm" href="https://www.surfmusic.de/kontakt.htm" onclick="radio(this.href); return false;">Contact</a> <a class="norm" href="https://www.surfmusic.de/mailform.php">Add a Station</a> <a class="norm" href="https://www.surfmusic.de/surftv.htm">Web-TV</a><br><a class="norm" href="https://www.surfmusic.de/musictv.html">Music-TV</a> <a class="norm" href="https://www.surfmusic.de/newstv.html">News TV</a> <a class="norm" href="https://www.surfmusic.de/blog/">Blog</a> <a class="norm" href="https://www.surfmusik.de/" lang="de" hreflang="de" rel="alternate">
461Deutsch</a><br><a class="norm" href="javascript:window._sp_ && window._sp_.gdpr && window._sp_.gdpr.loadPrivacyManagerModal && window._sp_.gdpr.loadPrivacyManagerModal(1210739)"><span>Consent Management</span></a></p> 462 © <span id="year"></span> Uwe Roselius
463<script> 464 document.getElementById('year').textContent = new Date().getFullYear(); 465</script>
465 466</footer>
467<script> 468(function(){ 469 const nav = document.getElementById('main-nav'); 470 if (!nav) return; 471 472 // Togglen NUR auf Touch/Pen 473 nav.addEventListener('pointerdown', function(e){ 474 if (e.pointerType === 'mouse') return; // Maus: Hover macht's 475 const trigger = e.target.closest('.has-sub > a.top-link'); 476 if (!trigger) return; 477 e.preventDefault(); 478 479 const li = trigger.parentElement; 480 const isOpen = li.classList.contains('open'); 481 482 // Alles schlie en 483 nav.querySelectorAll('.has-sub.open').forEach(el => { 484 el.classList.remove('open'); 485 const a = el.querySelector('a.top-link'); 486 if (a) a.setAttribute('aria-expanded', 'false'); 487 }); 488 489 // Dieses ffnen/schlie en 490 li.classList.toggle('open', !isOpen); 491 trigger.setAttribute('aria-expanded', String(!isOpen)); 492 }); 493 494 // Outside-Klick schlie t nur auf Touch/Pen 495 document.addEventListener('pointerdown', function(e){ 496 if (e.pointerType === 'mouse') return; 497 if (e.target.closest('#main-nav')) return; 498 nav.querySelectorAll('.has-sub.open').forEach(el => { 499 el.classList.remove('open'); 500 const a = el.querySelector('a.top-link'); 501 if (a) a.setAttribute('aria-expanded', 'false'); 502 }); 503 }); 504})(); 505</script>
505 506 507</body> 508</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.