1. 잘 사용하던 Daum Movie Scraper 가 Daum이 서비스를 변경하면서 작동이 되지 않음. 

2. 다른 부분(detail.json, cast_crew.json, list.json)은 여전히 사용이 가능한데 search api (movie.json)가 작동을 안함. 

3. Kodi Scraper How-To : https://kodi.wiki/view/Scrapers 를 참고함.

4. 기존 개발된  scraper를 기반으로 Daum 검색페이지를 parsing 해서 작동은 가능하도록 수정함

    - https://github.com/hojel/metadata.movie.daum.net 을 설치함. (* Plex daum agent 만드신 분이네요)

    - <CreateSearchUrl >  http:://~~, <GetSearchResults> <expression> 부분을 수정함.

    - 수정 전

<CreateSearchUrl dest="3">
        <RegExp input="$$1" output="&lt;url&gt;http://movie.daum.net/data/movie/search/v2/movie.json?size=20&amp;start=1&amp;searchText=\1&lt;/url&gt;" dest="3">
            <expression noclean="1" />
        </RegExp>
    </CreateSearchUrl>
<GetSearchResults dest="4">
        <RegExp input="$$5" output="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;&lt;results&gt;\1&lt;/results&gt;" dest="4">
            <RegExp conditional="!OrigTitleInSrchResult" input="$$1" output="&lt;entity&gt;&lt;title&gt;\2&lt;/title&gt;&lt;year&gt;\4&lt;/year&gt;&lt;id&gt;\1&lt;/id&gt;&lt;url cache=&quot;daum-movie-\1.json&quot;&gt;http://movie.daum.net/data/movie/movie_info/detail.json?movieId=\1&lt;/url&gt;&lt;/entity&gt;" dest="5">
                <expression repeat="yes" trim="2,3">"movieId":(\d+),"titleKo":"([^"]*)","titleEn":"?([^",]*)"?,[^}]*"prodYear":(\d*)</expression>
            </RegExp>
            <RegExp conditional="OrigTitleInSrchResult" input="$$6" output="\1" dest="5">
                <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\2(\3)&lt;/title&gt;&lt;year&gt;\4&lt;/year&gt;&lt;id&gt;\1&lt;/id&gt;&lt;url cache=&quot;daum-movie-\1.json&quot;&gt;http://movie.daum.net/data/movie/movie_info/detail.json?movieId=\1&lt;/url&gt;&lt;/entity&gt;" dest="6">
                    <expression repeat="yes" trim="2,3">"movieId":(\d+),"titleKo":"([^"]*)","titleEn":"?([^",]*)"?,[^}]*"prodYear":(\d*)</expression>
                </RegExp>
                <expression noclean="1" />
            </RegExp>
            <expression noclean="1" />
        </RegExp>
    </GetSearchResults>

    - 수정 후 

<CreateSearchUrl dest="3">
        <RegExp input="$$1" output="&lt;url&gt;http://search.daum.net/search?w=tot&amp;q=\1&lt;/url&gt;" dest="3">
            <expression noclean="1" />
        </RegExp>
    </CreateSearchUrl>
    <GetSearchResults dest="4">
        <RegExp input="$$5" output="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;&lt;results&gt;\1&lt;/results&gt;" dest="4">
            <RegExp conditional="!OrigTitleInSrchResult" input="$$1" output="&lt;entity&gt;&lt;title&gt;\2&lt;/title&gt;&lt;year&gt;\4&lt;/year&gt;&lt;id&gt;\1&lt;/id&gt;&lt;url cache=&quot;daum-movie-\1.json&quot;&gt;http://movie.daum.net/data/movie/movie_info/detail.json?movieId=\1&lt;/url&gt;&lt;/entity&gt;" dest="5">
                <expression clean="1">movie\.daum\.net[^\?]*\?movieId=(\d*)[^\?]*tit_name&quot;&gt;&lt;b&gt;(.[^"]*)&lt;/b&gt;[^\?]*tit_sub&quot;&gt;(.[^"]*),[^\?]*(\d{4})</expression>
            </RegExp>
            <RegExp conditional="OrigTitleInSrchResult" input="$$6" output="\1" dest="5">
                <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\2(\3)&lt;/title&gt;&lt;year&gt;\4&lt;/year&gt;&lt;id&gt;\1&lt;/id&gt;&lt;url cache=&quot;daum-movie-\1.json&quot;&gt;http://movie.daum.net/data/movie/movie_info/detail.json?movieId=\1&lt;/url&gt;&lt;/entity&gt;" dest="6">
                    <expression clean="1">movie\.daum\.net[^\?]*\?movieId=(\d*)[^\?]*tit_name&quot;&gt;&lt;b&gt;(.[^"]*)&lt;/b&gt;[^\?]*tit_sub&quot;&gt;(.[^"]*),[^\?]*(\d{4})</expression>
                </RegExp>
                <expression noclean="1" />
            </RegExp>
            <expression noclean="1" />
        </RegExp>
    </GetSearchResults>

 

5. TODO

    - daum search를 movie 한정, movie 페이지 검색의 suggest 활용 (plex daum agent 에서 활용 중)

    - CreateSearchUrl : 한글, 숫자 제목만 뽑아서 search keywords로

    - GetSearchResults : 정규식 고도화 (아무것도 모르고 카피함. ^^;;)

    - 검색안되는 것들 메뉴얼 검색해서 movieId만 넣어도 되도

    - zip 으로 배포되도록

(혼란을 막기 위해 최신 version 만 남기고  지난 version은 삭제함.)

Posted by 옴팡진
,

LG G Pad 7.0 LTE V410, Lineage OS 설치

1. Lineage OS : https://www.lineageos.org

    -. Android 에서 유명한 CM custom rom 개발이 개발팀 내부의 의견충돌로 중지되고 이후 후속으로 

       개발되고 있는 custom rom

    -. V410 정식 지원기기로 지원 받고 있음. 


2. 설치 : https://wiki.lineageos.org/devices/v410/install

    -. ADB 설치 USB debugging Mode : https://wiki.lineageos.org/adb_fastboot_guide.html

       : USB 연결시 연결방법을 MTP 방식으로 하여야 . 

    -.  루팅 : https://cafe.naver.com/v410/5

       : PurpleDrake-Lite tool 이용, TR 지원하지 않음.

    -. 리커버리 : https://cafe.naver.com/v410/8

       : google market 에서 flashfy 설치 twrp.img 설치

    -. lineage rom 설치 : https://wiki.lineageos.org/devices/v410/install

    -. gapps 설치 : https://opengapps.org

        : ARM + Android 7.1 (Nugat, lineage 14.1) + pico 최소 설치 필요시 app store 에서 설치

       : Mac에서 다운로드시 자동으로 압축을 풀어서 재압축하니 플래싱시에 에러 발생

         압축 풀지 않은 다운로드 상태 파일을 옮겨서 진행시 OK.

       : lineage rom 설치 재부팅 하지 말고, 다시 인스톨하기로 돌아가서  zip 파일을 설치함.

    -. SU 설치 : https://download.lineageos.org/extras

         : ARM으로 다운 받고,  rom 및  gapps 설치   재부팅하지 말고, 다시 인스톨하기로  돌아가서  zip 파일 설치.

    -. 설치 완료후 재부팅 시,  초기 최적화로 부팅 시간이 오래걸림.

Posted by 옴팡진
,

EBS 녹음

-. 18/08/06 이후로 EBS 외국어 채널 2 생기면서 녹음해서 듣던 방송의 주소가 변경되고,
  
스트리밍 방식이 rmtp -> m3u8 변경됨

-. m3u8
   : HLS (HTTP Live Streaming),
애플이 제안한 방식으로
     1)
스트리밍을 제공할 동영상 목록을 먼저 다운 받고
     2)
목록으로 실제 동영상 파일을 다운로드 하는 방식 
   : (
참조) http://peepleware.com/home/13333

-. EBS 외국어 채널2 편성표 
  
: http://static.ebs.co.kr/images/bhp/public/download/201807lang2schedule.pdf

-. EBS 외국어 채널2 접속 주소
   : http://bandibook.ebs.co.kr/bandibook/live_m4a/playlist.m3u8

-. 스크립트를 작성하고 crontab 등록함.
   : (
참조) https://www.clien.net/service/board/lecture/4040677
   :
실행 ./record.sh (프로그램명) (시간, min) (저장할 디렉토리) (예)./record.sh PowerEnglish 20 /store


#!/bin/bash

RADIO_ADDR="http://bandibook.ebs.co.kr/bandibook/live_m4a/playlist.m3u8"


PROGRAM_NAME=$1

RECORD_MINS=$(($2 * 60))

DEST_DIR=$3


REC_DATE=`date +%Y%m%d-%H%M`


MP3_FILE_NAME=$PROGRAM_NAME"_"$REC_DATE.mp3


ffmpeg -t $RECORD_MINS -y -i $RADIO_ADDR $MP3_FILE_NAME &>/dev/null


mkdir -p $DEST_DIR


mv $MP3_FILE_NAME $DEST_DIR

Posted by 옴팡진
,