국내 라디오 방송을 스트리밍으로 들으려면 기본적으로 윈도우에서 전용프로그램을 이용해야 합니다. 리눅스나 맥용 프로그램은 없습니다.
최근 윈도우가 아닌 환경에서 듣는 방법을 알려주는 블로그를 발견했습니다.
http://mielikki.tistory.com/197
발견하고 php 소스를 보니 웹페이지로 만들지 않고 프로그램으로 만들수도 있을것 같아 python 으로 만들어 보기로 했습니다. 간단한 연습겸 httplib 도 좀 써보고 싶어서요.
#!/usr/bin/python
import httplib
import subprocess
import sys
def CreateProcess(command):
try:
p = subprocess.Popen(command,shell=True)
except OSError,e:
print "oserror"
args = sys.argv
if len(args) < 2 :
ch = 2
else :
ch = args[1]
conn = httplib.HTTPConnection('kbs xx주소',80)
conn.request("GET","/xxxxxx/xxxxxxxxxx?id=xxxxx&channel=%s"%ch)
r1 = conn.getresponse()
st = r1.read()
conn.close()
index1 = st.find("mms:")
address = st[index1:]
arg = "totem %s"%address
CreateProcess(arg)
파이썬으로 하니 간단히 되는군요.
간단히 설명하면 httplib 라이브러리로 스트리밍 주소를 얻어서 totem 으로 그 주소를 넘겨 재생하게 하는 방식입니다. 리눅스에서 작성했기에 totem 을 쓰도록 했고 윈도우의 경우엔 조금만 수정해 주면 됩니다.
스트리밍 주소인 mms:// 를 얻었으면 다음부턴 그냥 그걸 쓰면 되지 않느냐고 생각하시겠지만 그렇게 얻은 주소를 나중에 사용하려고 하면 에러가 발생하며 재생이 안됩니다. 제 경우엔 이 프로그램을 써도 가끔 안되는 경우가 있더군요. 그땐 다시 시도해 보면 됩니다.
mms:// 주소를 얻는 부분은 kbs 가 딴지를 걸 경우를 대비해 xxx 로 처리해 두었는데 실제 사용하시겠다면 그 부분을 수정해 주면 되고 실제 주소는 위의 링크를 보시면 아실수 있습니다. 뭐...실제로 딴지를 걸만한 근거가 있는지는 모르겠는데 가급적 성가신일은 피하고 싶어서 그런것이니 양해를 바랍니다. ^^;
사용법은 파일이름을 kbsradio.py 라고 가정하면 .....
kbsradio.py 2
이런식으로 1 채널과 2채널을 선택해 주면 됩니다. 만일 뒤의 인자가 없을 경우 2 채널로 연결됩니다.
나중에 kbs에서 연결방식을 바뀌게 되면 언제든 이 프로그램은 작동하지 않을수 있습니다.
'프로그래밍 > python' 카테고리의 다른 글
파이썬(python) 관련 링크 다시 겁니다 (2) | 2013.12.13 |
---|---|
점프 투 파이썬(Jump To Python) PDF 버전 (0) | 2011.01.12 |
Python 3 무료 이북(e-book) 사이트 (0) | 2009.10.30 |
python 쉘에서 간단히 help 이용하기. (1) | 2008.10.01 |
공개 python 강좌.... (1) | 2008.07.08 |