온에어 라디오

onair.nexis-lab.com

온에어는 지구본 위에서 세계 라디오를 듣고, 그날 아침 뉴스가 어디서 일어났는지를 한 화면에서 보는 웹 서비스입니다. 파란 점은 라디오 방송국, 주황 핀은 뉴스가 난 곳입니다. 점을 누르면 그 지역 방송 목록이 열리고, 방송 이름을 누르면 곧바로 재생됩니다.

라디오는 210개국 2만 9천여 개 방송국을 담았고, 뉴스는 매일 아침 국내 언론사에서 고른 주요 기사를 원문 제목·언론사·링크 그대로 보여 줍니다. 뉴스 핀을 누르면 그 나라 라디오로 바로 넘어갈 수 있어서, 도쿄 뉴스를 읽다가 도쿄 방송을 틀어 보는 식으로 쓸 수 있습니다.

왜 Radio Garden 데이터를 쓰지 않았나

지구본에서 라디오를 듣는다는 발상 자체는 Radio Garden이라는 유명한 서비스가 먼저 보여 줬습니다. 처음에는 그 방송국 목록을 그대로 가져오는 방법도 검토했습니다. 그런데 확인해 보니 외부에 알려진 Radio Garden API는 회사가 공개한 개발자용 API가 아니라, 제3자가 웹사이트 내부 호출을 관찰해 2021년에 정리한 비공식 명세였습니다. 언제 바뀌거나 막혀도 이상하지 않고, 재사용을 허락한 문서도 없습니다.

그래서 방송국 정보는 누구나 쓰라고 공개된 커뮤니티 데이터베이스인 Radio Browser에서 받습니다. 개발자 문서와 미러 서버 목록이 공개돼 있고, 방송국마다 고유 번호와 마지막 점검 결과가 붙어 있습니다. 화면을 닮게 만드는 것과 남의 데이터를 가져오는 것은 다른 문제라고 판단했습니다.

6만 개 중 2만 9천 개만 싣는 이유

Radio Browser에는 6만 개가 넘는 방송국이 등록돼 있지만, 온에어에는 그 절반 정도만 들어 있습니다. 가장 큰 이유는 보안 연결입니다. https로 열린 페이지에서는 브라우저가 암호화되지 않은(http) 오디오 주소를 막습니다. 그런 방송을 목록에 넣어 두면 누르는 순간 조용히 실패하므로, 처음부터 https로 송출하고 최근 점검에서 살아 있다고 확인된 방송만 남겼습니다.

주소 안에 접속 토큰이 박혀 있는 방송도 뺐습니다. 이런 주소는 대개 며칠 안에 만료되고, 공개 저장소에 올리면 보안 검사기가 비밀값 유출로 오인하기도 합니다. 반대로 한국 방송사처럼 HLS라는 스트리밍 방식을 쓰는 곳은 포함하고, 그 방식이 필요할 때만 재생기를 추가로 불러오도록 했습니다. 첫 화면에서 받는 데이터는 지구본 점 정보 약 30KB뿐이고, 나라별 방송 목록은 그 나라를 눌렀을 때 받습니다.

뉴스 핀은 '제목에 쓰인 말'로만 찍는다

뉴스를 지도에 올리려면 기사마다 위치가 필요한데, 원래 데이터에 붙어 있던 '국제·미주' 같은 분류는 믿을 수 없었습니다. 실제로 국내 은행 해킹 기사가 '국제'로 분류된 경우가 있었습니다. 그렇다고 AI에게 기사 장소를 추측하게 하면, 그럴듯하지만 근거 없는 핀이 생깁니다.

그래서 규칙을 하나로 정했습니다. 제목에 실제로 쓰인 지명이나 그 나라 정상의 이름만 근거로 씁니다. '인도적 지원'의 '인도', '경기 침체'의 '경기', '법무법인 세종'의 '세종'처럼 지명과 모양만 같은 말은 따로 걸러 내고, 이런 함정 문장을 포함한 50개 사례를 매일 갱신 전에 자동으로 다시 검사합니다. 근거를 찾지 못한 해외 기사는 지도에 찍지 않고 목록에만 둡니다. 놓치는 쪽이 틀리게 찍는 쪽보다 낫다고 봤기 때문입니다. 기사마다 '위치: 텍사스 — 제목의 텍사스'처럼 근거 문구를 함께 보여 줍니다.

기사 본문이나 요약, AI가 덧붙인 해설은 싣지 않습니다. 원문 제목과 언론사, 발행 시각, 원문 링크만 보여 주고 전문은 언론사 사이트에서 읽도록 했습니다.

서버가 없는 사이트로 만든 이유

온에어에는 회원가입도, 데이터베이스도, 비밀 키도 없습니다. 방송국 목록과 뉴스는 하루 한 번 미리 만들어 둔 정적 파일이고, 소리는 방문자의 브라우저가 각 방송사 서버에서 직접 받습니다. 온에어가 방송을 저장하거나 중계하지 않으니 방송사의 트래픽을 가로채지 않고, 해킹당해도 털릴 개인정보가 없습니다.

즐겨찾기도 서버가 아니라 방문자의 브라우저에만 저장합니다. 그래서 다른 기기와 동기화되지는 않지만, 누가 무엇을 듣는지 기록이 남지 않습니다.

핵심 기능

이런 분께 추천합니다

사용 방법

  1. 1onair.nexis-lab.com 에 접속하면 지구본이 천천히 돌아갑니다. 마우스나 손가락으로 돌리고 확대합니다.
  2. 2파란 점을 누르면 그 지역 방송 목록이 열립니다. 방송 이름을 누르면 바로 재생됩니다.
  3. 3어디를 들을지 모르겠다면 아래 플레이어의 🎲 버튼으로 아무 도시나 날아가 봅니다.
  4. 4주황 핀이나 '뉴스 목록'을 누르면 오늘 기사가 나오고, 기사 제목을 누르면 언론사 원문으로 이동합니다.
  5. 5마음에 드는 방송은 ♡로 즐겨찾기에 담아 두면 다음에 바로 다시 들을 수 있습니다.

이 도구가 하지 못하는 것

자주 묻는 질문

Q. 회원가입이나 앱 설치가 필요한가요?

A. 아니요. 브라우저로 열면 바로 됩니다. 로그인·쿠키·광고·방문 추적이 없고, 즐겨찾기는 그 브라우저에만 저장됩니다.

Q. 어떤 방송은 재생이 안 됩니다.

A. 소리는 각 방송사 서버에서 바로 나오기 때문에, 방송사 서버가 꺼져 있거나 접속 주소를 바꾸면 재생이 안 됩니다. 그럴 때는 공식 홈페이지 링크를 보여 드리니 거기서 들어 주세요.

Q. 뉴스 위치는 어떻게 정하나요?

A. 기사 제목에 쓰인 지명이나 그 나라 정상의 이름만 근거로 씁니다. 기사마다 근거를 적어 두었고, 제목에 지명이 없는 해외 기사는 지도에 찍지 않고 목록에만 둡니다.

Q. 방송국 정보가 틀렸거나 빼 달라고 하고 싶어요.

A. 사이트의 '?' 소개창에 있는 메일로 알려 주시면 확인 뒤 다음 갱신 때 반영합니다.

온에어 라디오 바로가기