본문 바로가기
탐구

PSP [인터넷 라디오] 기능 해부: ② 공식 플레이어를 메모리 스틱에서 실행

by 블루스크린 (BSofDeath) 2026. 2. 8.

이전에 올린 글에서는 PSP의 [인터넷 라디오] 기능이 작동하는 기본적인 원리와 함께, 당시 SCE가 제공했던 공식 플레이어들의 핵심 로직을 소개했었다.

PSP [인터넷 라디오] 기능 해부: ① 기본 작동과 공식 플레이어의 로직

PSP에는 [인터넷 라디오]라는 기능이 있다. 이 기능은 PSP에 내장된 인터넷 브라우저로 전용 플레이어를 실행하여, SHOUTcast 또는 icecast2 프로토콜로 송출되는 MP3/AAC+ 규격의 오디오 스트림을 청취하

blog.bsod.kr

 
아마 위의 글을 읽고 온 독자라면 'SCE 서버에서 운영되는 공식 플레이어 사이트에 아직도 접속할 수 있다'는 대목에서 가장 놀라움을 느꼈을 법하다.
 
그러나 PS3용 넷플릭스 앱도 바로 다음달(2026년 3월 2일)에 지원 종료가 결정된 현실 속에서, 이들을 여태까지 호스팅해 온 SCE(이제는 SIE)의 서버도 언제 조용히 폐쇄될 지 모르는 것이 사실이다.
 

공식 SDK 문서의 계층 구조도 발췌, 플레이어(Ⓖ)를 인터넷 환경이 아닌 메모리 스틱 상에서 구동한다.

하지만 공식 플레이어의 HTML 소스를 그대로 백업하여 메모리 스틱 상에서 구동한다면 이런 걱정을 할 필요가 없다.
 
①편에서도 설명했듯, 공식 플레이어는 방송 서버나 방송국 정보 DB로부터 완전히 독립적으로 구동되는 웹 앱의 일종이다. 따라서 전체 소스 코드만 온전히 확보되어 있다면 어느 환경에서 실행하더라도 플레이어의 모든 기능을 사용할 수 있다.
 
이번 글에서는 그 구체적인 방법을 알아볼 것이다.
 
 

1. 공식 플레이어의 소스 백업

아래의 압축 파일은 공식 플레이어 전체 22종에 대한 HTML 소스를 백업한 것이다.

source.zip
5.63MB

 

각 플레이어의 소스들은 압축 파일 최상위에 개별 폴더로 구분하였고, 이러한 폴더들의 내부 구조는 일반적으로 아래와 같다.

/css/* 및 /images/*
• 플레이어의 UI를 구성하는 리소스가 담긴 곳

/js/*
• 플레이어의 핵심 로직을 구현한 자바스크립트 코드가 담긴 곳
• 만약 플레이어가 동작하는 방식을 직접 수정하고자 한다면 이 폴더 내에 있는 코드를 집중적으로 살펴보아야 한다.

/index.html
• 실제로 접속 시 마주하게 되는 메인 페이지

 
 

2. 소스 백업본과 연결된 플레이어 아이콘 만들기

기본적으로 플레이어를 실행하기 위해서는 해당 플레이어의 대표 리소스(index.html)의 경로가 지정된 플레이어 아이콘을 XMB에서 선택해야 한다.
 
따라서 단순히 소스 백업본을 메모리 스틱에 저장하는 것에 그치지 않고, 해당 로컬 경로를 정확히 참조하는 별도의 플레이어 아이콘(.prs) 파일을 새로 구축해야 할 필요가 있다.


1) 공식 SDK 다운로드

플레이어 아이콘은 한때 SCE에서 배포했던 공식 SDK를 통해 쉽게 제작할 수 있다.
 
현재는 이와 관련된 SCE 공식 페이지가 폐쇄되어 정식 경로를 통한 다운로드는 어렵고, 레딧 스레드 등지에 아카이브된 파일을 통해서만 입수가 가능하다.
 
https://drive.google.com/file/d/1oLbxWszZT_wJ_Sqk2vfnHEbt3UohN1T-/view?usp=drive_link

PSP_INTERNET_RADIO_PLAYER_SDK_500E.zip

drive.google.com


2) 아이콘 템플릿 작성

플레이어 아이콘을 제작하기 위해서는 먼저 아래와 같은 양식의 템플릿을 XML 포맷으로 준비해야 한다.

<?xml version="1.0" encoding="UTF-8"?>
<radioplayer title="YOUR PLAYER NAME"
	     icon=""
	     focus_icon="">
    <info
        author="YOUR NAME"
        radioplayer_url="http://YOUR_RADIOPLAYER_URL"
        homepage_url="http://YOUR_HOMEPAGE_URL"
        comment="YOUR COMMENT"
        copyright="YOUR COPYRIGHT"
       />
</radioplayer>

 
템플릿에 기재되는 내용을 하나하나 살펴보면 아래와 같다.

title (필수)
• XMB에서 표시되는 아이콘의 이름

icon 및 focus_icon
• XMB에서 표시되는 아이콘의 대표 이미지
• focus_icon은 XMB에서 포커스되었을 때 따로 표시하는 리소스에 대한 정의로, 미정의 시에는 icon에 할당된 리소스가 대신 표시된다.
• PC 상에서 템플릿 문서가 위치한 곳을 기준으로, 원하는 이미지 파일의 경로를 기재한다.
• 예를 들어, 템플릿 문서와 같은 폴더 아래에 있는 'icon.png' 파일을 쓰고자 할 경우 "icon.png"로 기재하면 된다.

author
• 아이콘을 만든 제작자의 이름

radioplayer_url (필수)
• 플레이어의 대표 리소스(index.html)를 가리키는 URL
• 인터넷상의 주소는 물론 메모리 스틱에 저장된 파일의 경로도 기재 가능하다.
메모리 스틱 내의 파일을 지정하려는 경우, 'file:/'로 시작하는 URL로 기재한다.
예) 메모리 스틱의 최상위에 있는 'index.html' 파일을 쓰고자 할 경우 "file:/index.html"로 기재하면 된다.

homepage_url
• 아이콘을 만든 제작자의 대표 홈페이지 URL

comment
• 아이콘을 설명하는 문구

copyright
• 아이콘을 만든 제작자와 관련된 저작권 정보

 

템플릿 속 내용들이 XMB 상에서 표시되는 위치

 

필자는 메모리 스틱 최상위에 [HTML]이라는 이름의 폴더를 생성하고, 각 플레이어의 소스를 개별 하위 폴더로 저장할 계획이다. 이 구조에 따라 템플릿을 작성하려면 homepage_url의 값은 file/HTML/(플레이어별 폴더명)/index.html과 같은 형태가 되어야 한다.
 
공식 아이콘에 포함된 정보를 그대로 옮긴 채 homepage_url만 바꿔 준다면 아래와 같은 내용의 템플릿이 완성된다.

<?xml version="1.0" encoding="UTF-8"?>
<radioplayer title="Internet Radio Player Ⅰ"
	     icon="InternetRadioPlayerI.png"
	     focus_icon="">
    <info
        author="SCEI"
        radioplayer_url="file:/HTML/PLAYER_I/index.html"
        homepage_url="http://www.playstation.com/psp-app/radio.html"
        comment="Internet Radio Player Ⅰ. This player is using the SHOUTcast directory service."
        copyright="© 2007 SCEI ALL RIGHTS RESERVED."
       />
</radioplayer>

 

필요할 경우 아이콘별 대표 이미지로 사용할 리소스도 같이 준비해 둔다. 템플릿 문서를 작성할 때 'icon' 부분에 명시했던 경로에 맞게 위치시켜 주면 된다.
 

(참고) 공식 아이콘 파일에서 대표 이미지 추출하는 법

공식 아이콘을 최대한 모방하며 템플릿을 작성하려 할 경우 대표 이미지를 어떻게 확보해야 할 지 고민될 수 있을 것이다.
 

가장 확실한 방법은 공식 아이콘 파일을 HEX 에디터로 열고, 'PNG' 시그니처가 시작되는 지점부터 끝까지의 데이터를 별도 파일로 저장하면 된다. 이렇게 하면 공식 아이콘에 삽입된 PNG 포맷의 대표 이미지를 추출할 수 있다.


3) 아이콘(.prs) 파일 생성

템플릿과 대표 이미지(선택)가 모두 준비되었다면 이제 이 둘을 컴파일러에 넣고 돌려서 아이콘 파일을 생성한다. 이 단락은 Windows 환경을 기준으로 설명하겠다.
 

컴파일러는 위에서 내려받은 공식 SDK 패키지에서 /RADIO_PLAYER_ICON/WORK/Windows/ 폴더에 prscompiler.exe라는 이름의 파일로 존재한다.
 

prscomplier.exe가 위치한 경로 내에 템플릿 문서와 대표 이미지(선택)를 두고, 드래그 앤 드롭을 통해 템플릿 문서를 prscompiler.exe로 열면 템플릿 문서와 똑같은 이름의 아이콘(.prs) 파일이 생성된다.
 

(참고) 컴파일러 실행이 안 될 경우

간혹 이런 오류 메시지가 표시되며 컴파일러가 실행되지 않는 경우가 있을 수 있다.
 
이럴 때에는 Microsoft .NET Framework 버전 1.1 재배포 가능 패키지를 설치한 다음, C:/Windows/Microsoft.NET/Framework/v1.1.4322/ 폴더에 위치한 msvcr71.dll을 컴파일러가 위치한 경로에 복사해 주면 된다.
 
 

3. 소스 백업본과 아이콘을 메모리 스틱에 넣기

위에서 내려받은 소스 백업본 압축 파일(source.zip) 속의 내용물을 그대로 메모리 스틱에 복사한다.
 
필자의 경우 /HTML/ 경로에 복사하였다.
 

그런 다음 새로 생성한 아이콘 파일들도 메모리 스틱의 /PSP/RADIOPLAYER/ 경로에 복사한다.
 
만약 소스 백업본을 필자와 동일한 경로(/HTML/)에 복사하고자 한다면, 필자가 생성한 아이콘 파일을 대신 활용해도 된다.

custom_prs.zip
0.25MB

 
 

4. PSP에서 플레이어 실행

메모리 스틱을 꽂은 상태에서 XMB의 '인터넷 라디오' 섹션으로 들어가면 넣어준 플레이어 아이콘들이 잘 표시된다.
 

해당 아이콘의 정보를 확인하면 [어드레스] 단락에 메모리 스틱 내부의 경로가 기재되어 있는 것을 확인할 수 있다.
 

웹 페이지를 로컬(메모리 스틱)에서 로드하기에, 네트워크에 최초 접속하는 시점도 웹 페이지가 모두 로드된 이후가 된다.

SCE 서버에서 호스팅되는 페이지에 접속했을 때와 동일하게, 플레이어의 모든 기능을 정상적으로 이용할 수 있다.

반응형

댓글