안녕하세요! 돌아온 너부리 입니다.
요즘 NAS당에 핫한 게시물들도 많고 ;) i.e) 어떤 능력자분은 10bay 이상의 괴물기기를 만드시는 등... 해서 저도 핫한 게시물을 만들어보려 돌아왔습죠 -_-... 마치 사짜 느낌이 나는건 비밀? 안비밀?
본론으로 들어가자면, 요즘은 많은 분들은 멀티미디어 용도 NAS를 사용하시더군요. 대표적인 Plex 서버로 이용하려면 쉴드나 firetv, 하다못해 남는 안드로이도로폰으로도 가능합니다만, 안정적으로 운영하기위해 필요한 스토리지와 항시 운영중인 고사양의 NAS (NAS라고 쓰고, 전기먹는 하마라고 읽습니다.. 퍽퍽.. +_-....) 가 부담스럽기도 하죠...
But!! 가볍게 사용하시려면, 또 무료로 사용하시려면 이런 방법도 있다는걸 고민해봤죠. +_+;; 물론 비용이 들어간다면 훨씬 다채로운 용도로 사용하실수 잇겟지만..... 각설하고 아래와 같은 개념도를 짜봤습니다.
개념도) ① OCI 리눅스 서버구축 - ② 토렌트 사이트 크롤링 프로젝트 - ③ Proxy or VPN을 통한 보안화 과정 - ④ Rclone을 통해 웹스토리지 (클라우드) 에 파일저장 (G-suite 아닌 무료 구글클라우드도 기본 15GB는 제공합니다) - ⑤ Gdrive Scan - ⑥ Discord 나 Telegram 으로 추가된 영상 알림 받기
NAS가 있고 용량만 넉넉하다면 많은 과정이 생략 되겠죠? ~_~...
여기서 중요한것은..... 무료인것과 Non-heavy User 이신분을 타겟층으로 잡은거죠. 주로 저처럼 주말에 몰아서 일주일치 예능이나 드라마를 볼만한? 아니신 분들은 Back!! Back!! (뷁뷁!!!) 버튼을 눌러주세요.
시리즈로 시간날때마다 메뉴얼처럼 작성해서 step by step 으로 올려보려고 하지만, 능력자 분들은 이미 개념도 보시고 바로 해보실수도 있겟죠? ㅎㅎㅎㅎ
위에 개념도에서 숫자붙은 단계별로 간단히 설명해보면
① OCI, 그러니까 오라클 인스턴스 무료 버전을 사용하면 라즈베리 파이 3b+ 정도 성능이 되는 무료 서버를 하나 여실수 있습니다. (저는 London 리전으로 열엇습니다). 램은 상당히 부족합니다... 고로 혼자사용하는 용도로 적합합니다.
② Geek’s voyage (괴짜의 여행?????????!!!??) 이란 분의 프로젝트가 있더군요.
Torrent_web_scrapper 라고... github에서 내용물을 뜯어보니 (굳이 안뜬어봐도 뭐하는건지 술명란만 봐도 다 알거같다는... 퍽퍽... *______*...)
torrentmax와 torrentsir 라는 사이트를 크롤링해서 (자세히는 안봤지만 구조가 비슷한가봅니다) local machine 이라는 config에 transmission을 구성해서 걸어둔 조건에 따라서 자동으로 토렌트를 다운 받는, 소위 말하는 반자동 토랭이 프로젝트더군요. 어쩌면 이게 자동화의 핵심이겟죠? 링크는 아래와 같습니다
https://geeksvoyage.com/raspberry%20pi/torrent-web-scraper/
③ 그냥 토랭이를 받으면.... 언젠가 고지서 비슷한 소환장이 올꺼라 들었습니다... 운이 억세게 좋은건지 준법시민이라 그런지 (퍽퍽퍽... 미친개는 몽둥이가 약이라....=_-....) 저는 빡세다는 유럽에서도 한국에서도 저작권 관련 소환 및 고소장은 받아본적이 없네요... 그럼에도 불구하고 불안하니까? (feat. 판사님 억울합니다) 소나기는 피하고 보는게 상책인듯합니다.
P.S) iknowwhatyoudownload.com 로 가셔서 본인 ip 두들겨 보시면 본인이 뭐 받아봣는지 기록이 주루룩 나옵니다..... 다시말해 불철주야 열심히이신 검경 수사관님들도 그대를 찾을수 있단 소리죠. 매우 쉽게.... 그렇다고 불법 성인물 다운 조장 절대 아닙니다... -_-....
④ 한서버에 Rclone 을 여러 아이디로 붙일수 있습니다. 오라클 무료는 용량이 작습니다. 물론 이과정 생략하고 그냥 서버에 때려박으셔도 됩니다. 기본 100GB이니까요. 구글 드라이브를 쓰는것보다 용량 압박이 적을수 있습니다. 다만 이 경우엔 다운받은 영상을 구동하려면 Plex 이외의 방법이 매우 번거로와지게 됩니다... 뭐 Webdav나 ftp 구성을 하실줄 안다면 이렇게 쓰셔도 됩니다.
저는 구글 (제일 만만합죠...) 드라이브 무료는 15GB입니다. 각 ID별로 하나의 카테고리를 묶을 생각입니다. OCI 서버에 토렌트 저장 경로를 두고, ‘드라마’, ‘예능’ 등의 폴더를 만들어 각 카테고리에 구글 드라이브를 하나씩 마운트 해줍니다. 더불어서 파일 이동 스크립트만 하나만 짜셔서 연동해주시면 토렌트 다운로드 완료 -> 임시폴더에 카테고리별로 분류 및 이동 -> Rclone 드라이브에 저장 이라는 과정이 형성 되겠죠?
#!/bin/sh
find “/Downlaods/Torrent/" -type f -maxdepth 2 -name “*철인왕후*.*” -exec mv -u {} “/Downlaods/Processed/드라마/철인왕후” \;
find “/Downloads/Torrent/" -type f -maxdepth 2 -name “*아는 형님*.*” -exec mv -u {} "/Downlaods/Processed/예능/아는 형님” \;
뭐 이런식의 스크립트죠. 이게 종류가 많아지고 하면 매번 관리하기 힘들어지니 Metadata 와 연동하는 복잡한 코드를 짜야할지도 모르죠...
⑤ 여기까지 하셨으면 그냥 사용하셔도 됩니다만, 만약 구글 G-suite(현 Workspace....)같은 무제한 클라우드를 쓰신다면 Plex autoscan 이라는 도커앱이 v필요합니다. 이게 필요한 이유는 방대한 라이브러리가 Plex내 에서 autoscan이 걸려버리면 구글드라이브에 과도한 api 호출이 걸리고, 연동된 구글 드라이브의 api가 24시간 ban을 당하는 경우가 발생하죠.... Rclone으로 마운트해서 라이브러리 연결하면 되었지 이게 왜필요햐? 하실수 있죠. 암요. 특히나 몇개 되지도 않고, 15GB 제한 걸린 (다이소 5000냥 UBS도 이거보단 용량이 크다는.. 퍽 >_=...) 드라이브로 api 호출해봤자 얼마나 하겠냐지만.. 이게 24시간 ban이 걸려버리면 자동화 해둔 부분이 무력화 될수 있기에... (고수분들은 알아서 하결하실겁니다...) 필요하다고 볼수 있습죠.
⑥ 마지막으로 Plex 상에 미디어가 스캔되고 올라오면 이게 제대로 들아왓는지 갔는지 정도는 확인하고 싶죠? 그치만 언제 매번 들어기서 봅니까... 이게 귀찮아서 자동화 한건데 말이죠? 이번에도 역시 도커앱입니다. Tautulli 라는 plex 모니터링 앱인데, 이게 요물입니다. 물론 최근엔 plex 자체에서도 많은 기능들을 흡수하긴 했습니다만, 여전히 관리 측면에서 이앱은 유용하죠. 이 모니터링 앱을 통해서 Discord나 텔레그램으로 추가 알림을 받아볼수 있습니다. 아래 스샷처럼 말이죠...
개념도 주제에 너무 장황했네요. 차차 시간 날때 정리해서 메뉴얼로 찾아뵐게요, 그럼 너부리는 20000....
너부리z님의 새글 알림을 받으실려면 구독
너부리님 저에게 이런 인싸이트를 주셔서 정말 감사합니다.
오늘까지 작업한 결과, 알려주신 내용들의 일을 하는 서버를 구축하였고,
별도로, 제가 원하는 특정 사이트를 추가로 스크랩한 후 transmission이 아닌 utorrent에 추가하도록 수정하여 사용하고있어요
너무 편하네요!! 덕분에 삶이 좀더 윤택해졌습니다 ㅎㅎ
구글 g-suite 때문에 저의 미디어 서버가 토랭이용으로 쓰이고 있습니다. 모바일에서는 영화를 안보니 가끔 plex는 그냥 tv에서 사용하는 용도...
안녕하세요 오랜만에 질문드립니다. 이번에 RPi4가 생겨서 딱 말씀해주신 내용처럼 구성을 완료하였는데요
마지막 한가지가 완료되지 못해 질문드려요
Plex autoscan인데요. 저는 우선 아래 git에서 로컬로 직접 설치했는데
설정이 너무 상세해서 어떻게 맞춰서 써야할지 조금 막막하더라구요..
혹시 설정 관련해서 공유 부탁드릴 수 있을까요? (특히 PLEX_USER, RCLONE, SERVER_PATH_MAPPINGS, SERVER_FILE_EXIST_PATH_MAPPINGS 섹션)
https://github.com/l3uddz/plex_autoscan
아래는 제가 현재 설정해놓은 config 파일 내용입니다
{
"DOCKER_NAME": "plex",
"GOOGLE": {
"ALLOWED": {
"FILE_EXTENSIONS": true,
"FILE_EXTENSIONS_LIST": [
"avi",
"mov",
"wmv",
"yuv",
"mp4"
],
"FILE_PATHS": [
"/mnt/rclone/Plex/Movie/",
"/mnt/rclone/Plex/TV/"
],
"MIME_TYPES": true,
"MIME_TYPES_LIST": [
"video"
]
},
"CLIENT_ID": "",
"CLIENT_SECRET": "",
"ENABLED": false,
"POLL_INTERVAL": 120,
"SHOW_CACHE_LOGS": true,
"TEAMDRIVE": false,
"TEAMDRIVES": []
},
"PLEX_ANALYZE_DIRECTORY": true,
"PLEX_ANALYZE_TYPE": "basic",
"PLEX_CHECK_BEFORE_SCAN": false,
"PLEX_DATABASE_PATH": "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db",
"PLEX_EMPTY_TRASH": false,
"PLEX_EMPTY_TRASH_CONTROL_FILES": [
"/mnt/unionfs/mounted.bin"
],
"PLEX_EMPTY_TRASH_MAX_FILES": 100,
"PLEX_EMPTY_TRASH_ZERO_DELETED": false,
"PLEX_FIX_MISMATCHED": false,
"PLEX_FIX_MISMATCHED_LANG": "en",
"PLEX_LD_LIBRARY_PATH": "/usr/lib/plexmediaserver/lib",
"PLEX_LOCAL_URL": "https://localhost:32400",
"PLEX_SCANNER": "/usr/lib/plexmediaserver/Plex\\ Media\\ Scanner",
"PLEX_SUPPORT_DIR": "/var/lib/plexmediaserver/Library/Application\\ Support",
"PLEX_TOKEN": "",
"PLEX_USER": "plex",
"PLEX_WAIT_FOR_EXTERNAL_SCANNERS": true,
"RCLONE": {
"BINARY": "/usr/bin/rclone",
"CONFIG": "",
"CRYPT_MAPPINGS": {},
"RC_CACHE_REFRESH": {
"ENABLED": false,
"FILE_EXISTS_TO_REMOTE_MAPPINGS": {
"Media/": [
"/mnt/rclone/Plex/"
]
},
"RC_URL": "https://localhost:5572"
}
},
"RUN_COMMAND_AFTER_SCAN": "",
"RUN_COMMAND_BEFORE_SCAN": "",
"SERVER_ALLOW_MANUAL_SCAN": false,
"SERVER_FILE_CHECK_DELAY": 60,
"SERVER_FILE_EXIST_PATH_MAPPINGS": {
"/home/user/rclone/": [
"/data/"
]
},
"SERVER_IGNORE_LIST": [
"/.grab/",
".DS_Store",
"Thumbs.db"
],
"SERVER_IP": "0.0.0.0",
"SERVER_MAX_FILE_CHECKS": 10,
"SERVER_PASS": "2405cd3061124a41832a62ac0af0cb1c",
"SERVER_PATH_MAPPINGS": {
"/mnt/unionfs/": [
"/home/user/media/fused/"
]
},
"SERVER_PORT": 3467,
"SERVER_SCAN_DELAY": 180,
"SERVER_SCAN_FOLDER_ON_FILE_EXISTS_EXHAUSTION": false,
"SERVER_SCAN_PRIORITIES": {
"0": [
"/TV/"
],
"1": [
"/Movies/"
]
},
"SERVER_USE_SQLITE": false,
"USE_DOCKER": false,
"USE_SUDO": true
}
몇가지 기본적인 부분을 제가 말씀 안드렸네요 ㅜㅜ 물론 정규 안내도 아니고 강의도 아니고… 제가 1타 강사가 아닌지라 ㅋㅋㅋ
제가 아는한 plex autoscan 이것도 구글 드라이브를 스캔하는 경우엔 api 호출로 이루어 지는 걸로 압니다. 이게 무슨 말이냐면 구글 드라이브 콘솔에서 프로젝트를 하나 만들어서 이걸 api로 plex 라이브러리와 연동하게 만드는 소린데, 구글드라이브 상의 파일 이동이나 추가를 프로젝트 상에서 파악해서 plex에 쏴준다는 걸로 압니다. 고로 프로젝트의 client id와 secret 키를 발급받아야만 사용하실수 있을겁니다.
질문에 답을 드리면 (정확히 어떤 환경인지는 라즈베리파이 OS외에 나온게 적어서.. 확실하진 않습니다, 도커 환경인지 네이티브인지, 경로 설정은 어떻게 되는지 등)
1. Plex 설정을 어떻게 하셨는지 알아야 답을 드릴수가 있습니다. 라즈베리 OS상에 native 로 플렉스를 설치하셨다면 본인 ID가 Plex user 에 들어가야합니다. 또한 plex 계정으로 로그인 하셨을때 그 토큰을 찾아서 넣어야 연동이 됩니다.
1-1) https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/
를 참조하시면 될듯합니다. 이게 번거로우시면
1-2) plex auto scan 설치하셨을때 딸려오는 스크립트가 있는데
/opt/plex_autoscan/scripts/plex_token.sh 이 위치에 있을 겁니다. 이걸 실행시켜 보세요
2. Server path mapping 은 라이브러리 경로 매핑으로 압니다. 만약 플렉스에서 지정한 라이브러리의 경로가 rclone mount 경로고 이게 /mnt/rclone/TV 라는 폴더 하에 지정되 있다면 /mnt/rclone/TV/ 라는 경로를 지정해 주시면 되겠죠. 뒤에 따라 붙는. [ ] 안의 루트는 sonarr 같은 프로그램 매칭을 관리해주는 툴입니다. 이걸 설치하셔야 하네요;
3. Serveer file exist path mapping 은 안쓰시면 비워두셔도 됩니다만, 이게 중복파일을 걸러내주려고 두는 path 입니다.
대충봤는데, 첨언을 몇가지 하자면, 경로 통일성을 맞춰주시는게 좋고 (관리측면에서) rclone config 도 누락되있습니다. Rclone은 최근 버전으로 업데이트 되면서 vfs cache 라는게 좋아졌는데, 이걸 잘 활용하시면 원격 리모트를 로컬리모트와 유사한 속도로 사용하실수도 있어요.
건승하세요
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|
Plex 1.32.0.6918 버전 업데이트 이후 SSL 인증서 오류 해결 방법 +6 | 잠퉁이 | 23.04.1404:18 | 3.9만 |
시놀로지 Plex에 HTTPS (SSL) 인증서 적용하기 +4 | 잠퉁이 | 23.01.2004:25 | 9.1만 |
시놀로지 NAS Audio Station 알송 가사 플러그인 설치하기 +12 | 잠퉁이 | 22.12.3104:34 | 7만 |
시놀로지 NAS 알림을 텔레그램으로 받아보자 +9 | 잠퉁이 | 22.12.1001:23 | 7.5만 |
헤놀로지에서 제어판의 팬속도모드 안먹는 팬 속도조절 하는법 +5 | 룽즈 | 22.04.2218:04 | 6.9만 |
무료 ddns와 무료ssl로 < https:// 영문주소 >를 통해 내 ... +9 | 룽즈 | 22.04.2202:51 | 6.7만 |
메인보드 바이오스 구버전으로 롤백이 안될 때 쓰는 방법. +5 | 퓨리온 | 22.02.1922:01 | 13만 |
USB Type C to C 케이블 총정리 +15 | 아이브경 | 20.06.2918:17 | 6.5만 |
USB 키보드를 블루투스 키보드로 바꿔서(?) 사용하자 +16 | Ohchang | 19.05.2206:22 | 10만 |
컴퓨터 조립 10단계 +7 | Mactopia | 16.02.2516:30 | 8.8만 |
애플맨 | 24.09.2101:34 | 8 | |
hackillious | 24.09.1316:55 | 88 | |
fullbrk | 24.09.1022:07 | 146 | |
미찌콘 | 24.09.0613:15 | 99 | |
래니 | 24.08.3118:19 | 209 | |
좌절금지 | 24.08.2017:37 | 249 | |
세유니 | 24.08.1303:23 | 192 | |
Panictosh | 24.08.1220:12 | 263 | |
bonusss | 24.08.0712:29 | 190 | |
좌절금지 | 24.08.0419:23 | 223 | |
피아노맨 | 24.07.2915:51 | 131 | |
joy | 24.07.2915:32 | 184 | |
junsun | 23.11.1808:55 | 3250 | |
junsun | 24.01.2610:50 | 1만 | |
jcher | 24.07.1815:29 | 450 | |
미찌콘 | 24.07.1713:15 | 742 | |
머슬링 | 24.07.1620:49 | 858 | |
달쇠 | 24.07.1522:35 | 1061 | |
좌절금지 | 24.07.1422:36 | 4476 | |
jcher | 24.07.1420:16 | 1362 | |
좌절금지 | 24.07.1409:17 | 1599 | |
제로섬 | 24.07.1313:26 | 1488 | |
좌절금지 | 24.07.1220:00 | 2469 | |
moongate | 24.07.1021:01 | 2396 | |
좌절금지 | 24.07.0918:59 | 2491 | |
좌절금지 | 24.07.0611:51 | 2252 | |
좌절금지 | 24.07.0611:50 | 2127 | |
슈퍼랩터 | 24.07.0419:05 | 1838 | |
Stultus | 24.06.3019:11 | 1566 | |
좌절금지 | 24.06.2813:29 | 5196 | |
jcher | 24.06.2312:03 | 1535 | |
soullees | 24.06.1916:20 | 2698 | |
jcher | 24.06.1613:51 | 1367 | |
잠퉁이 | 24.06.1314:19 | 1451 | |
잠퉁이 | 24.06.1105:04 | 1408 | |
오늘도부 | 24.06.1419:11 | 1368 | |
좌절금지 | 24.06.0822:43 | 2651 | |
잠퉁이 | 24.05.2716:23 | 1569 | |
모노구리 | 24.05.2523:00 | 2706 | |
Bong9 | 24.05.2414:53 | 1397 | |
Bong9 | 24.05.2317:54 | 1348 | |
네오꿈 | 24.05.2019:32 | 1582 | |
믜늬의릐희 | 24.05.1921:47 | 1364 | |
좌절금지 | 24.05.1812:32 | 1472 | |
잠퉁이 | 24.05.1521:40 | 1236 | |
Stultus | 24.05.1719:36 | 1050 | |
잠퉁이 | 24.05.1500:39 | 1017 | |
네오꿈 | 24.05.0815:19 | 1051 | |
뚜찌z | 24.05.0722:43 | 804 | |
hattog | 24.05.0319:52 | 1795 | |
대영이 | 24.05.0307:44 | 1775 | |
뚜찌z | 24.05.0223:33 | 1431 | |
jcher | 24.05.0210:26 | 1652 | |
제로섬 | 24.05.0103:05 | 1801 | |
래니 | 24.04.3020:35 | 1809 | |
잠퉁이 | 24.04.2718:20 | 2783 | |
뚜찌z | 24.04.2422:41 | 3352 | |
jcher | 24.04.2213:16 | 1653 | |
junsun | 24.04.2011:55 | 3746 | |
뚜찌z | 24.04.1721:09 | 3976 | |
믜늬의릐희 | 24.04.1622:16 | 4084 | |
nowsoftkt | 24.04.1309:01 | 2377 | |
잠퉁이 | 24.04.1103:07 | 3794 | |
D다 | 24.04.0714:59 | 3585 | |
에드 | 24.04.0615:31 | 3450 | |
비트러브 | 24.04.0521:13 | 2639 | |
뚜찌z | 24.04.0520:34 | 7909 | |
Dokdo | 24.04.0420:46 | 3116 | |
뚜찌z | 24.04.0311:43 | 8631 | |
잠퉁이 | 24.04.0305:21 | 2401 | |
래니 | 24.04.0112:24 | 9007 | |
바람 | 24.04.0120:12 | 3246 | |
Mactopia | 24.04.0114:43 | 3125 | |
믜늬의릐희 | 24.03.3119:32 | 3123 | |
메테오스 | 24.03.2914:39 | 2575 | |
bluesaza | 24.03.2810:43 | 2390 | |
한글로 | 24.03.2720:12 | 1885 | |
한글로 | 24.03.2621:21 | 2354 | |
래니 | 24.03.2311:43 | 3062 | |
드림칠 | 24.03.2111:10 | 4853 |
오오.. 딱 저에게 필요한 개념도네요. 좋은 자료 감사합니다1!!
정말 단순하게 필요할때만 컴퓨터 켜서 토렌트 웹 서버 돌리고 파일 받아서 직접 plex 폴더에 정리시키고했는데
이런 자동화가 있을줄 몰랐네요 ㄷㄷ..
한가지 궁금한게 있는데요. 규정을 잘 모르는데, 구글 드라이브에 개인이 사용하는 용도로 영상 파일 업로드하는건 괜찮은건가요??
본문에서 말씀하신 "언젠가 고지서 비슷한 소환장이 올꺼라 들었습니다. "
이런 맥락의 문제가 발생하진 않을까 무서워서요 ㅎㅎ..