반응형

이 포스팅은 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!")
반응형
반응형

QNAP 에서 Plex를 열심히 사용 중에 자막관련 이슈가 발생하여 여러 작업을 다해보았다.


SMI->SRT, 인코딩 변경 등등 ...



문제 원인은 Plex동영상 폴더 Path에 한글이 들어있어서 문제가 발생했음

+ 2019.06.26 현재는 위의 문제가 별로 상관 없는것으로 알고있습니다.

설정 Agent상에서 사용중인 Agent(예 Daum Agent)상에서 Loacl Media가 체크되어있는지 확인해 보시기 바랍니다


새로운 Path로 변경하여 Library를 수정하면 정상적으로 자막을 확인할 수 있습니다.

다시한번 느낀것이지만 리눅스 폴더패스는 영문으로!!!


ㅠㅠ 왜고생했을까 ㅠㅠ

반응형

+ Recent posts