2010년 8월 18일
어떤 아프리카 영상을 다운로드하려고 좀 살펴 봤는데, 결국 받긴 받았지만 간단하진 않은 것 같다. 대략적인 작업 과정:
- 크롬에서
about:cache로 들어 가서 최근 캐시 목록을 살펴 본다. 살펴본 결과 썸네일을iflv4.afreeca.com:8099에서 받는 건 확인했는데, 어째 flv 파일 링크는 없다. 아무래도 RTMP를 쓰는듯. - Wireshark로 패킷 덤프를 떠 본다. 내 넷북 무선랜 드라이버가 뭔가 맛이 갔는지 기본값인 promiscuous mode로 갈무리가 잘 안 되는데, 뭐 꺼도 상관 없어서 끄니까 잘 되는듯.
- 덤프에서 필요한 RTMP 패킷들만 저장한다. 패킷 목록에서 RTMP로 전송되는 패킷들만 follow TCP stream으로 필터링한 뒤 받은 패킷만 저장하면 됨.
- 이제 RTMP 패킷 덤프를 replay할 프로그램이 필요한데, 좀 찾아 보니까 flazr 0.5가 이 기능을 지원하는 것 같아서 좀 들여다 봤다. (신비롭게도 0.7에는 대응되는 기능이 없는듯…) wireshark.groovy라는 그루비 스크립트가 있는데 이걸 파일 이름만 고쳐서 실행하면 된다.
- 그러나 왠진 몰라도 BufferUnderflowException이 나면서 실패. 음…
- 왜 그런가 분석하던 도중, 왠지 눈에 익은 문자열이 보여서 다시 확인해 보니까 RTMP 패킷 맨 첫머리에 HTTP로 접근할 수 있는 URL이 쓰여 있다. 응?;
뭐 그래서 그냥 아까 전에 썸네일 받았던 URL에다가 RTMP 패킷에 들어 있던 URL을 합쳐서 그냥 wget으로 받았다는 훈훈한 얘기. -_-;
