반응형

[Python] Transmission 완료 자동삭제 스크립트

Last Edited: Jun 03, 2020 8:45 AM
Tags: PYTHON, QNAP

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다)
Notion 가입 Link

필요사항

  • QPython3 ( Qnap Club )

본문

Transmission의 시딩완료 항목들이나 특정 Status의 항목들을 삭제해 주는 Script이다.
transmission-remote를 Control 하는 Wrapper로 개인에 맞게 다음 항목들을 수정하여 사용가능하다

  • BASEDIR: Transmission-remote경로
  • TR_PORT: Transmission UI사용 Port
  • TR_ID/TR_PW: Transmission ID/PW
  • 현재 Status=="Finished"만 제거하게 되어있는데 필요시 if 조건 추가
#!/opt/QPython3/bin/python3 
import re 
import subprocess 
from subprocess import Popen 

BASEDIR="/share/CACHEDEV1_DATA/.qpkg/QTransmission/bin/transmission-remote" 

TR_PORT = "49091" #Transmission Port
TR_ID = "Your ID" 
TR_PW = "Your PW" 


# Make Paused List 
p = Popen([BASEDIR, TR_PORT, "--auth", "%s:%s"%(TR_ID,TR_PW), "-l"], stdout=subprocess.PIPE, \ 
         stderr=subprocess.PIPE, universal_newlines=True) 

outputs, errors = p.communicate() 
output = outputs.splitlines(); 

#Remove Header and Tail 
output.pop(0); 
output.pop(-1); 

IDs = []; 

#Example Output 
#1 100% 17.56 GB  Unknown 0.0 0.0 0.0 Idle GAME_OF_THRONES_S7.1080p.BluRay.x264.KORsub-ADC2060 
reg = re.compile('^\s*(\d*)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+\S+\s+\S+\s+\S+\s+(\S+)\s+(.+)$') 
for line in output: 
    m = reg.match(line); 
    #print(m.group(0)); 
    ID = m.group(1); 
    STATUS = m.group(6); 

    if STATUS == 'Finished': 
        IDs.append(ID); 

#Remove Torrent 
if IDs: 
    IDs = ','.join(IDs); 
    subprocess.run([BASEDIR, TR_PORT, "--auth", "%s:%s"%(TR_ID,TR_PW), "-t", IDs, "--remove-and-delete"])
반응형
반응형

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다)
Notion 가입 Link

Plex Library Auto Scan은 GDRIVE Access 혹은 HDD Wake Up을 자주 유발하기 때문에 저는 Manual Scan으로 세팅하여 사용 중입니다.
그렇다고 매번 Plex Page에서 Scan버튼을 누르는것 또한 너무 번거로운 일입니다.

Plex는 URL을 통해 간단하게 Library를 Scan할 수 있는 방법을 제공하고 있습니다.

Plex Media Server URL Commands | Plex Support

X-Plex-Token 얻어오기

Finding an authentication token / X-Plex-Token | Plex Support

먼저 자신의 X-Plex-Token이 필요합니다.

  1. 자신의 Plex서버에 로그인
  2. 아무 미디어를 클릭하고 메뉴정보 가져오기xml 보기

  1. 주소표시줄에 자신의 X-Plex-token을 확인할 수있습니다

Library ID 확인

Libraray별로 Refresh를 진행하는것으로 보여 각 Library별로 ID를 확인해야합니다.
다음주소를 브라우저에 넣어봅니다.

http://localhost:32400/library/sections?X-Plex-Token={YOURTOKENVALUEHERE}

아래와 같은 Result를 확인할 수 있을 텐데 각 라이브러리별로 key라는 애트리뷰트를 확인하면 됩니다.

<MediaContainer size="3" allowSync="0" identifier="com.plexapp.plugins.library" mediaTagPrefix="/system/bundle/media/flags/"
mediaTagVersion="1390169701" title1="Plex Library">
   <Directory allowSync="0" art="/:/resources/movie-fanart.jpg" filters="1" refreshing="0" thumb="/:/resources/movie.png"
   key="29" type="movie" title="Movies" agent="com.plexapp.agents.imdb" scanner="Plex Movie Scanner"
   language="en" uuid="07a4b132-a67b-477e-a245-585935d08c0b" updatedAt="1394559305" createdAt="1390438950">
      <Location id="4" path="/Users/plexuser/Movies/Media/Movies"/>
   </Directory>
   <Directory allowSync="0" art="/:/resources/artist-fanart.jpg" filters="1" refreshing="0" thumb="/:/resources/artist.png"
   key="31" type="artist" title="Music" agent="com.plexapp.agents.lastfm" scanner="Plex Music Scanner"
   language="en" uuid="10254ef0-a0a4-481b-ad9c-46ab3db39d0b" updatedAt="1394039950"
   createdAt="1390440566">
      <Location id="7" path="/Users/plexuser/Movies/Media/Music"/>
   </Directory>
   <Directory allowSync="0" art="/:/resources/show-fanart.jpg" filters="1" refreshing="0" thumb="/:/resources/show.png"
   key="30" type="show" title="Television" agent="com.plexapp.agents.thetvdb" scanner="Plex Series Scanner"
   language="en" uuid="540e7c98-5a92-4e8f-b255-9cca2870060c" updatedAt="1394482680"
   createdAt="1390438925">
      <Location id="3" path="/Users/plexuser/Movies/Media/TV Shows"/>
   </Directory>
</MediaContainer>

여기서 확인한 key값을 통해 다음과 같은 url로 접근하면 해당 라이브러리의 refresh를 수행할 수있습니다.

http://localhost:32400/library/sections/{KEY}/refresh?X-Plex-Token={YOURTOKENVALUEHERE}

이외 다른 명령들은 위의 링크를 통해 확인해 보시기 바랍니다.

모든 Library Refresh Python Script

Transmission after-download 스크립트 와 같이 활용할 수 있도록 위의 과정들을 파이썬 스크립트로 작성하였습니다. Plex 서버에 존재하는 모든 라이브러리 스캔을 진행합니다.

GDRIVE(Plexdrive)사용자분들은 업로드 완료 후 Wait 시간이 있어야 정상동작 합니다.

#!/opt/QPython3/bin/python3

import requests
import xml.etree.ElementTree as ET


class plex_control:
    def __init__(self):
        self.response = list()
        self.x_token = 'X-Plex-Token=<USE_YOUR_TOKEN>'
        self.base_url = 'http://<Server Address>:32400/library/sections'

    def refresh(self, id):
        url = '%s/%s/refresh?%s' % (self.base_url, id, self.x_token)
        r = requests.get(url=url)
        self.response.append(r)

    def refresh_all(self):
        url = "{:s}?{:s}".format(self.base_url, self.x_token)
        r = requests.get(url=url)
        tree = ET.fromstring(r.text)

        ids = []
        for child in tree:
            ids.append(child.attrib['key'])

        for id in ids:
            self.refresh(id)

        return self.check_response();

    def check_response(self):
        result = ""
        for r in self.response:
            if r.status_code != requests.codes.ok:
                result += "Error in '{:s}' \n".format(r.url)
        return result


if __name__ == "__main__":
    plex = plex_control()
    out = plex.refresh_all()
    print(out)
    print("Plex Scan Finish!")
반응형
반응형

Requirement

Contents

QNAP에 기본으로 되어있는 vi의 경우 빌드과정에서 많이 줄여놓아 많은 기능들이 빠져있다.
심지어 한글 Editing 및 Viewing도 지원하지 않는다.
그래서 Ubuntu 18.04에서 Static Compile을 해서 VIM을 복사하여 사용 할 수있다
다음 링크를 참고하여 빌드 진행하였다.

참고: https://raymii.org/s/blog/Statically_cross_compiled_vim_for_x86_x86-64_and_mips.html

아래와 같은 Script수행 후 bin폴더내의 vim을 원하는 위치에 복사하여 사용하면 된다.


#!/bin/bash



apt install libncurses5-dev build-essential git



git clone https://github.com/vim/vim.git





pushd vim/src

export LDFLAGS="-static"

export MAKEFLAGS="-j4"

export CFLAGS=""

./configure --with-features=small  --with-compiledby='Remy <relst@relst.nl>'  --with-x=no  --disable-gui  --disable-netbeans  --disable-pythoninterp  --disable-python3interp  --disable-rubyinterp  --disable-luainterp

make



strip vim

popd

mkdir bin

cp vim/src/vim bin/.
반응형
반응형

[QNAP] TS-251 TVHeadend VAAPI (HW가속) 사용

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다)
Notion 가입 Link

필요사항

  • Codex Pack ( App Center )
  • QPython2 ( Qnap Club )
  • TVHeadend (Qnap Forum )
  • Ubunutu 18.04 Docker with Container Station ( App Center )

설치 및 실행

TVHeadend의 기본 QPKG파일들은 QNAP Forum에서 배포하고 있어 쉽게 사용이 가능하지만
VAAPI가속을 지원하지 않아 CPU Transcoding만 사용가능하여 x86_64기반의 NAS에서도 하드웨어
가속 기능을 사용하지 못하게 되어있다.

QNAP Fourm에 Codex Pack를 사용하도록 컴파일하여 사용 가능한 방법이 포스팅 되어있어 참고하여 정리해본다.

우선 설치되어있는 TVHeadend는 App Center에서 정지시켜 준다. 그 후
Ubuntu 18.04 Docker에서 다음 과 같은 Script를 수행하여 Compile한다
여기서 QPKG_DIR는 각자 TVHeadend qpkg 설치 되어있는 경로로 변경한다

#!/bin/bash
QPKG_DIR=/share/CACHEDEV2_DATA/.qpkg/TVHeadend

apt update
apt install -y pkg-config gettext libssl-dev zlib1g-dev \
wget git-core liburiparser-dev python-requests cmake libpcre3-dev libdvbcsa-dev \
libva-dev

git clone https://github.com/tvheadend/tvheadend.git
cd tvheadend

echo './configure --disable-avahi --enable-bundle --disable-dbus_1 --enable-hdhomerun_client --enable-libfdkaac --enable-vaapi' >> myconf.sh
/bin/bash myconf.sh

make -j

mkdir -p ../qpkg/bin/libc

cp build.linux/tvheadend ../qpkg/bin/

ldd build.linux/tvheadend | grep "=> /" | awk '{print $3}'| xargs -I '{}' cp -v '{}' ../qpkg/bin/libc

rm ../qpkg/bin/libc/libva.so.2 ../qpkg/bin/libc/libva-drm.so.2
#2020-01 추가 Libva버전이 안맞아서 기존 폴더에있던것도 삭제
rm $QPKG_DIR/bin/libc/libva.so.2 $QPKG_DIR/bin/libc/libva-drm.so.2

cp /lib/x86_64-linux-gnu/ld-2.27.so ../qpkg/bin/libc/tvh-loader

cp -rf ../qpkg/* $QPKG_DIR/.

그리고 QPKG_DIR 내의 TVHeadend.sh 에서 Start TVHeadend로 주석되어 있는 위치를 찾아 다음과 같이 수정해 준다.

# Start TVHeadend
        CODEX_QPKG_NAME="CodexPack"
        CODEX_INSTALL_PATH=$(/sbin/getcfg -f $CONF $CODEX_QPKG_NAME Install_Path)
        /usr/bin/env ${TVH_CMDLINE_PREFIX} \
                LIBVA_DRIVERS_PATH=${CODEX_INSTALL_PATH}/opt/cdx/lib/dri \
                ${QPKG_DIR}/bin/libc/tvh-loader \
                --library-path ${QPKG_DIR}/bin/libc:${CODEX_INSTALL_PATH}/opt/cdx/lib:${CODEX_INSTALL_PATH}/usr/lib/x86_64-linux-gnu \
                ${QPKG_DIR}/bin/tvheadend --config ${QPKG_DIR}/config \
                --user admin --group administrators \
                ${CMDLINE_OPTS} ${TVH_CMDLINE_POSTFIX}

이후 TVHeadend를 다시 수행하면 VAAPI 드라이버를 사용 가능하게 됩니다.
혹시 문제가 있을경우 다음 명령어를 통하여 디버그 메세지를 확인해 보시기 바랍니다

$QPKG_DIR/TVHeadend.sh debug start

TVHeadend Setting 및 VAAPI 코덱 설정들은 검색을 해보시면 잘 정리되어있는 블로그들이 많으니 참고하시기 바랍니다

반응형

'Software > QNAP TS-251' 카테고리의 다른 글

[Plex] URL을 통해 라이브러리 Scan  (4) 2020.02.10
[QNAP] VIM Static Build  (0) 2020.01.16
[QNAP] TS-251 Ubuntu VNC Docker 설치  (0) 2019.06.07
[QNAP] TS-251 Showdown 설치  (0) 2019.05.18
[QNAP] TS-251 Flexget Setup  (0) 2019.04.25
반응형

[QNAP] TS-251 Ubuntu VNC Docker 설치

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다)
Notion 가입 Link

필요사항

  • Container Station ( App Center )

설치 및 실행

QNAP의 경우 Conainter Station에서 Docker들이 관리된다.
SSH로 NAS에 접근하여 다음과 같은 Script 를 통해 Docker 설치를 진행하면
VNC를 통해 접근가능한 Ubuntu Image를 설치할 수있다.

사용법은 다음과 같다
./install.sh <VNC접근 비밀번호>

    install.sh

    #!/bin/bash
    if [ "$#" -ne 1 ]; then
      echo "Usage>install.sh <VNCPASSWROD>"
      exit 1
    fi


    mycmd="docker run -d --name ubuntu \
    -p 6080:80 \
    -p 5900:5900 \
    -e VNC_PASSWORD="$1" \
    -e RESOLUTION=1920x1080 \
    -v /dev/shm:/dev/shm \
    -v /share:/share \
    --device "/dev/dri:/dev/dri" \
    dorowu/ubuntu-desktop-lxde-vnc"

    echo ${mycmd}
    ${mycmd}

5900 포트를 통해 VNC접근을 시도하면 성공적으로 사용할수 있다.

반응형

'Software > QNAP TS-251' 카테고리의 다른 글

[QNAP] VIM Static Build  (0) 2020.01.16
[QNAP] TS-251 TVHeadend VAAPI (HW가속) 사용  (0) 2019.06.07
[QNAP] TS-251 Showdown 설치  (0) 2019.05.18
[QNAP] TS-251 Flexget Setup  (0) 2019.04.25
[QNAP] TS-251 TVHeadend + HW Transcoding  (0) 2018.12.19
반응형

[QNAP] TS-251 Showdown 설치

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다)
Notion 가입 Link

최근 이슈가되고 있는 Showdown의 QNAP설치 방법에 대해 정리해 보고자 합니다

우선 개발자 블로그에 매우 잘 설명되어있으니 아래 링크 포스팅을 잘 읽어보시길 바랍니다

https://iodides.tistory.com/7?category=693844

필요사항

  • JRE ( App center )

설치 및 실행

제작자가 매우 간편하게 실행가능하도록 배포하고있어서 JRE설치 이후에 바로 사용이 가능하다.
위의 블로그 링크에서 최신 버전을 받아서 서버의 특정 위치에 압축을 풀어준다
이후 다음과 같은 명령어를 통해 실행가능하다.

Shell> sh start.sh

끝 ~~ 이렇게 되면 Server가 로그와 함께 실행이 되고
아래의 클라이언트 명령어를 통해 제어 할 수 있다.

Shell> sh cli.sh

나머지 사용법은 배포자님 블로그를 정독하길 바란다. 다 읽어보면 쓰여있더라고요
(저도 제대로 안읽고 사용하다가 잘못된 문의를 드린적이 있습니다ㅠㅠ)

QNAP 시작시 자동으로 실행

본인이 잘 쓸줄 몰라서 그러는건지... autorun.sh에 스크립트로 작성하여 실행 되도록 세팅을 하면
이상하게도 서버 초기화 오류와함께 사용이 불가능 하였다.
그래서 다음과 같은 가짜 QPKG를 만들어 쓰는 방법으로 시작하도록 구성하였습니다.
아래 설명상의 Path는 본인의 환경에 맞게 변경하시기 바랍니다

vi로 /etc/config/qpkg.conf 파일을 열어 다음과 같은 라인을 맨뒤에 추가해줍니다.

[autoexec]
Name = autoexec
Version = 1
Author = Self
QPKG_File = autoexec.qpkg
Date = 2016-05-17
Shell = /share/CACHEDEV2_DATA/.qpkg/autorun/autorun_qpkg.sh
Install_Path = /share/MD0_DATA/.qpkg/autorun/
RC_Number = 254
Enable = TRUE
Status = complete
Official = 0

그리고 수행될 Script를 다음 폴더에 생성 합니다. 웹에서 찾은 스크립트를 약간 변영하여 하위에 있는 Script폴더에 있는 shell 파일을 돌아가며 수행해 주는 스크립트입니다.

cd /share/CACHEDEV2_DATA/.qpkg
mkdir -p autorun/scripts
cd autorun
vi autorun_qpkg.sh #아래 파일 작성
cd scripts
vi 010-showdown.sh

autorun_qpkg.sh

#!/usr/bin/env bash

AUTORUN_PATH="/share/CACHEDEV2_DATA/.system/autorun"
SCRIPT_STORE_PATH="/share/CACHEDEV2_DATA/.system/autorun/scripts"
LOGFILE='/var/log/autorun.log'

echo "$(date) ----- running $0 -----" >> "$LOGFILE"


case "$1" in
    start)
        for i in ${SCRIPT_STORE_PATH}/*; do
            if [[ -x $i ]]; then
                echo -n "$(date)" >> "$LOGFILE"
                echo " - $i " >> "$LOGFILE"
                $i 2>&1 >> "$LOGFILE"
            fi
        done
    ;;
    stop)
        kill -9 $(ps -ef | grep 'Server.jar' | awk '{print $1}')
    ;;
    restart)
        $0 stop
        $0 start
    ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 0

010-showdown.sh

#!/bin/bash
export LANG=en_US.UTF-8
cd /share/my/showdown
#sleep 15m
/share/CACHEDEV2_DATA/.qpkg/JRE/jre/bin/java -jar Server.jar &

이후 App Center에 보면 autoexec pkg가 추가되어있고 시작, 정지가 가능하며 재부팅시 자동으로 서버가 수행되게 됩니다.

반응형
반응형

이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다)
Notion 가입 Link

Requirement

  • QTransmission (QNAP Club)
  • QPython3(QNAP Club)

환경 설정

~/.barshrc에 다음 Path를 추가하여 Python 환경을 사용한다

CONF=/etc/config/[qpkg.conf](qpkg.conf)  
QPKG_NAME="QPython3"  
QPKG_ROOT=`/sbin/getcfg $QPKG_NAME Install_Path -f ${CONF}`  
export PYPATH=${QPKG_ROOT}/bin

Flexget 설치

다음과 같은 과정을 통해 진행되었다. Python Version과 Path는 본인에 맞게 수정해야 한다
Pip Install과정에서 Disk Usage관련 메세지가 발생하여 /share/my/flexget 폴더에 다운로드 및 빌드를 하여 사용하였다.

https://flexget.com/InstallWizard/Linux

/bin/bash
$PYPATH/pip3 install -U setuptools
$PYPATH/pip3 install virtualenv
cd /share/my #Install 하고싶은 Root DIR
$PYPATH/virtualenv flexget
cd flexget
source bin/activate
pip3 install pytest-runner
pip3 install transmissionrpc
pip3 install flexget --cache-dir=/share/my/flexget/cache --build-dir=/share/my/flexget/build

스케쥴링

https://flexget.com/InstallWizard/Linux/Scheduling

한시간에 한번씩 flexget을 수행하기 위해 스케쥴링에 등록하여 준다.

#export EDITOR=vim
#crontab -e
vim /etc/config/crontab
#VIM 상에서 아래 한줄을 추가해 준다
20 * * * * LC_ALL=en_US.UTF-8 /share/my/flexget/bin/flexget -c /share/my/flexget/config.yml --cron execute

설정

설정은 Flexget 공식 사이트를 참조하여 본인 RSS및 관련설정에 맞게 진행하면된다.

https://flexget.com/Configuration

그리구 구글링해보면 여러 블로그들을 확인 할 수 있으니 참고하시길

https://awesometic.tistory.com/85
https://taking.kr/blog/archives/5395.html

반응형
반응형

[QNAP] TS-251 TVHeadend + HW Transcoding

TVHeadend를 사용하면서 녹화된 ts파일은 용량이 어마 어마하게 크기 때문에, Transcoding을 하는것이 용량 관리 측면에서 좋다.

VAAPI와 같은 것들을 이용하여 많은 분들이 HW Transcoding을 사용하시는 분들이 많습니다.

저는 docker보다 네이티브로 설치하는 것을 선호해서, 

이 포스팅에서는 QNAP에서 제공하는 tool을 이용하여 스크립팅하여 사용하는 법을 정리 해 보았다.

다음과 같이 autoencoding.sh를 생성해 준다. 기본적인 구조는 다음 포스팅에 있는 스크립트를 사용하였다

http://3jini.tistory.com/104

#!/bin/sh
# Variables
TSVIDEO=$1    
b=$2      
t=$3
title=$(echo $b | sed s'/ ([0-9,]\+회)//g' | sed s'/\.ts//g' )
target_dir=$(echo $t | sed s'/ ([0-9]\+회)//g')
base_dir="/share/CACHEDEV1_DATA/TV_record/"
log_path="$base_dir/record.log"
TRANSCODEPATH="$base_dir$target_dir/"                    # tvheadend에서 지정한 파일 저장 경로 환경에 맞게 수정할 것.
if [ ! -e "$TRANSCODEPATH" ]; then
    mkdir -p "$TRANSCODEPATH"
fi
MP4VIDEO=$TRANSCODEPATH$title".h264.1080p.mp4"    # 출력할 파일에 새로 추가할 내용 및 확장자. ".H264.1080P.mkv" 부분은 입맛에 맞게 수정할 수 있슴.
/bin/sync    # flush diskbuffer
echo "*************** INPUT = $TSVIDEO ******************" >>$log_path
echo "*************** OUTPUT = $MP4VIDEO ****************" >>$log_path
/mnt/ext/opt/medialibrary/bin/myvatranscode -vb 12M -s 1080p -i "$TSVIDEO" -o "$MP4VIDEO" -acodec copy 
echo "** 종료시간 $(/bin/date +%Y.%m.%d' '%H:%M:%S) **" >>$log_path
echo "** 원본 파일 제거 .... ****************************" >>$log_path
rm -rf "$TSVIDEO" >> $log_path

해당 스크립트에서 가장 중점이 되는 부분은 다음 라인이다.

/mnt/ext/opt/medialibrary/bin/myvatranscode -vb 12M -s 1080p -i "$TSVIDEO" -o "$MP4VIDEO" -acodec copy 

/mnt/ext/opt/medialibrary에는 QNAP에서 사용하는 미디어 라이브러리들이 들어있다. 그 중 myvtranscode는 ffmpeg base로 되어있고 hw_transcoding을 간편하게 할 수 있도록 되어있다.

-help를 통해 도움말을 확인하여 옵션조정이 가능하다

현재 나의 Setting으로는 비디오 비트레이트 12M에 1080p Size의 Transcodding을 진행하고 있다

위의 스크립트를 내부 폴더에 위치 시킨 후 TVHeadend Recoding Profile Post Script상에 다음과 같이 추가해 주면 된다.



반응형

'Software > QNAP TS-251' 카테고리의 다른 글

[QNAP] TS-251 Showdown 설치  (0) 2019.05.18
[QNAP] TS-251 Flexget Setup  (0) 2019.04.25
[QNAP] TS-251 초기 Setting 정리  (2) 2018.12.18
[QNAP] TS-251 TVHeadend 설치 + Android KODI  (1) 2017.01.17
[QNAP] TS-251 - Enpass 설정법  (4) 2017.01.15
반응형

 

QNAP TS-251D-2G (하드미포함)

SSD 구매 기념으로 QNAP System 초기화 하여 새로 Set-up 하도록했다.

SSD 장점을 최대한 누리기 위해 Cache Set-up 하여 성능을 최대한 발위하도록 해보려 한다

 

      1. QNAP 초기화

QNAP off 모든 HDD 제거 SSD 삽입하여 부팅하여 준다.

초기화 작업이전에 필요한 Data 모두 백업해둔다!

 

QNAP 초기화 방법은 여러가지가 있다고 하는데 QFinder 통한 과정을 진행해본다.

https://www.qnap.com/ko-kr/utilities/essentials

 

 

위의 링크에서 새로운 SSD 삽입하고 Qfinder NAS 찾게되면 자동으로  초기화 과정을 진행할 수있다.

 

 

 

 

 

      1. Storage/Volume설정

 

본인의 스토리지 구성에 맞는 Set-up을 정하여 결정한 대로 설정한다

1TB SSD + 4TB HDD 구성인 2베이에서 Raid는 과감히 포기하고 Raid0인 QTier 설정을 Set-up하였다.

 

QTier는 사용빈도수 분석을 통하여 데이터 저장위치를 결정해 준다고 하는데....

1TB를 캐쉬로 통짜로 쓰기는 아깝고!! 스토리지와 캐쉬 역할을 동시에 수행할 수있다고 하여 결정하였다.

 

자세한것은 다음 링크 참고

https://www.qnap.com/ko-kr/how-to/tutorial/article/qnap-qtier-사용하여-자동-계층화를-수행하고-스토리지-성능을-최적화하려면-어떻게-해야-합니까/

 

 

      1. QNAP Club Repo 추가

 

QNAP App store에서 기본으로 제공하는 앱들도 있지만 QNAP Club에서 배포하는 앱들을 통해 컴파일 없이 좀더 다양한 앱을 사용하고 누릴수 있다

 

REPO는 다음 링크를 확인하여 추가하면 된다

https://www.qnapclub.eu/en/howto/1

 

 

      1. 보안설정

다음과 같이 보안 탭에서 설정한다. 생각보다 QNAP을 돌리다보면 이상한 사람들이 접근을 많이 시도한다!

 

 

 

      1. MyQNAP Cloud Setting

 

SSL인증서및 myqcapcloud.com dns 신청을 위해서는 myQNAPCloud앱을 열고 로그인 을 해주어야한다.

 

귀찮으니까  SSL 인증서는  Let's Encrypt를 사용한다...

 

      1. 계정 공유폴더 설정

계정  및 사용자 설정과 공유폴더를 설정한다

원래 관련 세팅이 백업 및 복구가 되지만 새로운 마음으로 정리하기 위해 이번에는 새로 Set-up하였다.

 

      1. 어플리케이션 설치

QTransmission

Plex Media Server

Qgit

QPython2, 3

 

      1. 어플리케이션 설정

QTransmission

User/Password Setting

 

ssh로 접근후 /share/CACHE.../.qpkg/QTransmission/etc/setting.json 파일 수정

rpc-username: id

rpc-password: pw

 

이후

./QTrasnmission restart

 

 

 

Plex Media Server

외부에서 Plex Media Server세팅 하는 방법 다음 포스팅 참고

http://3jini.tistory.com/91

https://support.plex.tv/articles/200288586-installation/

 

 

      1. 기타 어플리케이션 설치

 

TVHeadend

Xmltv

 

TVHeadend

 

같은 블로그 내의 다음 포스팅을 참고하시기 바랍니다

http://proactive.tistory.com/70?category=599427

 

Epg2xml활용 하여 EPG xml 생성

https://github.com/wonipapa/epg2xml

 

 

XMLTV

https://forum.qnap.com/viewtopic.php?f=276&t=53667 다음 링크에서 다운로드 받아 설치 진행

[/share/my/TVHeadend] # unzip xmltv_0.7.8_x86_64.zip  

Archive:  xmltv_0.7.8_x86_64.zip

  inflating: xmltv_0.7.8_x86_64.qpkg 

[/share/my/TVHeadend] # ls

epg2xml/  tv_grab_file        TVHeadend_0.9.3.6_x86_64.qpkg  tvhProxy/  xmltv_0.7.8_x86_64.qpkg  xmltv_0.7.8_x86_64.zip

[/share/my/TVHeadend] # /bin/sh xmltv_0.7.8_x86_64.qpkg

Install QNAP package on TS-NAS...

./

./qpkg.cfg

./built_info

./package_routines

./qinstall.sh

719+1 records in

719+1 records out

17023039 bytes (16.2MB) copied, 0.144149 seconds, 112.6MB/s

16624+0 records in

16624+0 records out

17022976 bytes (16.2MB) copied, 0.145328 seconds, 111.7MB/s

Firmware check is fine.

Link service start/stop script: xmltv.sh

Set QPKG information in /etc/config/qpkg.conf

[App Center] xmltv 0.7.8 has been installed in /share/CACHEDEV1_DATA/.qpkg/xmltv successfully.

[App Center] xmltv enabled.

[/share/my/TVHeadend] # 

 

EPG2XML XMLTV 활용 하여 EPG정보 전달

tv_grap_file
 

#!/bin/sh

if [ "x$1" = "x" ]; then

     cd /share/my/TVHeadend/epg2xml

         /opt/QPython2/bin/python epg2xml.py -o xmltv.xml

         chmod 755 xmltv.xml

         cat xmltv.xml

    exit 0

fi

case "$1" in

    --description)

    echo "My custom grabber"

    ;;

    --version)

    echo "1.0"

    ;;

    --capabilities)

    echo "baseline"

    ;;

esac

 

위의 스크립트를 /usr/bin 복사해준다

 

그이후 TVHeadend 내에 EPG Grabber Module에서 Enable해주면 된다.

 

 

 

반응형
반응형

요즘 거의 대부분의 가정에서  IPTV 사용하고 있다. 이런 IPTV 외부에서 볼수 있도록 해주는 서비스가 바로 TVHeadend이다.  QNAP TVHeadend 설정하고 안드로이드 KODI앱과 플러그인을 통해 Streaming하는 법을 포스팅 해본다.

 

 

  1. QNAP TVHeadend 설치

 

QNAP Form TVHeadend Thread - https://forum.qnap.com/viewtopic.php?f=276&t=109573

위의 링크를 통해 다운로드 사이트로 이동 가능하다.

 

 

자신의 QNAP 모델에 맞는 버전을 다운로드한다. 251 경우 x86_64 버전을 다운하였다.

 

다운로드한 파일을 NAS특정 폴더로 옮긴 SSH 혹은 Telnet 통하여 접속한다.

필자는 XSHELL 5 사용중에 있다.

 

SSH 통하여 다운로드 받을 폴더에 접근하여 Unzip 명령어로 압축을 풀어준다

 

Shell> unzip TVHead*.zip

 

그후 다음과 같은 명령어를 통하여 설치를 진행한다.

Shell> NO_TUNER=1 /bin/sh TVHeadend_0.8.7.1_x86_64.qpkg

 

이제 QNAP관리페이지 에서 설치완료된 TVHeadend 확인할 수있다

 

 

  1. 공유기 포트 포워딩 설정

공유기 별로 포트포워딩 설정을 진행해 주어야 외부에서 TVHeadend 접근이 가능하다. 공유기 포트포워딩 설정에서 9981, 9982포트를 오픈해 주도록 한다.

 

  1. TVHeadend 계정설정(0.8.7.1 기준)

 

기본으로 설치되어 있는 상태는 누구든지 TVHeadend 접근할수 있도록 되어있는 상태이다. 이는 보안상 매우 안좋은 상태이기 때문에 계정 설정을 먼저 진행해준다.

TVHeadend관리 페이지를 실행한다.

http://nasip or 도메인:9981 접근하면 만날 있다.

 

 

계정생성

Configuration --> Users --> Passwords 순서로 클릭하여 탭을 오픈하고

Add 버튼을 클릭하여 새로 사용할 사용자 ID/Password 입력해준다.

새로운 계정이 생성되었으면 * 되어있는 라인을 클릭한 Delete해준다.

 

 

권한설정

그리고 Access Entries 탭으로 들어가서 방금 생성한 계정의 권한을 설정하여준다. 마찬가지로 Add 클릭후 유저네임 입력후 각각의 권한을 주면 된다.

 

 

이로써 사용을 위한 계정 세팅을 모두 마무리하였다.

다음부터 TVHeadend 페이지 접근을 시도하게되면 ID/PW 묻게되는데 위에 설정한 계정을 입력하면 접근 가능하다.

 

 

  1. IPTV연결 Channel추가 + Android KODI 설정

이부분은 나스모에님 블로그가 너무도 정리가 잘되어있어서 해당 블로그 포스팅을 참고하기 바란다.

Tvheadend IPTV 채널 등록하기 <https://nas.moe/archives/858>

omvs 프로그램을 이용한 K* (O***h) IPTV 주소 따는 방법 <https://nas.moe/archives/1433>

Tvheadend IPTV 방송사 로고 넣기 <https://nas.moe/archives/1088>

Kodi (XBMC) Tvheadend IPTV 방송 시청하기 <https://nas.moe/archives/1073>

 

해당 진행 Configuration --> Channel/EPG/Channel 제대로 등록이 되어있어야 KODI 다른 클라이언트에서 접근이 가능한것으로 보입니다. KODI 제대로 되지 않으시는 분들은 해당 내용 작성 되어있는지 확인 바랍니다.

Add --> service에서 앞에 등록한 채널 하나를 고른뒤 Create해주시면 됩니다.

 


반응형

'Software > QNAP TS-251' 카테고리의 다른 글

[QNAP] TS-251 Flexget Setup  (0) 2019.04.25
[QNAP] TS-251 TVHeadend + HW Transcoding  (0) 2018.12.19
[QNAP] TS-251 초기 Setting 정리  (2) 2018.12.18
[QNAP] TS-251 - Enpass 설정법  (4) 2017.01.15
[QNAP][PLEX] Plex Server 자막 관련  (1) 2016.04.06

+ Recent posts