2015년 7월 29일 수요일

[PLEX] 다음티비쇼 정보 변경으로 인한 다음에이전트 문제 정상화 방법

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

----------------------------
2015년 7월에 다음티비쇼 정보가 업데이트 되면서 기존에 활용할 수 있었던 json 주소가 변경되었습니다.
html 문서 안에 에피소드 정보가 존재하게 되면서 다음스크래퍼를 사용하기 위해서는 html 문서를 가공해야 합니다.
먼저 아래 코드를 plex_episode.php로 저장하고 본인 웹서버 폴더에 넣습니다.

<?
//변경 된 다음 무비 정보를 기존 다음스크래퍼에서 읽는 json 형태로 변환하기
$t=$_GET['tvprogramid'];
$address="http://m.movie.daum.net/m/tv/episode?tvProgramId=".$t;
$data=strstr(file_get_contents($address),"\"episodeId\"");
$data2=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);
$data3=str_replace("http:","http",$data3);
$array=explode("},{",$data3);
$json_data[count]=1;
for($i=0;$i<count($array);$i++){
 $data4[$i]=explode(",",$array[$i]);
 for($j=0;$j<count($data4[$i]);$j++){
  $data4[$i][$j]=explode(":",$data4[$i][$j]);
  switch ($data4[$i][$j][0]){
   case "\"episodeId\"":
   $json_data["data"][$i]["episodeId"]=$data4[$i][$j][1];
   break;
   
   case "
  \"episodeTitle\"":
   $json_data["data"][$i]["episodeTitle"]=$data4[$i][$j][1];
   break;
   
   case "
  \"episodeIntroduce\"":
   $json_data["data"][$i]["episodeIntroduce"]=$data4[$i][$j][1];
   break;

   case "
    \"telecastDate\"":
   $json_data["data"][$i]["telecastDate"]=$data4[$i][$j][1];
   break;

   case "\"episodeSeq\"":
   $json_data["data"][$i]["episodeSeq"]=$data4[$i][$j][1];
   break;

   // name is replaced to rate because daummovie dont have 'rate' data.
   case "\"name\"": 
   $json_data["data"][$i]["rate"]=0;
   break;
  }
 }
}

$json_data=str_replace("\\\"","",json_encode($json_data,JSON_UNESCAPED_UNICODE));
$json_data=str_replace("\\\\r\\\\n","",$json_data);
$json_data=str_replace("<br>","",$json_data);
echo $json_data;
?>
그리고 PLEX의 __init__.py 파이썬 파일을 열어줍니다. 시놀로지는 아래 경로에 있습니다. 맨 앞에 volume1은 본인의 설정 상태에 따라 바뀔 수 있습니다.
/volume1/Plex/Library/Application Support/Plex Media Server/Plug-ins/DaumMovie.bundle/Contents/Code/__init__.py
DAUM_TV_EPISODE   = "http://m.movie.daum.net/data/movie/tv/episode.json?pageNo=1&pageSize=1000&tvProgramId=%s"

이 부분을 아래와 같이 변경합니다.
DAUM_TV_EPISODE   = "http://localhost/plex_episode.php?tvprogramid=%s"
plex_episode.php 파일이 필요하실 경우 아래 링크를 이용하세요.
다운로드

KODI는 제가 사용 중이기 때문에 테스트가 끝났으나.. PLEX는 사용하지 않아서.. 잘 될지 모르겠습니다.
혹시 안되면 알려주세요... ;;


댓글 4개:

  1. 감사합니다ㅏ. 너무 잘되네요~~

    답글삭제
  2. php 파일링크가 http웹서버로만 가능한가요??

    혹시 ftp 경로나 owncloud 같은 일반적인 링크 경로로도 가능한가요???? http

    답글삭제
  3. 블로그에 올린 방법은 웹서버로 동작하는 것입니다.
    다른 방법도 불가능하지는 않겠으나, 이 아티클의 방법은 웹서버를 이용하셔야 할 것 같네요.

    답글삭제
  4. 제 omv 서버가 뭐가 문제인지 webdav 플러그인이 정상작동을 안하네요 ㅠㅠ 수동으로 설치하는 방법을 찾아봐야겠어요 ㅠ 감사합니다

    답글삭제