안녕하세요. 낭만폭풍입니다.
ffmpeg기반으로 동영상 플레이어 어플을 만들고 있습니다.
여기서 유튜브 동영상도 재생해야 하는데
유튜브 api로 뽑아온 동영상 url을 넣으니 화질이 완전 박살납니다.
<media:content
duration="111"
expression="full"
isDefault="true"
medium="video"
type="application/x-shockwave-flash"
url="http://www.youtube.com/v/qec8hPzqHBk?version=3&f=videos&app=youtube_gdata"
yt:format="5" />
<media:content
duration="111"
expression="full"
medium="video"
type="video/3gpp"
url="rtsp://v6.cache4.c.youtube.com/CiILENy73wIaGQkZHOr8hDznqRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp"
yt:format="1" />
<media:content
duration="111"
expression="full"
medium="video"
type="video/3gpp"
url="rtsp://v7.cache1.c.youtube.com/CiILENy73wIaGQkZHOr8hDznqRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp"
yt:format="6" />
이런걸 뽑아 왔는데, 맨 위에껀 실행이 안되고 나머지는 화질이 너무 낮아서 재생조차 잘 안 되고 버벅거리더군요.
볼레로님의 소울무비를 보니 유튜브 동영상도 깔끔하게 나오는것 같아서 제가 뭔가 잘못 뽑아 온것 같은데,
여기서 검색해서 유튜브 api 홈페이지에서도 확인하니까 동영상 url은 저렇게 뽑아 오는게 맞는것 같고....
분명 코덱 문제는 아닙니다. 기본 비디오뷰로 재생해도 마찬가지입니다.
영어가 짧아서 설명을 이해를 잘못 한건지, 당췌 알 수가 없습니다 ㅠㅠ
도움 부탁드립니다.
추가:
소울무비 로그분석을 해보니
http://o-o.preferred.sjc07s16.v5.lscache8.c.youtube.com/videoplayback?upn=p33_dmKNNCY&sparams=cp,id,ip,ipbits,itag,ratebypass,source,upn,expire&fexp=906048,919006,907217,907335,921602,919306,922600,919316,906050,920704,912804,924500,913542,913547,919324,907344,912706,902518&ms=au&itag=18&ip=211.0.0.0&signature=4CC21D557B49B0F937CA89D6A72DF9FFAA11C549.1607F556DB470B9BF72C5DD681EE64557B973DBE&sver=3&mt=1340760613&ratebypass=yes&source=youtube&expire=1340784210&key=yt1&ipbits=8&cp=U0hTRVdTUl9GSkNOM19PTVZDOjVOWFRkVWpOTzdj&id=a9e73c84fcea1c19
뭐 이런 url이 뜨는데... 유튜브 홈페이지 소스보기를 해 보니 이런식의 url이 자바스크립트안에 들어 있네요.
정녕 홈페이지를 직접 파싱하는것 밖에 방법이 없나요?




맞습니다.
API에서는 모든 포맷을 알려주지 않습니다.
웹페이지 파싱하셔야 원하는 화질의 링크를 얻을수 있는데요.
이것을 문제는 가끔 웹페이지를 바꾸어서 그때 마다 앱을 업그레이드 해야 한답니다.
수고하세요!