CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·주식한당 ·아이포니앙 ·MaClien ·방탄소년당 ·일본산당 ·개발한당 ·자전거당 ·이륜차당 ·소시당 ·AI당 ·패스오브엑자일당 ·안드로메당 ·나스당 ·클다방 ·바다건너당 ·걸그룹당 ·사과시계당 ·물고기당 ·전기자전거당 ·노젓는당 ·노키앙 ·가상화폐당 ·곰돌이당 ·윈폰이당 ·축구당 ·키보드당 ·리눅서당 ·IoT당 ·창업한당 ·소셜게임한당 ·여행을떠난당 ·골프당 ·콘솔한당 ·디아블로당 ·찰칵찍당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·육아당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·KARA당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·적는당 ·방송한당 ·PC튜닝한당 ·그림그린당 ·소풍간당 ·심는당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·터치패드당 ·트윗당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

팁과강좌

PC/모바일 파이썬으로 토렌트 다운 받기 38

61
2020-02-12 23:48:46 수정일 : 2020-02-13 00:18:15 58.♡.211.88
쿠키맨

1. 글배경 및 목적

- 간단한 툴을 만들며, 코딩의 자신감을 드리고

- 파이썬으로 토렌트 클라이언트를 만들어 봄으로써, 파이썬에 간단한 개념을 설명하고자 합니다.

- qbittorrent와 연동하는 초간단 방법을 알려드림으로써,  관련 응용법을 도와드리고자 합니다. ^^;


2. 사전 준비 

- 파이썬 3.x 설치후  python-qbittorrent 패키지를 다음과 같이 설치해주세요

pip3 install python-qbittorrent


- qBittorrent를 다운 받아 설치해주세요

https://www.qbittorrent.org/download.php


- qBittorrent 클라이언트의 웹 UI 를 활성화 해주세요. 설정방법은 다음과 같습니다.

(1) 메뉴바에서  도구 > Options 를 선택

잘못된 형식의 이미지 링크입니다.


(2) 다음과 같이 웹 사용자 인터페이스를 체크하고 설정해주세요.

잘못된 형식의 이미지 링크입니다.


위 설정이 완료되면 127.0.0.1:8080 으로 다음과 같이 qBittorrent 접속이 가능해집니다.

잘못된 형식의 이미지 링크입니다.



위 로그인 화면에서 초기 로그인 정보를 입력하면 ( the default is admin:adminadmin )

다음과 같은 화면을 볼 수 있다면, 일단 스크립트 이전의 모든 설정은 완료된 것 입니다.

잘못된 형식의 이미지 링크입니다.


3. 본론 - 파이썬으로 qbittorrent 클라이언트 만들기

지금까지 잘 따라왔다면 다음부터 파이썬코드를 하나하나 봅시다.


파이썬의 qbittorrent 패키지의 Client를 임포트 해줍니다.

from qbittorrent import Client


파이썬을 이용하여 웹 클라이언트에 접속합니다.


# qbittorent Web 클라이언트 api 접속
qb = Client("http://127.0.0.1:8080/")

# qbittorrent에서 설정한 계정정보를 설정.
qb.login("admin", "adminadmin")


다운받을 토렌트 파일을 읽어 옵니다. (예제는 debian 설치용 iso 파일을 다운 받을 수 있는 토렌트 파일)

torrent_file = open("debian-10.2.0-amd64-netinst.iso.torrent", "rb")


자 이제 다운 받아 봅시다.

qb.download_from_file(torrent_file)


지금까지 정상적으로 실행되었다면..

여러분은 다음처럼 qBittorrent 웹UI에서 다운로드되고 있는 것을 확인할 수 있습니다.


만약 토렌트파일이 아닌 magnet URL을 이용하여 파일을 다운 받고 싶다면..

qb.download_from_file 인자값을 파일대신 다음과 같이 마그네틱주소로 대체해주세요.

magnet_link = "magnet:?xt=urn:btih:e334ab9ddd91c10938a7....."
qb.download_from_link(magnet_link)


음.. 다운로드 경로를 바꾸고 싶어진다면.. 다음과 같이 해보세요.

qb.download_from_file(torrent_file, savepath="/the/path/you/want/to/save")


다운 로드를 모두 중지시키고 싶다면?

qb.pause_all()


중지된 다운로드를 다시 시작시키고 싶다면?

qb.resume_all()


좀 더 고급스럽게 다운로드되고 있는 리스트 정보를 보고 싶다면?

def get_size_format(b, factor=1024, suffix="B"):
      for unit in ["", "K", "M", "G", "T", "P", "E", "Z"]:        
            if b < factor:            
                  return f"{b:.2f}{unit}{suffix}"        
            b /= factor    
      return f"{b:.2f}Y{suffix}"

# return list of torrents
torrents = qb.torrents()

for torrent in torrents:    
      print("Torrent name:", torrent["name"])    
      print("hash:", torrent["hash"])    
      print("Seeds:", torrent["num_seeds"])    
      print("File size:", get_size_format(torrent["total_size"]))    
      print("Download speed:", get_size_format(torrent["dlspeed"]) + "/s")


위 스크립트가 정상적으로 작동된다면 다음과 같이 보여질 수 있을껍니다.

잘못된 형식의 이미지 링크입니다.


전체 스크립트는 다음의 링크와 같으며, 아래 그림과 같이 실행할 수 있습니다.

https://github.com/cookyman74/utility/blob/master/qbittorrent_client.py

잘못된 형식의 이미지 링크입니다.



====================

다음엔 네트워크 계산기(서브넷 계산기) 에 대해 올려보겠습니다.

쿠키맨님의 게시글 댓글
SIGNATURE
크롬확장앱 쿠키스트림
https://chrome.google.com/webstore/detail/cookystream-manager/ffgaiddifghkcdkhjmgmmlgmdplnemfo?hl=ko&authuser=0

크롬확장앱 쿠키탭
https://chrome.google.com/webstore/detail/%EC%BF%A0%ED%82%A4%ED%83%AD%EA%B4%80%EB%A6%AC%EC%9E%90/ghgecjpngbcgilomnmakjpflpommdbmm?hl=ko&authuser=0

블로그
https://scv-life.tistory.com/
서명 더 보기 서명 가리기
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [38]
롤케익
IP 223.♡.30.146
02-13 2020-02-13 08:01:43
·
파이썬과 토렌트라니 반갑네요
[ShiZin]™
IP 218.♡.32.11
02-13 2020-02-13 08:14:06
·
허허허
사유
-
일시
-
관리자에 의해 삭제되었습니다.
쿠키맨
IP 58.♡.211.88
02-13 2020-02-13 09:52:27
·
@[ShiZin]™님

ㅋㅋㅋㅋㅋ
hankboy
IP 39.♡.59.110
02-13 2020-02-13 10:50:53
·
@[ShiZin]™님 참으로 시의적절한 짤 이네요
ekoong_
IP 211.♡.77.53
02-13 2020-02-13 08:22:13
·
요즘 파이썬 관심을 가지고 있던 중인데 한번 해보겠습니다 감사합니다!
검은치마
IP 117.♡.26.244
02-13 2020-02-13 08:36:05
·
감사합니다. 공부해봐야겠네요!!
곽두팔군
IP 117.♡.1.173
02-13 2020-02-13 08:48:31
·
감사합니다.
그런데 잘문이 있습니다. 코딩의 이유가 편하기위해서인데..
그냥 웹에서 마그넷 또는 토렌투파일만 클릭하면 다운받아지는데...
파이썬 들어가서 굳이 하는 장점운 뭐가 있을까요?
/Vollago
spinball
IP 211.♡.196.1
02-13 2020-02-13 08:52:53
·
@해담시우님 자동화겠죠
arandano
IP 175.♡.226.254
02-13 2020-02-13 08:56:19
·
@해담시우님 저기서 조금만 엮으면 토렌트 사이트를 정기적으로 크롤링 해서
자기가 받고싶은 자료가 올라오면 바로 다운받게도 할수있습니다.
저기다가 뭘 붙일려고 파이썬이랑 엮는거죠
엔뜨
IP 121.♡.205.93
02-13 2020-02-13 09:44:39
·
@해담시우님 저기에 이쁜 유저인터페이스를 얹히고 어플하나 만들어서 광고 붙여서 수익창출도 기대해 볼 수있어요 :-)
근데 토렌트 어플 만들면 잡혀가나..;
암튼 여러방면으로 응용해 볼 수있습니다-!
쿠키맨
IP 58.♡.211.88
02-13 2020-02-13 09:55:35
·
@해담시우님

앗.. 답변이 늦었네요...ㅜㅜ

윗분들이 잘 설명해주셨는데,, 첨언하자면..

보통 나스장비와 텔레그램과 연동시켜서 텔레그램을 통해 원격으로 토렌트를 다운받게 한다던가..

웹크롤링과도 연동시켜서 대량의 토렌트를 자동으로 받게 한다던가...(그럴일이 보통은 없지만..^^;)

여러가지 자동화를 위한 아주 아주 작은 스냅코드류이긴 합니다.
ebay
IP 121.♡.107.103
02-13 2020-02-13 10:18:57
·
@쿠키맨님 나스장비와 텔레그램을 연동시켜서 원격으로 다운받게하려면
최소 검색을 해서 해당 검색결과의 리스트를 뽑아서 마그넷주소나, 토렌트 파일을 빼내야하는데
RSS feed 를 해주는 곳도 이젠 없어지고 현실적인 어려움이 있지않나요??
쿠키맨
IP 58.♡.211.88
02-13 2020-02-13 11:21:12 / 수정일: 2020-02-13 11:24:41
·
@ebay님

말씀대로 불법 공유는 없어지는 추세이긴 하죠.
(물론 여전히 많지만...;;)

그외 공식사이트에서 OS설치파일을 버전별로 자동으로 받거나

기타 파일공유를 받기 위해 사용되면 좋을꺼 같습니다.
(토렌트가 요즘 극히 제한적이긴해서..)
일루롱
IP 1.♡.98.5
02-13 2020-02-13 09:01:11
·
도전~~
삭제 되었습니다.
FrostBliz
IP 175.♡.2.169
02-13 2020-02-13 09:31:24
·
억...패스워드 길이가...
아스라희
IP 1.♡.148.2
02-13 2020-02-13 09:51:41
·
오마이갓........ 감사합니다. 공부할 수 있는 아주좋은 예제 네요~! 정말 감사합니다.
차가운기억
IP 211.♡.15.17
02-13 2020-02-13 10:07:19
·
제 나스에는 트랜스미션 웹 버전으로 인터페이스가 되어있는데, 혹시 트랜스미션도 가능할까요?
달콩이남편알콩이
IP 221.♡.191.229
02-13 2020-02-13 10:16:48
·
토렌트 마그넷이나 소스를 찾는 것도 자동화할 수 있을 것 같은데, 내가 정확하게 원하는것인지 아닌지는 어떻게 구분할 수 있을까요? 그냥 드라마 제목 적어놓고 맞으면 다운로드?
쿠키맨
IP 58.♡.211.88
02-13 2020-02-13 12:34:20 / 수정일: 2020-02-13 12:34:42
·
@달콩이남편알콩이님

찾아보니..
관련 패키지랑
https://pypi.org/project/transmission-clutch/

예제가 있긴 있네요
https://www.programcreek.com/python/example/94780/transmissionrpc.Client
힣흫헿
IP 106.♡.35.219
02-13 2020-02-13 10:30:46
·
나스 적용할 파이썬 코드ㅡ,.,,
정열맨
IP 211.♡.37.4
02-13 2020-02-13 10:32:55
·
모르겠지만 일단 감사합니다.
플라타너스
IP 125.♡.165.23
02-13 2020-02-13 11:15:59
·
이거랑 기능 여것저것 붙일려고 요즘 방법을 찾는중인데 공식API가 파이썬으로만 나오더라구요.. 서버사이드도 파이썬으로 만들어야되나 고민중입니다.
쿠키맨
IP 58.♡.211.88
02-13 2020-02-13 11:26:10
·
@플라타너스님

굳이 그러지 않고 외부명령어 호출(exec같은)을 이용하여 파이썬코드를 호출하면 좋을꺼 같습니다.

물론 파이썬에 익숙하다면 서버사이드도 파이썬으로 만들어

합치는게 좋겠죠
6미리
IP 106.♡.105.211
02-13 2020-02-13 11:37:34
·
웹크롤링이나 기타 다른 UI들과 붙여서 뭔가를 해보는데는 파이썬이 정말 좋은것 같네요.
저도 요새 하나 크롤링해야 하고 싶은게 생겼는데 파이썬으로 시도해봐야겠습니다. 좋은글 고맙습니다.
Janes
IP 110.♡.50.171
02-13 2020-02-13 11:38:01
·
신기하네요. 도.....도전?!?!
사랑스런전하
IP 223.♡.165.217
02-13 2020-02-13 11:44:40 / 수정일: 2020-02-13 11:54:13
·
좋은 내용 감사합니다. 그리고 추가로 텔레그램하고 연동하는 부분도 강좌 해주시면 감사하겠습니다.
lehero
IP 218.♡.81.59
02-13 2020-02-13 11:57:17
·
잘 봤습니다.
그런데 중간에 이미지 깨진 것 같아요.
삭제 되었습니다.
Badada
IP 220.♡.240.227
02-13 2020-02-13 16:55:24
·
감사합니다. 좋은 공부가 되었습니다.
좋빠가굥카카
IP 124.♡.255.184
02-13 2020-02-13 20:09:49
·
아몰랑 그냥 글 자체가 너무 무섭게 생겼어요!! =ㅅ=
progressive
IP 223.♡.188.253
02-13 2020-02-13 21:25:10
·
저두 함 해봐야겠네요
감사합니다
짬짜로니
IP 157.♡.116.190
02-14 2020-02-14 00:57:36
·
도전 해 보고 싶어지네요... 텔레그램 연동 부분하고, 다운로드를 구글 드라이브로 할 수 있게도 가능할까요?
아님 적어도 다운 받은 것을 구글 드라이브로 자동으로 이동 시켜 준다던지...
쿠키맨
IP 58.♡.211.88
02-14 2020-02-14 01:09:43 / 수정일: 2020-02-14 01:10:29
·
@짬짜로니님

일단 구글드라이브 업로드 부분은 가능합니다.
https://medium.com/@annissouames99/how-to-upload-files-automatically-to-drive-with-python-ee19bb13dda

구글드라이브 연동과 관련해서는 다음에 정리해서 올려보겠습니다. :)
짬짜로니
IP 157.♡.116.190
02-14 2020-02-14 01:42:53
·
@쿠키맨님 오오 기대하고 있겠습니다!
HotCrispy
IP 211.♡.245.245
02-14 2020-02-14 17:58:32
·
ㄷ ㄷ 신기하네요
ceight
IP 219.♡.205.16
02-24 2020-02-24 22:05:39
·
pip3 install python-qbittorrent로 모듈 설치하고 임포트까지 했는데 아래 메시지가 나오면 어떻게 해야하나요?ㅠㅠ
ModuleNotFoundError: No module named 'qbittorrent'
쿠키맨
IP 58.♡.211.88
02-24 2020-02-24 22:08:43 / 수정일: 2020-02-24 22:10:15
·
@ceight님

혹시 실행명령어를 수행한 환경이 파이썬2가 깔려 있는건 아닌지 확인해보셨나요?

python -V
(윈도우인경우) pip list | findstr qbittorrent
(리눅스인경우) pip list | grep qbittorrent

명령어로 설치된 환경을 확인해보세요.
삭제 되었습니다.
다른남자
IP 39.♡.165.41
07-21 2021-07-21 18:58:24
·
파이썬과 토렌트를 이런식으로 조합할 수 있겠군요. 좋은 정보 감사합니다.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.