컴퓨터를 IPTV로 2, pooq 실시간 주소 추출하기

2017/05/01 08:30

pooq, 삽질해서 알아낸 주소

현재 200여개가 넘는 채널을 체리 플레이어에 등록해서 사용하고 있다. 다른 것은 다 마음에 드는데 일부 채널의 해상도가 떨어지는 것이 마음에 들지 않았다. 푹에서 HD급 화질을 제공하고 티빙도 비슷한 수준의 화질을 제공한다. 따라서 두 사이트의 실시간 채널 주소를 추출해서 사용할 수 있다면? 바로 이런 고민 때문에 시작한 작업이다.

푹과 티빙 모두 실시간 채널 주소를 추출하는데 성공했다. 다만 티빙은 로그인없이 유료 채널까지 시청할 수 있기 때문에 공개하지 않기로 했다. 푹은 요청 정보에 사용자 정보가 포함되된다. 즉, 푹 사용자가 아니면 실시간 주소를 추출할 수 없다. 따라서 이 방법을 공개한다고 해도 큰 문제가 되지 않을 것으로 판단했다. 참고로 이렇게 추출한 주소는 다른 기기에서 로그인하기 전까지 유효했다. 오늘은 푹의 실시간 주소를 추출해서 체리 플레이어와 같은 다른 동영상 플레이어로 볼 수 있는 방법을 설명하겠다.

목차

공중파로 N스크린의 주류가 된 pooq

pooq

공중파 3사의 컨텐츠를 제공하는 유일한 서비스. 티빙에서도 공중파를 볼 수 있었지만 지금은 푹에서만 볼 수 있다. 티빙이 실시간 채널 무료라는 강수로 방문자가 3배 증가했다고 해도 푹이 흔들리지 않는 이유이기도 하다.

컴퓨터를 IPTV로 만들자, 체리 플레이어(CherryPlayer)라는 글에서 한번 설명했듯이 체리 플레이어(CherryPlayer)를 이용하면 컴퓨터를 IPTV처럼 만들 수 있다. 다만 일반 사용자가 접근할 수 있는 실시간 주소가 많지않고 주소를 추출하는 것도 쉽지 않다. KBS, MBC, SBS와 같은 공중파의 실시간 주소까지 추출해서 사용할 수 있는 사람도 있지만 그렇지 못한 사람이 더 많다. 또 공중파의 실시간 주소를 추출하는 방법은 저작권 때문에 블로그에 공개하기 힘들다. 반면 의 실시간 주소를 추출하다 보니 블로그에 공개해도 큰 문제가 없을 것이라는 생각이 들었다.

실시간 주소 추출기

KBS와 MBC는 영구 주소, SBS와 티빙은 세션 주소다. SBS 세션 주소를 체리 플레이어에 등록하고 재생할 때마다 세션 주소를 가져오는데까지 성공했다. 그런데 문제가...

오늘 소개하는 (pooq) 실시간 주소 주출법은 푹(pooq)을 몰래 시청하기위해 주소를 추출하는 방법이 아니다. 기본적으로 푹 유료 사용자만 사용할 수 있는 방법이다. 따라서 실시간 주소를 추출해서 사용한다고 해도 브라우저로 보는 것과 체리 플레이어로 보는 정도 차이밖에 없다. 컴퓨터를 IPTV로 만들자!는 글에서 이야기했듯이 푹 플레이어(pooq Player)는 브라우저를 기반으로 한다. 전체 화면으로 볼 때는 괜찮을지 모르지만 창 모드로 다른 작업을 하며 보기는 힘들다. '항상 위' 기능[1]이 없고 브라우저 틀 때문에 외관도 좀 떨어진다. 그래서 처음에는 푹 전용 재생기일렉트론(Electron)을 이용해서 만들 생각[2]을 했었다.

푹의 창모드

그림처럼 별 의미가 없다. 그냥 브라우저 창을 하나 더 여는 것에 불과하다. 크롬 HTML 5에서 제공하는 기능처럼 동영상만 분리해서 보여주면 좋을 텐데 정말 무식하게 창만 띄운다.

pooq, 삽질 하다!

그러다 생판 처음 해보는 일로 삽질하기 보다는 의 실시간 주소를 추출해서 사용하는 것이 더 나을 것이라는 생각이 들었다. 그래서 잠깐 짬을 내 실시간 주소를 추출해 봤다. 다음은 주소를 추출하는 과정에 알게된 것들이다.

  1. 푹 요청 정보에 사용자 정보가 포함된다.
    주소를 공개하면 자신의 푹 ID와 암호를 알려주는 것과 같은 효과가 난다. 따라서 이 글을 통해 알게된 주소는 공개하면 안된다.
  2. 두 개의 기기에서 로그인할 수 있다.
    푹은 한 계정으로 한 기기에서만 로그인할 수 있다. 내가 푹을 사용하고 있을 때 다른 사람이 같은 계정으로 푹을 쓰면 내 푹은 끊어진다[3]. 그런데 PC와 앱은 동시 사용이 가능했다[4]. 물론 내가 가입한 요금제가 스마트폰PC 모두 사용할 수 있는 요금제라 그런 것으로 보인다.
  3. 추출한 주소는 영구 주소로 보인다.
    푹 요청 정보에는 사용자 정보가 포함된다. 사용자 확인이 가능하기 때문에 세션 정보를 이용하지 않는 것으로 생각한다. 다만 다른 기기에서 로그인하면 로그인이 풀리며 이전에 만든 주소는 사용할 수 없게 된다.

푹 실시간 주소 추출

먼저 푹 실시간 주소를 추출하기 위해서는 크로미움(Chromium) 계열 브라우저(비발디, 오페라, 크롬)를 사용해야 한다. 불여우와 같은 다른 브라우저도 비슷한 기능을 제공한다. 따라서 다른 브라우저로 해보고 싶다면 글을 읽고 알아서 적용하기 바란다. 내가 주로 사용하는 브라우저는 크로미움 기반의 비발디이다. 따라서 설명은 비발디로 하겠다. 그러나 크로미움 기반은 모두 같은 방식으로 동작하기 때문에 따라하는데 큰 문제는 없을 것으로 생각한다.

pooq 실시간 주소로 재생 중인 JTBC

pooq은 초고화질과 HD의 가격 체계가 다르다. 현재 사용하는 요금제는 HD. 따라서 해상도는 1280x720이다.

푹(pooq)에서 실시간 주소를 추출하는 방법은 간단하다. 푹 API에 채널 정보와 사용자 정보를 주고 실시간 주소를 요청하면 끝난다. 푹에 접속하면 브라우저가 하는 작업이다. 이 작업을 사용자가 직접할 수 있도록하는 확장이 있다. 바로 Boomerang라는 SOAP & REST Client 확장이다. 이 확장은 실시간 주소 추출이 아니라고 해도 HTTP 요청 등을 확인할 때 아주 유용하게 사용할 수 있다. 따라서 주소 추출을 진행하기 전에 Boomerang - SOAP & REST Client를 클릭해서 부메랑(Boomerang)을 먼저 설치하기 바란다.

참고로 같은 크로미움 기반 브라우저라고 해도 오페라는 크롬 확장을 바로 설치할 수 없다. 왜 이렇게 만들었지 모르겠지만 오페라에서 제공하는 확장과 크롬에서 제공하는 확장 중 일부가 다르기 때문일 것으로 추정하고 있다. 그러나 크게 걱정할 필요는 없다. 오페라에서 크롬 확장을 설치할 수 있도록 하는 애드온을 제공하고 있기 때문이다. 오페라 사용자라면 Download Chrome Extension를 설치한 뒤 크롬 웹 스토어에서 부메랑을 설치해 사용하면 된다.

준비물

으로 로그인하지 않으면 미리보기 주소만 추출된다. 따라서 반드시 푹에 로그인한 뒤 진행하기 바란다.

API 주소 추출

푹에서 실시간 주소를 추출하려면 실시간 주소를 만들어 주는 푹 API 주소를 먼저 알아야 한다. 푹 API 주소에는 채널 정보와 사용자 정보가 함께 포함되어 있다.

  1. 푹에 로그인 한 뒤 푹 KBS 1을 클릭해서 푹 실시간 채널로 이동한다.
  2. 채널 제목의 빈 영역에 마우스 오른쪽 단추를 클릭하고 '검사'를 클릭①한다.
  3. 개발자 도구 창에서 'Network' 탭을 클릭②하고 F5 키를 누른다.
  4. filterurl 입력③한다.
  5. 걸러진 항목에 마우스 오른쪽 단추를 클릭하고 'Copy'/'Copy link address'를 클릭④한다.

이렇게 복사한 주소가 푹 API 주소다. 푹 API 주소는 다음처럼 구성된다. K01이 채널 코드이다. 다른 것은 바꿀 필요없이 이 채널 코드만 바꾸면 채널 코드에 따라 실시간 주소를 반환한다. credentialguid에 사용자 및 로그인 정보가 포함되 있는 것으로 추정하고 있다. 참고로 deviceTypeId를 pc로 해서 추출한 실시간 주소는 스마트폰에서는 볼 수 없다. 스마트폰에서 보려면 deviceTypeId를 mobile로 해야 한다.

https://wapie.pooq.co.kr/v1/lives30/K01/url
    ?deviceTypeId=pc
    &marketTypeId=generic
    &country=KOR
    &drm=WC
    &authType=cookie
    &quality=2000
    &deviceModelId=Windows%2010
    &credential=[...삭제...]
    &guid=[...삭제...]
    &lastPlayId=[...삭제...]
    &isABR=Y

실시간 주소 추출

일단 API 주소를 추출했으면 실시간 주소를 추출하는 것은 간단하다. API 주소를 REST 클라이언트를 이용해서 요청하면 되기 때문이다. 다른 채널은 아래 표에 따라 채널 코드만 바꿔 다시 요청하면 된다. API 주소를 이용해서 실시간 주소를 추출하는 방법은 다음과 같다.

  1. 비발디 확장 아이콘 중 '부메랑' 아이콘을 클릭①한다[6].
  2. 'Create a Service'를 클릭②하고 'REST' 단추 클릭③한다.
  3. 'Service Name'에 사용할 이름(예: pooq) 입력④하고 'Add' 단추를 클릭⑤한다.
  4. 왼쪽 창의 'Request1'에 마우스를 올리면 나타나는 ⮟를 클릭①하고 'Rename'를 클릭②한다.
  5. 'Enter a name'에 주소를 추출할 채널 이름(예: KBS 1)을 입력③하고 'OK'④를 클릭한다. 이름을 바꾸지 않아도 된다. 그러나 클릭 한 번으로 채널 주소를 추출하고 싶다면 이 방법으로 채널 이름을 달리해서 저장해 두는 것이 좋다.
  6. 오른쪽 창의 'GET'에 전 단계에서 추출한 푹 API 주소 붙여넣고① 'Send' 단추를 클릭②한다.
  7. 'Response' 탭에서 http://live-su.cdn.pooq.co.kr로 시작, &Key-Pair-Id=로 끝나는 주소를 복사③한다.

채널 코드는 API 주소에 포함되며 이 코드를 바꿔 다른 채널의 실시간 주소를 추출할 수 있다. 다음은 현재까지 확인한 채널 목록이다. 이외에 다른 채널 코드를 알고 있다면 댓글로 알려주기 바란다. 참고로 음악과 라디오는 일부러 제외했으니 음악과 라디오 채널은 굳이 댓글을 달 필요는 없다.

K코드 채널 해상도 비고
1 K01 KBS 1 1920x1080
2 K02 KBS 2 1920x1080
3 K03 KBS World 1280x720
4 K04 KBS Joy 1280x720
5 K05 KBSN Life 1280x720
6 K06 KBS Drama 1280x720
7 K09 KBS W 1280x720
8 K11 CCTV4 1280x720 중국중앙TV(China Central Television)
9 K13 CNN CBeebies 1280x720
10 K14 BBC Wrold News 1280x720
11 K15 1박2일 1280x720 1박2일 채널
M코드 채널 해상도 비고
12 M01 MBC 1920x1080
13 M02 MBC Drama 1280x720
14 M03 MBC every1 1280x720
14 M06 MBC Music 1280x720
16 M10 MBC All the K-Pop 1280x720 MBC 채널
S코드 채널 해상도 비고
17 S01 SBS 1920x1080
18 S02 SBS Sports 1920x1080
19 S03 SBS Plus 1280x720
20 S04 SBS funE 1280x720
21 S05 SBS Golf 1280x720
22 S06 SBS CNBC 1920x1080
23 S07 SBS PowerFM 라디오
24 S08 SBS LoveFM 라디오
25 S09 SBS MTV 1280x720 뮤직 비디오 채널
26 S10 SBS Nick 1280x720 SBS 애니 채널
E코드 채널 해상도 비고
27 E01 EBS 1 1920x1080
28 E02 EBS Plus 1 1280x720
29 E03 EBS Plus 2 1280x720
30 E04 EBS English 1280x720
31 E05 EBS U 1280x720
32 E06 EBS FM 라디오
33 E07 EBS 2 1280x720
기타 채널 해상도 비고
34 A01 AniMax 1280x720
35 D01 Disney 1280x720
36 D02 Disney Junior 1280x720
37 H01 Playy 웰메이드 1280x720
38 H02 Playy 프리미엄 1280x720
39 H07 Playy 액션영화 1280x720
39 Y01 연합뉴스 1280x720
케이블 채널 해상도 비고
41 C2101 YTN 1280x720 Y를 연합에 할당했기 때문으로 추정
42 C2301 JTBC 1280x720
43 C2302 JTBC Golf 1280x720
44 C2303 JTBC 2 1280x720 예능, 드라마 채널로 보임
45 C2304 JTBC Fox 1280x720
46 C2401 MBN 1280x720 기레기 종편
47 C2501 채널A 1280x720 기레기 종편
48 C2601 TV북좃선 1920x1080 빨간색을 좋아하는 기레기 종편
49 C2701 KISS 라디오
50 C2801 CNN 1280x720
51 C2901 카툰네트워크 1280x720
52 C3901 채널 W 1280x720 일본 드라마 전문 채널
53 C4401 Anibox 1280x720 시험 중인 채널

참고로 푹(pooq)에서 '1080P'를 지원하는 채널을 찾아 봤다. 영화는 대부분 1080P를 지원한다. 그러나 실시간 채널은 KBS, SBS, MBC, EBS 공식 채널 5개, SBS 스포츠 및 CNBC 채널, TV북좃선 정도만 1080P를 지원했다. 심지어 영화 채널인 Playy 조차도 1080P를 지원하지 않았다. 푹 요금제 중 모바일+실시간TV+방송VOD 이용권은 모바일+초고화질 제외가 6900원, 모바일+PC+TV+초고화질 제외가 '7900'원, 모바일+PC+TV+초고화질 제공이 '10900'원이다. 내 사용권은 모바일+PC+TV+초고화질 제외로 7900원이다. 여기에 초고화질을 보려면 무려 3000원을 더 내야 한다. 그런데 초고화질을 제공하는 채널이 고작 '8개'에 불과했다. 좀 어이없었다.

체리 플레이어 등록

컴퓨터를 IPTV로 만들자라는 글에서 설명했듯 실시간 주소를 알면 체리 플레이어(CherryPlayer)에 채널 주소를 등록하는 것은 상당히 쉽다. 체리 플레이어에 대한 다른 부분은 컴퓨터를 IPTV로 만들자라는 글을 참조하는 것으로 하고 여기는 등록 절차만 설명한다. 다만 이 글에서 추출한 주소는 영구 주소가 아니다. 다른 기기에서 로그인하면 이전에 생성한 주소는 사용할 수 없다. 따라서 체리 플레이어에 등록해서 사용하는 것 보다 필요할 때마다 추출해서 사용하는 것이 낫다.

  1. 왼쪽 창의 '내 영상'을 클릭①하고 오른쪽 창에서 오른쪽 단추를 클릭한다.
  2. 'URL 열기'②를 선택하고 전단계에서 추출한 주소를 'URL'에 붙여넣는다③.
  3. 적당한 이름(예: 코드가 K01이라면 KBS 1)을 입력④하고 '열기' 단추를 클릭⑤한다.
  4. 원하는 채널을 같은 절차를 통해 반복해서 등록한다.
  5. 적당한 재생 목록(예: 푸우욱[7])을 만들고 '내 영상'에 등록한 채널을 재생 목록으로 끌어놓는다.

푹에서 제공하는 실시간 채널 목록은 음악과 라디오를 빼면 총 44개 정도 된다. 푹에서 제공하는 실시간 채널이 꽤 많기 때문에 푹 사용자는 따로 실시간 주소를 구할 필요가 없다. 또 자신이 가입한 요금제에 따라 초고화질로도 볼 수 있기 때문에 푹 사용자라면 이 방법이 가장 나은 것 같다. 다만 이렇게 추출한 주소는 영구 주소가 아니다. 다른 기기에서 로그인이 없다면 계속 사용할 수 있지만 다른 기기에서 로그인하면 이 주소는 사용할 수 없다.

아이폰 TV

여기서 추출한 주소를 아이폰 앱을 이용해서 재생할 수 있다. 이렇게 하면 , 티빙, 옥수수IPTV를 아이폰으로 시청할 수 있다. 특히 KT에서 최근 출시한 데이터 ON 비디오와 같은 무제한 상품 사용자라면 LTE망을 이용해서 '언제 어디서든' 실시간으로 TV를 볼 수 있다. 참고로 난 공중파, 드라마, 라디오, 옥수수, 티빙, 주소를 RManager[8][9]라는 앱에 등록해서 실시간 시청 앱으로 사용하고 있다. RManager에 주소를 등록하는 방법은 나중에 따로 올리겠다.

다음은 RManager에 실시간 주소를 등록한 그림이다. 구글 드라이브에 재생 목록 파일(playlist.m3u8)을 업로드했고 채널 성격에 따라 폴더로 구분했다(왼쪽 그림). 가운데 그림은 옥수수 폴더에 있는 '재생 목록 파일'이다. 이 목록 중 하나를 터치하면 터치한 채널이 재생된다. 일단 한번 재생하면 오른쪽 사진처럼 즐겨찾기에 등록된다. 이 즐겨찾기를 이용해서 원하는 채널을 선택할 수도 있다.

다음은 RManager옥수수의 JTBC를 재생하는 화면이다. JTBC는 에서도 FHD 영상(Full HD)을 제공하지 않는다. 그런데 무료로 상당히 많은 채널을 제공하는 옥수수에서 JTBC FHD 영상을 제공한다. 따라서 JTBC는 주로 옥수수를 이용해서 시청하고 있다.

KT데이터 ON 비디오 요금제는 '올레TV 모바일 팩을 무료로 제공'한다. 따라서 올레TV를 이용해 시청하면 하루 2G의 추가 용량을 준다. 그러나 올레TV보다 RManager를 주로 사용한다. RManager는 다음 그림처럼 영상을 작게 줄일 수 있고(왼쪽), 심지어는 소리만 나오게 할 수도 있다(오른쪽). 또 RManager를 끝내도 소리는 계속 나오기 때문에 이동하며 뉴스를 들을 때 상당히 유용하게 활용할 수 있다.

남은 이야기

푹 실시간 주소에 대한 단상 1
체리 플레이어단점 중 하나는 네트워크 문제로 영상 재생이 끊어졌을 때이다. 자동으로 다시 재생하지만 이때 창 크기가 영상의 해상도로 바뀌어 버린다. 따라서 체리 플레이어로 실시간 채널을 보다 지나치게 커진 화면 때문에 크기를 줄이며 시청해야 했다. 별것 아닌 것 같지만 네트워크 사정이 좋지 않거나 접속자가 많을 때는 의외로 귀찮다. 푹 채널은 재생 중 끊김이 거의 없었다. 따라서 플레이어 화면을 줄이지 않고 편안하게 시청할 수 있다. 또 푹 채널은 처음부터 툭툭 끊기는 경우가 있었다. 다른 영상을 재생하고 다시 재생하면 정상 재생되는 것으로 봐서 체리 플레이어의 문제가 아닌가 추정하고 있다.
푹 실시간 주소에 대한 단상 2

이 글을 잘 응용하면 1080P의 실시간 주소도 구할 수 있다. 푹 채널 코드 표의 비고를 보면 1080P 채널에 대한 설명이 있다. 이 정보 역시 이 글을 기반으로 1080P에 접근해 알아낸 정보다. 다만 푹에서는 초고화질(1080P)에 대한 요금제가 다르다. 따라서 초고화질 실시간 주소를 알아내는 방법은 문제의 소지가 있어 올리지 않았다. 아울러 푹에서 제공하는 VOD(영화 제외) 역시 원하는 해상도로 받을 수 있다. 응용하기 나름이지만 글을 잘 숙지하고 시도하면 좋은 결과를 얻을 수 있을 것이라고 생각한다. 다음은 얼마 전 트위터에 올린 1080P 시청 화면이다.

SBS 고화질

티빙 실시간 주소에 대한 단상

티빙은 실시간 채널을 무료로 제공하고 있다. 따라서 계정만 있으면 티빙 실시간 채널도 무료로 감상할 수 있다. 어차피 무료로 볼 수 있는 채널이기 때문에 티빙의 실시간 주소 추출을 올려도 괜찮을 것 같다. 그런데 티빙의 실시간 주소에는 사용자 정보가 포함되지 않는다. 따라서 실시간 주소를 추출하면 티빙에 로그인하지 않아도 된다. 또 이 방법을 사용하면 티빙의 유료 채널도 로그인 없이 볼 수 있다. 티빙의 실시간 주소 추출을 공개하지 않는 가장 큰 이유다.

Ch.CGV

추출한 실시간 주소로 채널 CGV를 재생하고 있는 화면이다. 영상 해상도는 1280x720으로 HD 화질이며 실시간 주소가 있다면 로그인없이 재생할 수 있다.

관련 글타래


  1. 모든 창을 항상 위로 만들 수 있는 프로그램은 많다. 그러나 푹 하나를 위해 이런 프로그램을 실행, 메모리를 낭비하고 싶지는 않았다. 
  2. 윈도 8에서 스토어에 접속하면 푹 플레이어를 받을 수 있다고 한다. 플레이어가 문제가 많아 브라우저로 보는 것이 더 낫다고 하는데 기능을 확인하고 싶어 찾아 봤지만 찾을 수 없었다. 
  3. 정확하지 않지만 티빙은 기기 5대에서 로그인할 수 있었던 것 같다. 
  4. 두 기기가 같은 IP일 때만 가능하다. 집에서는 폰으로 보고 사무실에서는 PC로 시청하려고 하자 오류 메시지가 떴다. 
  5. 크롬에서는 설치되지 않는다. 따라서 크롬 사용자라면 Servistate HTTP Editor & REST API Client를 설치하기 바란다. 반면 비발디에서는 잘 설치된다. 따라서 비발디 사용자라면 두 확장 중 어떤 확장을 설치해도 된다. 
  6. 부메랑 아이콘을 책갈피에 등록해서 사용하고 있다. 좁은 확장 아이콘 영역에 여러 확장을 등록하기 보다는 확장 아이콘을 숨기고 책갈피에 등록하는 것이 더 유연하기 때문이다. 자세한 내용은 북마크에도 확장 아이콘을 등록할 수 있다!는 글을 참고하기 바란다. 
  7. 일관성을 좋아하기 때문에 '푹'으로 만들면 될 것을 굳이 푸우욱으로 만들었다. 티비잉도 비슷하다. 
  8. 이전 글에서 소개한 MoSS와 같은 실시간 스트리밍 앱이 앱 스토어(App Store)에서 대부분 사라졌다. 당시 .m3u8 확장자를 갖는 재생 목록 파일을 완벽하게 재생할 수 있는 앱을 찾던 중 찾은 앱이 RManager다. 
  9. RManager는 실시간 스트리밍을 위한 앱이 아니다. 구글 드라이브와 같은 클라우드 관리 앱이다. 그런데 클라우드에 있는 재생 목록 파일(playlist.m3u8)을 선택하면 자동으로 등록된 주소의 영상을 실시간으로 재생해 준다. 

Tags

API, Boomerang, CherryPlayer, Chrome, Chromium, EBS, Electron, Extension, Internet Protocol Television, IPTV, JTBC, KBS, MBC, Opera, pooq, REST, sbs, SOAP, TV, TVing, Vivaldi, 공중파, 비발디, 실시간 TV, 아이폰 TV, 오페라, 일렉트론, 체리 플레이어, 크로미움, 크롬, 티빙, , 확장