AI와 함께 뚝딱, 텔레그램 주제 파일 한 방에 저장/백업
AI와 함께하는 코딩 자작 4탄으로 🚀 텔레그램 특정 주제(Topic)의 자료를 일괄 다운로드, 또는 내 [저장한 메시지]나 채널로 일괄 전송하는 프로그램을 Python과 Telethon를 사용해 만들어봤다. AI(제미나이) 말로는 채널 다운로드도 지원할 거라고 했지만, (입력 채널 주소가 잘못된 건지 아무튼) 테스트 결과 작동하지 않았다. 원래 목적인 ‘주제 일괄 다운로드’는 잘 작동하는 것 같으므로 ‘채널 다운로드’ 문제는 더 깊이 파고들지 않았다(해당 기능이 필요한 분은 직접 코드를 수정해서 해결하거나 다른 프로그램을 찾아보자).
어찌 되었든, 이 변변치 못한 프로그램의 가장 큰 장점은 텔레그램 채널/슈퍼그룹 내 특정 주제의 모든 미디어 파일(파일 확장자별 및 날짜별 필터링 가능)을 손쉽게 일괄 다운로드하고, 심지어 원하는 다른 채널이나 나의 ‘저장된 메시지’로 전달까지 할 수 있다는 것이다. 복잡한 설정 없이 몇 번의 클릭만으로!!!
Telegram Topic Downloader 특징
- 직관적인 GUI: 초보자도 쉽게 사용할 수 있는 그래픽 사용자 인터페이스 제공
- 특정 주제(Topic) 타겟팅: 원하는 채널/그룹 내 특정 주제의 자료만 쏙쏙!
- 날짜 필터링: 원하는 기간 내의 자료만 선택 다운로드
- 확장자 필터링: 특정 확장자(zip, pdf, jpg 등) 파일만 골라 받기
- 동시 다운로드: 여러 파일을 동시에 받아 시간 절약 (FastTelethon 통합)
- 중복 파일 처리: 자동 이름 변경, 건너뛰기, 덮어쓰기 등 다양한 옵션
- 일시정지/계속: 다운로드 중 필요에 따라 잠시 멈추거나 이어하기
- 편리한 메시지 전달: 원하는 채널, 또는 ‘저장된 메시지’로 손쉽게 전달
- 전달 딜레이 설정: API 제한을 피하기 위한 메시지 간 전달 간격 조절
Telegram Topic Downloader
다운로드: 테라 링크 / 픽팍 링크
└ 다른 자작 프로그램 보기
파이선 사용자: Telegram_Topic_Downloader.py(같은 폴더에 FastTelethon.py 및 telethon Pillow 라이브러리 설치)
파이선 설치 필요 없는 독립 버전: Telegram_Topic_Downloader.exe
텔레그램 API ID 및 API Hash 필수 : https://my.telegram.org/apps
이 소스에 새 기능 추가 및 오류를 수정하거나 코드를 최적화하는 능력자분이 계신다면
완성 후 공유해주시면 고맙겠습니다!!!
Telegram Topic Downloader 설정
최초 실행 시 로그인 필요하고 전화번호 형식은 +8210xxxxxxxx
API Configuration: API ID, API Hash 값 입력.
Forward Settings(메시지 전달 설정): 전달받을 채널의 ID 입력(예: 내 ‘저장된 메시지’는 ‘me’, 채널 ID –1001234567, 공개 채널/그룹 유저네임 @channelname(이건 테스트 못 함).
Forward Delay(sec): 메시지 전달 사이 간격(초) 설정(API 제한 방지용, 예: 0.5 또는 1).
Download Settings: 다운로드할 주제 링크 입력(예: https://t.me/c/채널ID/주제ID).
Download Folder: 저장할 폴더 지정.
Start Date / End Date: 날짜 필터링(비워두면 전체 기간).
Concurrent File DLs: 동시 다운로드 수.
FastTelethon Conns/File: (FastTelethon 사용 시) 각 파일 다운로드에 사용할 내부 연결 수(높을수록 빠를 수 있지만 너무 높으면 불안정)
Filter Extensions: 파일 확장자 필터링, 쉼표(,)로 구분(예: txt, zip, pdf, 비워두면 모든 파일).
Duplicate File Handling(중폭 파일 처리): 다운로드 폴더에 같은 이름의 파일이 있을 때 어떻게 할지 선택(자동 이름 변경, 건너뛰기, 덮어쓰기, 파일 크기 다를 때만 덮어쓰기).
미흡하지만 그럭저럭 쓸만?
일단 원하는 기능은 잘 작동하는 것 같은데, 개발 마무리 과정에서 다시 로그인하려니 ‘remember to not break the ToS or you will risk an account ban!’이라는 경고가 뜬다. AI는 개발 과정에서 발생한 빈번한 로그인 때문일 수 있으므로 크게 신경 쓸 일은 아니라고 하지만, Telethon 깃허브엔 좀 오래전 이슈지만 「account banned」이란 글이 있으니 참고하자. 최근엔 이런 이슈가 없는 걸 보면 해당 문제는 해결된 것 같다.
참고로 채널 ID를 알아내는 가장 빠른 방법은 @RawDataBot 봇에게 메시지를 전달하면 되고(위 사진 참고), 무료 계정이라 그런지 아니면 속도 제한에 걸린 것인지 아무튼 다운로드 속도가 매우 느렸다는 것.
0 comments:
댓글 쓰기
댓글은 검토 후 게재됩니다.
본문이나 댓글을 정독하신 후 신중히 작성해주세요