2015년 7월 21일 화요일

[KODI] 다음티비쇼 정보 변경으로 인한 다음스크래퍼 문제 정상화 방법

2016.07.20
원작자께서 Daum 스크래퍼 업데이트 시켰습니다.
아래 내용 진행 할 필요 없이  링크에서 다운로드 받으시면 편리하게 이용할 수 있습니다.
--------

2015년 7월에 다음티비쇼 정보가 업데이트 되면서 기존에 활용할 수 있었던 json 주소가 변경되었습니다. html 문서 안에 에피소드 정보가 존재하게 되면서 다음스크래퍼를 사용하기 위해서는 html 문서를 가공해야 합니다. 먼저 아래 코드를 episode.php로 저장하고 본인 웹서버 폴더에 넣습니다.
<?
//변경 된 다음 무비 정보를 기존 다음스크래퍼에서 읽는 json 형태로 변환하기
$t=$_GET['tvprogramid'];
$address="http://m.movie.daum.net/m/tv/episode?tvProgramId=".$t;
$data=strstr(file_get_contents($address),"[{");
$data2="\"data\":".strstr($data,"}]",true)."}]";
$data3=str_replace("\"title\" : \"","\"episodeTitle\":\"",$data2);
$data3=str_replace("\"introduceDescription\" : \"","\"episodeIntroduce\":\"",$data3);
$data3=str_replace("\"broadcastDate\" : \"","\"telecastDate\":\"",$data3);
$data3=str_replace("\"episodeId\" : \"","\"episodeId\":",$data3);
$data3=str_replace("\",
  \"name\" : \"",",\"episodeSeq\":",$data3);
$data3=str_replace("\",
  \"sequence\" :",",\"name\":",$data3);
$data3=str_replace("[ ]","\"\"",$data3);  
$data3=str_replace("[ {","\"\",",$data3);
$data3=str_replace("} ],",",",$data3);
$data3=str_replace("}, {
  \"episodeId\"","},{\"episodeId\"",$data3);
$data3=str_replace("}, {",",",$data3);
echo "$data3";
?>
코디의 설정 파일 폴더로 가서 addons/metadata.tv.daum.net 에 있는 daum-tv.xml 파일을 엽니다.
http://m.movie.daum.net/data/movie/tv/episode.json?pageNo=1&pageSize=1000&tvProgramId=
파일에서 위 코드를 찾은 후에 위 코드 전체를 아래 코드로 변경합니다. 정상이라면 위 코드는 여기저기 4군데 있습니다. 전부 바꿔 줍니다. (&뒤에 amp; 이런문자들이 같이 붙어 있습니다. 지금 쓰는 코드하이라이트가 자기맘대로 파싱해버려서 다르게 보이시는겁니다.)
http://localhost/episode.php?tvprogramid=
localhost는 본인의 웹서버 주소를 넣어주세요.
KODI 실행 하시고 에피소드 정보 업데이트 해 보시면 안 되는 영상들이 있는데 그럴 땐 새로 고침을 살포시 눌러 주세요.
새로운 영상들은 알아서 잘 등록 될 것 같네요.


댓글 9개:

  1. PHP 업로드해서 주소로 들어가니까 "data":}] 이렇게 출력이 됩니다. ㅠㅅㅠ
    환경은 시놀로지 환경이고요. 웹스테이션 활성상태입니다.

    답글삭제
  2. 아래 링크에 파일 올려두었습니다. 한번 받아서 웹서버에 올려 두고 써보세요.
    드롭박스 링크로 만들었는데.. 다운로드가 잘 될라나 모르겠습니다.

    https://dl.dropboxusercontent.com/u/77720447/episode.php.zip

    답글삭제
  3. localhost에 제 DDNS 주소를 넣었는데 kodi를 실행해서 '콘텐츠업데이트'를 실행하면 1초만 훌터보고 끝나네요.. ㅠㅠ

    답글삭제
    답글
    1. 자문 자답... 회사에서 다음을 막아놔서 그런거네요 ^^;; 집에서는 잘 됩니다..

      그런데 질문 하나가.... 혹시 ios와 안드로이드쪽은 어디에 넣어야 하는지 알수 있을까요??

      삭제
  4. 혹시 예능 프로그램 중 시즌 으로 등록되는 것도 에피소드 잘 검색 되시나요??

    예로 삼시세끼 -정선편 시즌2, 쇼 미더 머니 시즌4... 이런 시즌이 붙는 프로그램의 경우는 팬아트는 불러오는데 에피소드는

    불러오질 못하네요....

    답글삭제
    답글
    1. KODI에서 메타데이터를 수동으로 한번 세팅 해 주시면 되는데요.
      영상폴더를 우클릭 하시고 tv쇼정보 들어가셔서 "새로고침" 버튼 누르시고 프로그램 선택하는 화면에서 원하는 시즌을 선택하세요.
      다음부터는 알아서 시즌에 맞게 정보가 만들어질겁니다.

      삭제
  5. 작성자가 댓글을 삭제했습니다.

    답글삭제
  6. 작성자가 댓글을 삭제했습니다.

    답글삭제
  7. 혹시 영화는 안되는건가요? 다음 티비쇼로 드라마는 스크래핑이 되는데 영화는 하나도 안되네요. 코디 스크래퍼 영화 섹션에 가면 다음 무비가 없습니다. 티비쇼 다음 티비쇼로 하면 영화는 하나도 스크래핑이 안되구요. 조언 부탁드립니다

    답글삭제