'유튜브'에 해당되는 글 4건
- 2010/03/01 유튜브 동영상 다운받는 프로그램 만들기
- 2009/12/16 유튜브 검색 api 가 조금 변경되었네요.
- 2009/09/23 구글의 javascript library 사용하여 플래시 플레이어 버젼 확인하기
- 2009/07/26 최신음악 최신가요 듣기 유튜브 메쉬업 (12)
우연히 유뷰브 동영상을 다운받는 프로그램의 소스를 보게 되어서 파이썬으로 직접 코드를 짜면서 따라가보았다. 생각보다 간단하지만, 한단계를 거쳐서 가야해서 조금 번거롭기는 하다. 다음과 같은 과정으로 플래시 동영상 파일인 flv 파일을 다운받을 수 있다.
파이썬으로 만들어본 코드는 다음과 같다. 가장 간단한 과정을 모두 보여주므로, win32 나 C# 으로 이 과정대로 따라 만들면 쉽게 만들 수 있을것 같다.
pop.wimy.com 와 연계하면 재미있는 프로그램이 나올수도 있을것같다 ^^
- 원하는 video id 를 얻는다. 이건 보통 play 하는 url 에, v=???? 라며 적혀있다.
- 특정 url 에 원하는 video id 를 넣어서 토큰(token)이라는 걸 얻는다.
- 다시 특정 url 에 원하는 video id 와 앞에서 얻은 토큰을 얻어서 다운로드를 한다.
파이썬으로 만들어본 코드는 다음과 같다. 가장 간단한 과정을 모두 보여주므로, win32 나 C# 으로 이 과정대로 따라 만들면 쉽게 만들 수 있을것 같다.
import urllib
import re
def testmain():
videoid = "KIvwdpYII7s"
url = u"http://www.youtube.com/get_video_info?video_id=%s&el=embedded&ps=default&eurl=" % videoid
f = urllib.urlopen(url)
info = urllib.unquote(f.read())
r = "token=(.*?)&"
token = re.findall(r, info)[1]
downloadurl = u"http://www.youtube.com/get_video?video_id=%s&t=%s&eurl=&el=embedded&ps=default" % (videoid, token)
downloadWebRequest = urllib.urlopen(downloadurl)
outfile = open("a.flv", "wb")
outfile.write(downloadWebRequest.read())
outfile.close()
if __name__ == "__main__":
testmain()
pop.wimy.com 와 연계하면 재미있는 프로그램이 나올수도 있을것같다 ^^
pop.wimy.com 에서 google 의 GVideosearch 를 사용하는데, 일주일쯤전부터 이상하게 기본적으로 video.google.com 내의 내용만 검색하는거 같네요. 이상하게 음악 플레이가 안되어서 이틀동안 퇴근하고 추적해보니, 검색을 거의 못하고, 영문만 검색되고, 검색후의 url 도 이상해서 보니, 유튜브를 기본적으로 검색 못하는 것 같습니다.
일단 임시방편으로 특정 채널만 검색하도록 하니 일단 되기는 하는데... 시간을 두고 왜 이런지 알아봐야겠네요. 유튜브 api 가 버젼 2 로 올라가는 중이라던데 이것 때문인지 음...
아주 작은 사이트를 계속 서비스 유지하는 것도 이래저래 힘들다는 걸 새삼느끼네요.
일단 임시방편으로 특정 채널만 검색하도록 하니 일단 되기는 하는데... 시간을 두고 왜 이런지 알아봐야겠네요. 유튜브 api 가 버젼 2 로 올라가는 중이라던데 이것 때문인지 음...
아주 작은 사이트를 계속 서비스 유지하는 것도 이래저래 힘들다는 걸 새삼느끼네요.
다음과 같은 코드를 통해서 현재 웹 브라우져의 플래시 플레이어 버젼을 확인할 수 있다. 특정 버젼 이상(유튜브의 경우 8 이상이어야한다)이 필요할 경우 체크할 때 사용하면 된다.
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
google.load("swfobject", "2.1");
google.setOnLoadCallback(onLoad);
function onLoad()
{
var flashVersion = swfobject.getFlashPlayerVersion();
alert("Flash version : " + flashVersion.major + "." + flashVersion.minor);
}
</script>
참고로 IE6 의 경우 기본적으로 버젼 6 이 깔려있다.
이번 주말동안 최신음악을 항상 재생해주는 유튜브 메쉬업(http://pop.wimy.com) 을 만들어보았다. 갑자기 생각나서 만들게 된 메쉬업이다.
동작 방식은 간단하다. 특정 음악 순위 사이트에서 순위를 받아와서, 받아온 가수와 곡명으로 유튜브에서 검색을 해서 플레이를 해준다. 일종의 음악방송 같은 느낌으로 계속 최신곡을 재생해준다.
기술적으로는 google appengine 을 이용해서 python 으로 음악 순위를 parsing 해서 xml 로 보여주고, 이 xml 을 javascript 로 읽어와서, google video search 와 youtube player 를 통해 재생한다. 정말 조합해서 쉽게쉽게 짤 수 있어서 좋은 세상이다~ 특히 google 관련 api 는 ajax playground(http://code.google.com/apis/ajax/playground/) 에 너무 잘되어 있어서 그냥 가져다가 조합해서 쓴 셈이다. 유니코드 관련해서 조금 복잡했는데 스프링노트(http://zelon.springnote.com/pages/3345119) 에 정리했다.
아직 좀 다듬어야 할 부분이 많지만, 일단 기본 동작은 잘되므로 공개해본다.
동작 방식은 간단하다. 특정 음악 순위 사이트에서 순위를 받아와서, 받아온 가수와 곡명으로 유튜브에서 검색을 해서 플레이를 해준다. 일종의 음악방송 같은 느낌으로 계속 최신곡을 재생해준다.
기술적으로는 google appengine 을 이용해서 python 으로 음악 순위를 parsing 해서 xml 로 보여주고, 이 xml 을 javascript 로 읽어와서, google video search 와 youtube player 를 통해 재생한다. 정말 조합해서 쉽게쉽게 짤 수 있어서 좋은 세상이다~ 특히 google 관련 api 는 ajax playground(http://code.google.com/apis/ajax/playground/) 에 너무 잘되어 있어서 그냥 가져다가 조합해서 쓴 셈이다. 유니코드 관련해서 조금 복잡했는데 스프링노트(http://zelon.springnote.com/pages/3345119) 에 정리했다.
아직 좀 다듬어야 할 부분이 많지만, 일단 기본 동작은 잘되므로 공개해본다.
-
-
fullc0de 2009/08/11 09:42
소 쿨~ 한데... 긍데 저작권은 문제 없는거지? ㅎㅎ 요즘 시스템 레벨에서만 일을 하다보니 app레벨에서 하는 것들이 멋져보이네 재미 있는 거 있음 좀 갈쳐줘~ ㅎ
-
zelon 2009/08/13 02:05
저작권은... 유튜브에 올라온 걸 embed 한거니까 괜찮지 않을까... 그리고 이런 유형이 외국에서 판결난 적이 있다는 걸 봤는데 괜찮았다고 들어본적있음 ㅋ
-
-
-
zelon 2009/08/13 02:06
IE 6.0 은 javascript 로 xml 이 기본적으로 안되고 activeX 를 써야하는데... IE 6.0 테스트 환경이 회사 밖에 없어서;; 나중에 virtual machine 하나 깔면 해볼께;;;;
-
-
-
-
kkamagui 2009/09/07 09:42
우왓~!!! 횽 완전 멋진데요? 깜짝 놀랐어요 ㅎㅎ
역시 마음가짐이 문제였군요. ㅠㅠ
횽이 저에게 답을 주고 계신다는 ㅠㅠ 완전 짱~!!

Prev
Rss Feed