Telegram Story Scraper 📱
Telethon 라이브러리를 사용하여 Telegram 친구들의 스토리를 자동으로 수집하고 다운로드할 수 있는 Python 스크립트입니다. 이 스크립트는 사진과 동영상 스토리를 지속적으로 모니터링하고 메타데이터와 함께 저장합니다.

TGSS - 메인 인터페이스
스토리 접근에 관한 중요 참고 사항 ⚠️
Telegram API 제한으로 인해 이 스크립트는 다음 사용자의 스토리만 접근할 수 있습니다:
- 친구 목록에 추가한 사용자
- 개인정보 설정에서 스토리 보기를 허용한 사용자
이는 Telegram API의 제한 사항이며 우회할 수 없습니다.
기능 🚀
- Telegram 친구들의 모든 사용 가능한 스토리를 자동으로 수집
- 스토리의 사진과 동영상 다운로드
- SQLite 데이터베이스에 메타데이터 저장
- Excel 스프레드시트로 데이터 내보내기
- 사용자 지정 간격으로 실시간 모니터링
- 타임스탬프는 (UTC+2) 기준
- 이전에 다운로드한 스토리 기록 유지
- 재개 기능
- 자동 재시도 메커니즘
사전 요구 사항 📋
스크립트를 실행하기 전에 다음이 필요합니다:
- Python 3.7 이상
- Telegram 계정
- Telegram의 API 자격 증명
- 추적하려는 스토리가 있는 Telegram 친구
필수 Python 패키지
pip install -r requirements.txt
requirements.txt 파일 내용:
telethon
openpyxl
schedule
Telegram API 자격 증명 가져오기 🔑
- https://my.telegram.org/auth 방문
- 전화번호로 로그인
- "API development tools" 클릭
- 양식 작성:
- App title: 앱 이름
- Short name: 앱 짧은 이름
- Platform: "Desktop"으로 남겨 둘 수 있음
- Description: 앱에 대한 간단한 설명
- "Create application" 클릭
- 다음을 받게 됩니다:
api_id: 숫자
api_hash: 문자와 숫자의 문자열
이 자격 증명을 안전하게 보관하세요. 스크립트를 실행하는 데 필요합니다!
설정 및 실행 🔧
- 저장소 복제:
git clone https://github.com/unnohwn/telegram-story-scraper.git
cd telegram-story-scraper
- 요구 사항 설치:
pip install -r requirements.txt
- 스크립트 실행:
- 첫 실행 시 다음을 입력하라는 메시지가 표시됩니다:
- API ID
- API Hash
- 전화번호 (국가 코드 포함)
- 인증 코드 (Telegram으로 전송됨)
- 확인 간격(초) (기본값은 60)
작동 방식 🔄
스크립트:
- Telegram 계정에 연결
- 주기적으로 친구들의 새 스토리 확인
- 새 스토리(사진/동영상) 다운로드
- SQLite 데이터베이스에 메타데이터 저장
- Excel 파일로 정보 내보내기
- 중단될 때까지(Ctrl+C) 지속적으로 실행
데이터 저장소 💾
데이터베이스 구조 (stories.db)
SQLite 데이터베이스에 포함:
user_id: 스토리 작성자의 Telegram 사용자 ID
story_id: 고유 스토리 식별자
timestamp: 스토리가 게시된 시간 (UTC+2)
filename: 다운로드된 미디어의 로컬 파일 이름
CSV 및 Excel 내보내기 (stories_export.csv/xlsx)
데이터베이스와 동일한 정보를 포함하는 내보내기 파일. 다음 용도에 유용:
- 스토리 메타데이터 쉽게 보기
- 필터링 및 정렬
- 데이터 분석
- 다른 사람과 데이터 공유
미디어 저장 📁
- 사진은
{user_id}_{story_id}.jpg로 저장
- 동영상은 원래 확장자로 저장:
{user_id}_{story_id}.{확장자}
- 모든 미디어 파일은 스크립트 디렉토리에 저장
세부 기능 🔍
지속적인 모니터링
- 사용자 지정 확인 간격 (기본값: 60초)
- 수동으로 중지할 때까지 지속적으로 실행
- 실행 간 상태 유지
- 중복 다운로드 방지
미디어 처리
- 사진과 동영상 모두 지원
- 미디어 유형 자동 감지
- 원본 품질 유지
- 고유 파일 이름 생성
오류 처리 🛠️
스크립트 포함:
- 실패한 다운로드를 위한 자동 재시도 메커니즘
- 실패한 작업을 위한 오류 기록
- 연결 오류 처리
- 중단 시 상태 보존
제한 사항 ⚠️
- Telegram의 속도 제한 적용
- 스토리는 현재 활성 상태여야 함 (만료되지 않음)
- Telegram 제한에 따라 미디어 다운로드 크기 제한 적용
기여 🤝
기여를 환영합니다! Pull Request를 자유롭게 제출해 주세요.
라이선스 📄
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
면책 조항 ⚖️
이 도구는 교육 목적으로만 제공됩니다. 다음을 준수해야 합니다:
- Telegram 서비스 약관 존중
- 스크래핑 전 필요한 권한 획득
- 책임감 있고 윤리적으로 사용
- 데이터 보호 규정 준수
- 사용자 개인정보 존중