본문 바로가기
탐구

PSP [인터넷 라디오] 기능 해부: ① 기본적인 동작 원리와 공식 프리셋

by 블루스크린 (BSofDeath) 2026. 1. 29.

PSP에는 [인터넷 라디오]라는 기능이 있다.
 

이 기능은 PSP에 내장된 [인터넷 브라우저]로 전용 플러그인을 지원하는 웹 플레이어 사이트에 접속하여 MP3 또는 AAC 규격의 오디오 스트림을 재생하는 기능이다.
 

이때 웹 플레이어 사이트로의 접속은 XMB에서 반드시 [인터넷 라디오] 메뉴로 진입해 해당 사이트의 어드레스가 지정된 프리셋을 여는 식으로 수행되어야 한다.
 
[인터넷 브라우저]를 바로 실행 후 어드레스를 직접 입력해서 접속할 경우 플러그인이 완전히 활성화되지 않아 스트림 재생이 불가능하다.
 
 

[인터넷 라디오] 기능의 기본 동작 원리

[인터넷 라디오] 기능의 대략적인 구조도

기능의 대략적인 구조도를 그려보면 프리셋에 연결된 웹 사이트(플레이어), 정확히는 이를 이루는 자바스크립트 코드가 이 기능의 핵심 로직을 수행함을 알 수 있다.
 
기본적으로는 웹 플레이어 내에서 사전 정의된 경로로 스트림을 요청하는 프로세스가 수행되나, 공식 프리셋 중 [INTERNET RADIO PLAYER I/II]에 대응하는 웹 플레이어의 경우 외부 API 쿼리를 통해 재생할 스트림 경로를 동적으로 결정하는 프로세스를 갖추고 있기도 하다.

웹 사이트를 구성하는 자바스크립트가 로직의 핵심

 
 
 

공식 프리셋 일람

당시 SCE가 공식 가이드를 통해 배포했던 기본 프리셋들은 모두 radio.psp.dl.playstation.net 아래 어드레스의 웹 플레이어를 가리키는데, 이들은 모두 SHOUTcast 또는 Icecast 디렉토리에서 검색되는 스트림을 실시간으로 불러와 재생할 수 있도록 구성되어 있다.
 
그리고 놀랍게도 2026년 1월 현재까지 멀쩡히 접속되며 스트림 재생 또한 가능하다!
 
이는 상기한 디렉토리 서비스가 여전히 HTTP 기반으로 운영되고 있을 뿐 아니라 API 작동 구조까지 큰 변화 없이 그대로 유지되고 있기 때문이다.
 

심지어 이들은 근본적으로 정적 웹사이트이기에, 소스를 포크해서 직접 호스팅하거나 메모리 스틱에서 로컬 HTML로 접근해도 모든 기능을 정상적으로 이용할 수 있다. — 이 부분은 ②편에서 더 자세히 다룰 예정이다.
 
속된 표현을 빌리자면 단순히 외부 서버(SHOUTcast, Icecast)에 스트림을 요청해 받아오는 발사대에 불과해서, 약간의 코드를 손볼 줄 안다면 사실상 반영구적으로 사용 가능한 요소인 셈.
 

그렇다면 당시 배포된 공식 프리셋에는 어떤 것들이 있었을까? 가이드 홈페이지는 현재 접속이 불가능하지만 웹 아카이브를 통해 그 흔적을 확인해볼 수는 있다.
 
PSP에 프리셋을 등록하기 위해서는 메모리 스틱의 /PSP/RADIOPLAYER/ 폴더에 .prs 파일을 넣으면 된다.
 
 

Internet Radio Player I

Internet Radio Player I은 SHOUTcast의 콘텐츠를 제공합니다. 50여 개의 장르 중에서 원하는 라디오 방송국을 선택할 수 있습니다. 원하는 장르를 선택하면 방송국 리스트 중에서 인기가 높은 방송국을 자동으로 골라 재생합니다.

http://radio.psp.dl.playstation.net/psp/radio/player/PLAYER_I/index.html

INTERNET RADIO PLAYER I

radio.psp.dl.playstation.net

InternetRadioPlayerI.prs
0.01MB

동작 원리:

① 플레이어에서 선택한 장르에 따라 검색 작업에 사용할 키워드를 결정한다.

② SHOUTcast API를 통해 [①에서 결정한 키워드]를 장르로 하는 모든 스트림을 검색한다.

API 쿼리 결과를 파싱하여 얻어낸 상위 30개 스트림을 플레이어에서 자유롭게 선택하며 들을 수 있다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;
var selectedGenre = -1;

var devID="sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A="http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식

// 웹 사이트 상에서 선택 가능한 장르 목록
genreList = new Array(
  "50s",
  "60s",
  "70s",
  "80s",
  "90s",
  "2000s",
  "Alt",
  "Ambient",
  "Ballade",
  "Blues",
  "Bossa Nova",
  "British",
  "Classical",
  "Contempo",
  "Country",
  "Eclectic",
  "Electronica",
  "Euro",
  "Folk",
  "Game",
  "HardRock",
  "Hawaiian",
  "House",
  "Indie",
  "International",
  "Island",
  "Jazz",
  "JPOP",
  "KPOP",
  "Latin",
  "Live",
  "Metal",
  "Modern",
  "News",
  "Oldies",
  "Pakistani",
  "Polskie",
  "Pop",
  "Progressive",
  "Public",
  "R&B",
  "Reggae",
  "Religious",
  "Salsa",
  "Talk",
  "Techno",
  "Top40",
  "Turkish",
  "Urban",
  "Various"
);

// 웹사이트 내 임의 장르 클릭 시 쿼리 키워드 지정
function g_mouseDown(rowNum, colNum) {
	var _selectedGenre = rowNum + numTableRaw * colNum;
	if (_selectedGenre != selectedGenre)
		selectedGenre = _selectedGenre;
}
if (0 <= selectedGenre)
	var url = shoutcastYelloPageUrl_A + genreList[selectedGenre];

psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

Internet Radio Player II

Internet Radio Player II는 ICECAST(icecast.org)의 콘텐츠를 제공합니다. 50여 개의 장르 중에서 선택할 수 있습니다.

http://radio.psp.dl.playstation.net/psp/radio/player/PLAYER_II/index.html

INTERNET RADIO PLAYER II

radio.psp.dl.playstation.net

InternetRadioPlayerII.prs
0.01MB

동작 원리:

① 플레이어에서 선택한 장르에 따라 검색 작업에 사용할 키워드를 결정한다.

② Icecast directory 웹 사이트에서 [①에서 결정한 키워드]를 장르로 하는 모든 스트림을 검색한다.

검색 결과 페이지의 HTML 텍스트를 파싱하여 얻어낸 상위 30개 스트림을 플레이어에서 자유롭게 선택하며 들을 수 있다.
 
※ 2026년 1월 현재는 Icecast directory 웹 사이트의 구조 변경으로 인해 순정 코드에서 검색 결과 페이지를 파싱하는 로직이 정상적으로 동작하지 않는다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;
var selectedGenre = -1;

var icecastStreamDirectoryUrl_A = "http://dir.xiph.org/search?start=0&num=50&search=";	// API 호출 경로 형식

// 웹 사이트 상에서 선택 가능한 장르 목록
genreList = new Array (
	"50s",
	"60s",
	"70s",
	"80s",
	"90s",
	"2000s",
	"Alt",
	"Ambient",
	"Ballade",
	"Blues",
	"Bossa Nova",
	"British",
	"Classical",
	"Contempo",
	"Country",
	"Eclectic",
	"Electronica",
	"Euro",
	"Folk",
	"Game",
	"HardRock",
	"Hawaiian",
	"House",
	"Indie",
	"International",
	"Island",
	"Jazz",
	"JPOP",
	"KPOP",
	"Latin",
	"Live",
	"Metal",
	"Modern",
	"News",
	"Oldies",
	"Pakistani",
	"Polskie",
	"Pop",
	"Progressive",
	"Public",
	"R&B",
	"Reggae",
	"Religious",
	"Salsa",
	"Talk",
	"Techno",
	"Top40",
	"Turkish",
	"Urban",
	"Various"
);

// 웹사이트 내 임의 장르 클릭 시 쿼리 키워드 지정
function g_mouseDown(rowNum, colNum) {
	var _selectedGenre = rowNum + numTableRaw * colNum;
	if (_selectedGenre != selectedGenre)
		selectedGenre = _selectedGenre;
}
if (0 <= selectedGenre)
	var url = icecastStreamDirectoryUrl_A + genreList[selectedGenre];

psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

Internet Radio Player "CLIP" 시리즈

1980년대에 판매되었던 SONY의 카드 라디오 "ONE-STATION RADIO CLIP"이 인터넷 라디오 플레이어로 돌아왔습니다.

Back to the 80's [장르: 80's]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_80s/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_80s/index.html

radio.psp.dl.playstation.net

clip_80s.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "80s"가 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "80s";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

ROCK [장르: Rock]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_rock/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_rock/index.html

radio.psp.dl.playstation.net

clip_rock.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "rock"이 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "rock";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

COUNTERCULTURE [장르: Alternative]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_alternative/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_alternative/index.html

radio.psp.dl.playstation.net

clip_alternative.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "alternative"가 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "alternative";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

BRITISH CULTURE [장르: British]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_british/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_british/index.html

radio.psp.dl.playstation.net

clip_british.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "british"가 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "british";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

All The Classic [장르: Classic]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_classic/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_classic/index.html

radio.psp.dl.playstation.net

clip_classic.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "classical"이 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "classical";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

Jazz in 246 [장르: Jazz]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_jazz/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_jazz/index.html

radio.psp.dl.playstation.net

clip_jazz.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "jazz"가 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "jazz";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

INDIA [장르: India]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_india/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_india/index.html

radio.psp.dl.playstation.net

clip_india.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "india"가 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "india";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

J-POP [장르: J-pop]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_jpop/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_jpop/index.html

radio.psp.dl.playstation.net

clip_jpop.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "jpop"이 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "jpop";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

K-POP [장르: K-pop]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_kpop2/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_kpop2/index.html

radio.psp.dl.playstation.net

clip_kpop2.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "kpop"이 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "kpop";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

ANIME CAN [장르: Anime]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_anime/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_anime/index.html

radio.psp.dl.playstation.net

clip_anime.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "anime"가 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "anime";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

GAME START [장르: Game]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_game/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_game/index.html

radio.psp.dl.playstation.net

clip_game.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "game"이 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "game";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

Healing Time [장르: Healing]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_relax/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_relax/index.html

radio.psp.dl.playstation.net

clip_relax.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "relax"가 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "relax";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

Soundtrack [장르: Soundtrack]

http://radio.psp.dl.playstation.net/psp/radio/player/clip_soundtrack/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/clip_soundtrack/index.html

radio.psp.dl.playstation.net

clip_soundtrack.prs
0.01MB

동작 원리:

① SHOUTcast API를 통해 장르 분류에 "soundtrack"이 포함된 모든 스트림을 검색한다.

API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID = "sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A = "http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식
var searchKeyword = "soundtrack";

var url = shoutcastYelloPageUrl_A + searchKeyword;
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

Internet Radio Player "ONE SWITCH RADIO" 시리즈

스위치를 바꾸는 것만으로 선국할 수 있는 인터넷 라디오 플레이어입니다.

TO JAZZ OR NOT TO JAZZ, THAT IS THE QUESTION

스위치를 [JAZZ]에 맞추면 재즈를, [NOT]에 맞추면 재즈 이외의 음악을 들을 수 있습니다.

http://radio.psp.dl.playstation.net/psp/radio/player/os_JazzOrNot/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/os_JazzOrNot/index.html

radio.psp.dl.playstation.net

os_JazzOrNot.prs
0.01MB

동작 원리:

① 스위치의 ON/OFF 상태에 따라 주어진 풀 내에서 검색할 장르 키워드를 무작위로 결정한다.

스위치가 [ON]일 때:
‘Swing’, ‘Jazz’ 중 택1

스위치가 [OFF]일 때:
’Classical’, ‘International’, ‘Pakistani’, ‘Turkish’ 중 택1


② SHOUTcast API를 통해 장르 분류에 [①에서 결정한 키워드]가 포함된 모든 스트림을 검색한다.

③ API 쿼리 결과(XML) 내의 스트림을 무작위 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID="sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A="http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식

// 스위치가 [ON]일 때 검색할 장르 키워드 풀
onKeywords = new Array ( "Swing", "Jazz" );

// 스위치가 [OFF]일 때 검색할 장르 키워드 풀
offKeywords = new Array ( "Classical", "Classical", "International", "Pakistani", "Turkish" );

var url = "";
switchState = switchState ? 0 : 1;
if ( switchState === 1 ) {	// 스위치가 [ON]일 경우
	var n = onKeywords.length;
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + onKeywords [m];
}
else {						// 스위치가 [OFF]일 경우
	var n = offKeywords.length;	
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + offKeywords [m];
}
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

Like On The Radio

과거의 라디오 프로그램과 흘러간 음악을 바꿔가며 들을 수 있습니다.

http://radio.psp.dl.playstation.net/psp/radio/player/os_LikeOnTheRadio/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/os_LikeOnTheRadio/index.html

radio.psp.dl.playstation.net

os_LikeOnTheRadio.prs
0.01MB

동작 원리:

① 스위치의 ON/OFF 상태에 따라 주어진 풀 내에서 검색할 장르 키워드를 무작위로 결정한다.

스위치가 [ON]일 때:
‘Big Band’

스위치가 [OFF]일 때:
‘Old Time’


② SHOUTcast API를 통해 장르 분류에 [①에서 결정한 키워드]가 포함된 모든 스트림을 검색한다.

③ API 쿼리 결과(XML) 내의 스트림을 무작위 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID="sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A="http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식

// 스위치가 [ON]일 때 검색할 장르 키워드 풀
onKeywords = new Array ( "Big Band" );

// 스위치가 [OFF]일 때 검색할 장르 키워드 풀
offKeywords = new Array ( "Old Time" );

var url = "";
switchState = switchState ? 0 : 1;
if ( switchState === 1 ) {	// 스위치가 [ON]일 경우
	var n = onKeywords.length;
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + onKeywords [m];
}
else {						// 스위치가 [OFF]일 경우
	var n = offKeywords.length;	
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + offKeywords [m];
}
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

LATIN ON

LATIN 스위치를 [ON]에 맞추면 라틴 음악 방송국이 선국됩니다.

http://radio.psp.dl.playstation.net/psp/radio/player/os_LatinOn/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/os_LatinOn/index.html

radio.psp.dl.playstation.net

os_LatinOn.prs
0.01MB

동작 원리:

① 스위치의 ON/OFF 상태에 따라 주어진 풀 내에서 검색할 장르 키워드를 무작위로 결정한다.

스위치가 [ON]일 때:
‘Bossa’, ‘Salsa’, ‘Brazil’, ‘Rumba’, ‘Samba’

스위치가 [OFF]일 때:
‘Baroque’, ‘Piano’, ‘New Age’


② SHOUTcast API를 통해 장르 분류에 [①에서 결정한 키워드]가 포함된 모든 스트림을 검색한다.

③ API 쿼리 결과(XML) 내의 스트림을 무작위 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID="sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A="http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식

// 스위치가 [ON]일 때 검색할 장르 키워드 풀
onKeywords = new Array ( "Bossa", "Salsa", "Brazil", "Rumba", "Samba" );

// 스위치가 [OFF]일 때 검색할 장르 키워드 풀
offKeywords = new Array ( "Baroque", "Piano", "New Age" );

var url = "";
switchState = switchState ? 0 : 1;
if ( switchState === 1 ) {	// 스위치가 [ON]일 경우
	var n = onKeywords.length;
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + onKeywords [m];
}
else {						// 스위치가 [OFF]일 경우
	var n = offKeywords.length;	
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + offKeywords [m];
}
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

Hip Me, Hop You

스위치를 [HIP]에 맞추면 힙합, [HOP]에 맞추면 랩 음악을 들을 수 있습니다.

http://radio.psp.dl.playstation.net/psp/radio/player/os_HipMeHopYou/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/os_HipMeHopYou/index.html

radio.psp.dl.playstation.net

os_HipMeHopYou.prs
0.01MB

동작 원리:

① 스위치의 ON/OFF 상태에 따라 주어진 풀 내에서 검색할 장르 키워드를 무작위로 결정한다.

스위치가 [ON]일 때:
‘Hiphop’

스위치가 [OFF]일 때:
‘Hiphop’


② SHOUTcast API를 통해 장르 분류에 [①에서 결정한 키워드]가 포함된 모든 스트림을 검색한다.

③ API 쿼리 결과(XML) 내의 스트림을 무작위 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID="sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A="http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식

// 스위치가 [ON]일 때 검색할 장르 키워드 풀
onKeywords = new Array ( "Hiphop" );

// 스위치가 [OFF]일 때 검색할 장르 키워드 풀
offKeywords = new Array ( "Hiphop" );

var url = "";
switchState = switchState ? 0 : 1;
if ( switchState === 1 ) {	// 스위치가 [ON]일 경우
	var n = onKeywords.length;
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + onKeywords [m];
}
else {						// 스위치가 [OFF]일 경우
	var n = offKeywords.length;	
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + offKeywords [m];
}
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

Coffee Or Tea

[Coffee]와 [Tea]를 전환하면 편안함을 주는 서로 다른 종류의 음악을 들을 수 있습니다.

http://radio.psp.dl.playstation.net/psp/radio/player/os_CoffeeOrTea/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/os_CoffeeOrTea/index.html

radio.psp.dl.playstation.net

os_CoffeeOrTea.prs
0.01MB

동작 원리:

① 스위치의 ON/OFF 상태에 따라 주어진 풀 내에서 검색할 장르 키워드를 무작위로 결정한다.

스위치가 [ON]일 때:
‘Downtempo’

스위치가 [OFF]일 때:
‘Chanson’, ‘Bossa’


② SHOUTcast API를 통해 장르 분류에 [①에서 결정한 키워드]가 포함된 모든 스트림을 검색한다.

③ API 쿼리 결과(XML) 내의 스트림을 무작위 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID="sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A="http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식

// 스위치가 [ON]일 때 검색할 장르 키워드 풀
onKeywords = new Array ( "Downtempo" );

// 스위치가 [OFF]일 때 검색할 장르 키워드 풀
offKeywords = new Array ( "Chanson", "Bossa" );

var url = "";
switchState = switchState ? 0 : 1;
if ( switchState === 1 ) {	// 스위치가 [ON]일 경우
	var n = onKeywords.length;
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + onKeywords [m];
}
else {						// 스위치가 [OFF]일 경우
	var n = offKeywords.length;	
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + offKeywords [m];
}
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

a way to relax

앰비언트 음악과 클래식 음악을 전환하여 들을 수 있습니다.

http://radio.psp.dl.playstation.net/psp/radio/player/os_AWayToRelax/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/os_AWayToRelax/index.html

radio.psp.dl.playstation.net

os_AWayToRelax.prs
0.01MB

동작 원리:

① 스위치의 ON/OFF 상태에 따라 주어진 풀 내에서 검색할 장르 키워드를 무작위로 결정한다.

스위치가 [ON]일 때:
‘Classical’

스위치가 [OFF]일 때:
‘Ambient’


② SHOUTcast API를 통해 장르 분류에 [①에서 결정한 키워드]가 포함된 모든 스트림을 검색한다.

③ API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID="sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A="http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식

// 스위치가 [ON]일 때 검색할 장르 키워드 풀
onKeywords = new Array ( "Classical" );

// 스위치가 [OFF]일 때 검색할 장르 키워드 풀
offKeywords = new Array ( "Ambient" );

var url = "";
switchState = switchState ? 0 : 1;
if ( switchState === 1 ) {	// 스위치가 [ON]일 경우
	var n = onKeywords.length;
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + onKeywords [m];
}
else {						// 스위치가 [OFF]일 경우
	var n = offKeywords.length;	
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + offKeywords [m];
}
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

FUNKACOPUNKA

PUNK 음악과 FUNK 음악을 스위치 하나로 전환할 수 있습니다.

http://radio.psp.dl.playstation.net/psp/radio/player/os_PUNKACOFUNKA/index.html

http://radio.psp.dl.playstation.net/psp/radio/player/os_PUNKACOFUNKA/index.html

radio.psp.dl.playstation.net

os_PUNKACOFUNKA.prs
0.01MB

동작 원리:

① 스위치의 ON/OFF 상태에 따라 주어진 풀 내에서 검색할 장르 키워드를 무작위로 결정한다.

스위치가 [ON]일 때:
‘Funk’

스위치가 [OFF]일 때:
‘Punk’


② SHOUTcast API를 통해 장르 분류에 [①에서 결정한 키워드]가 포함된 모든 스트림을 검색한다.

③ API 쿼리 결과(XML) 내의 스트림을 순차 선택하며 재생한다.

var userAgentForHttpGet = "PSP-InternetRadioPlayer/1.00";
var size = 16384;

var devID="sh1ODSQoScMFgZWn";	// SCE에서 발급한 PSP용 공식 API 키
var shoutcastYelloPageUrl_A="http://api.shoutcast.com/legacy/stationsearch?k="+devID+"&search=";	// API 호출 경로 형식

// 스위치가 [ON]일 때 검색할 장르 키워드 풀
onKeywords = new Array ( "Funk" );

// 스위치가 [OFF]일 때 검색할 장르 키워드 풀
offKeywords = new Array ( "Punk" );

var url = "";
switchState = switchState ? 0 : 1;
if ( switchState === 1 ) {	// 스위치가 [ON]일 경우
	var n = onKeywords.length;
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + onKeywords [m];
}
else {						// 스위치가 [OFF]일 경우
	var n = offKeywords.length;	
	var m = Math.floor (Math.random () * (n + 1));
	if ( n <= m ) m = n - 1;
	url = shoutcastYelloPageUrl_A + offKeywords [m];
}
psp.sysRadioPrepareForHttpGet (url, userAgentForHttpGet, size, 0);	// PSP 재생 플러그인 호출

 

반응형

댓글