kone
ainovel
ainovel

Sangtacviet Batch Downloader v2_ultrafast

08/14/2026, 00:36:37
유틸
7108 views · 18 likes

Sangtacviet Batch Downloader v2_ultrafast

Unified Browser + Python + Auto Captcha + Ultra-fast Crawling

기존 Sangtacviet Batch Downloader v2를 기반으로 속도를 극한으로 끌어올리고, 작업 진단 로깅을 대폭 강화한 버전입니다.

v2_ultrafast에서는 기존의 DrissionPage 기반 제어, 캐싱, 이어받기 기능은 그대로 유지하면서 대규모 고속 다운로드 환경에 맞춘 최적화가 적용되었습니다.

사용법 및 대부분의 기능은 이전 v2버전과 완전히 동일합니다.

그리고 쌀국수 사이트 내에 중국어로 된 소제목이 있으며, 원본 템퍼멍키 스크립트는 중국어 소제목으로 다운되는데 왜 이건 안 그러냐던 분이 있었어서 댓글로 답변을 달았는데, 여기에도 다시 적습니다.

‘사이트 내에 중국어 소제목이 있는데 제가 못 찾은 걸 수도 있지만, 그럼에도 불구하고 확실한 건 원본 템퍼멍키 스크립트는 소제목뿐만 아니라 소설 제목까지 베트남어로 가져옵니다.’

가능하시면 본인이 개선해주세요. 저도 가능하면 베트남어 소제목보단 중국어 원문으로 된 소제목이 보고 싶네요.

(소설 제목을 한자로 가져오던 이전 추출기 stv_bulk_extractor도 중국어 원문 소제목이 없는지 소제목은 베트남어로 가져와요.)

aHR0cHM6Ly9raW8uYWMvYy9hMnMtR1BtaVBuTFZyOGxmNlktejhi

1달 국룰

✨ v2 → v2_ultrafast 주요 변경점

1. 초고속 DOM 상태 폴링

  • 기존 v2는 파이썬에서 page.ele를 사용해 브라우저의 요소(본문 텍스트, 팝업, 로딩 문구 등)를 하나씩 순차적으로 찔러보며 확인했기 때문에 페이지 준비를 감지하는 데 미세한 딜레이가 누적되었습니다.

  • Ultra Fast 버전은 quick_state_js라는 자바스크립트 코드를 브라우저에 단 한 번 던져서, 본문의 길이(mainTextLen), 캡챠 팝업 여부(stvCaptcha), 클릭 로드 상태(clickLoad) 등의 모든 상태를 한 번에 긁어오는 방식으로 상태 확인 속도를 비약적으로 단축했습니다.

2. 자체 캡챠 렉 및 무한 로딩 자가 복구

  • 캡챠 인증을 통과했거나 본문 데이터를 받는 중 서버 렉으로 인해 화면이 넘어가지 않고 25초 이상 멈춰버리는 현상에 대한 대응이 추가되었습니다.

  • 딜레이가 임계점을 초과하면 스크립트가 멍때리지 않고 스스로 강제 새로고침(F5)하여 렉을 풀고 작업을 재개합니다.

3. 회차 간 대기 시간 최적화

  • 기존 v2에서는 대기 시간을 4~8초로 지정해도 캡챠 감지 로직 등 여러 부분에 문제가 있어, 병목으로 인해 시간이 추가로 소요되어 1화 당 1분의 시간이 걸렸습니다.

  • 대기 시간을 지정하려면 wait_time = random.uniform(1.0, 3.0)에서 괄호 안의 1.0, 3.0을 원하는 숫자로 바꿔주면 됩니다. (초 단위임)

  • Ultra Fast 버전에서는 캡챠 감지 로직 등 병목을 일으키던 사항을 대폭 개선하여 전체 다운로드 시간을 혁신적으로 줄였습니다.

(v2 기준 1화당 1분꼴로 소요 / v2_ultrafast 기준 1화당 10초 이내 소요)

⚙️ 시스템 요구사항

필수 환경

  • OS: Windows 10 / 11

  • Browser: Google Chrome

  • Python: Python 3.8 이상

  • Chrome 원격 디버깅: 포트 9222

Python 패키지

bash

bash
pip install flask flask-cors beautifulsoup4 DrissionPage pydub SpeechRecognition

추가 사항

pydub의 오디오 처리 기능을 사용하므로 시스템 환경에 따라 오디오 디코딩에 필요한 외부 도구를 별도로 준비해야 할 수 있습니다.

winsound를 사용하는 알림 기능이 포함되어 있기 때문에 현재 버전은 Windows 환경을 기준으로 합니다.


🛠️ 설치 방법

1. Python 설치

Python 3.8 이상을 설치합니다.

설치 후 다음 명령으로 확인할 수 있습니다.

bash

bash
python --version

2. 필수 패키지 설치

bash

bash
pip install flask flask-cors beautifulsoup4 DrissionPage pydub SpeechRecognition

3. FFmpeg 설치

FFmpeg를 별도로 설치해야 합니다.

FFmpeg는 Google ReCAPTCHA 오디오 처리 과정에서 MP3 등의 오디오 파일을 WAV로 변환할 때 사용됩니다.

bash

bash
winget install Gyan.FFmpeg

4. Tampermonkey 스크립트 설치

  1. 크롬에 Tampermonkey 확장프로그램을 설치합니다.

  2. Tampermonkey 대시보드에서 새 스크립트 만들기를 클릭합니다.

  3. 제공된 // ==UserScript== 로 시작하는 자바스크립트 코드를 붙여넣고 저장(Ctrl+S)합니다.

( chrome://extensions/에서 개발자 모드 및 Tampermonkey 세부정보에서 사용자 스크립트 허용 필수)

※ tampermonkey 스크립트 Sangtacviet Batch Downloader (Unified Browser + Python).js는, 이전 버전과 완전히 동일함.

5. Chrome 원격 디버깅 모드 설정

실행 중인 Chrome을 완전히 종료한 뒤 다음과 같이 실행합니다.

bash

bash
chrome.exe --remote-debugging-port=9222

Chrome 바로가기의 대상(Target) 끝에 다음을 추가해두면 편리합니다.

text

text
--remote-debugging-port=9222

예:

text

text
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222

💻 사용 방법

1. Chrome 실행

원격 디버깅 모드로 Chrome을 실행합니다.

2. Python 서버 실행

bash

bash
python "Sangtacviet_Batch_Downloader_v2_UltraFast.py"

정상 실행 시 다음과 같은 메시지가 표시됩니다.

text

text
✅ 서버 준비 완료! 포트 15000

3. 다운로드 작업 요청 (Tampermonkey 스크립트 활용)

  1. 디버깅 모드로 켜진 크롬에서 쌀국수 사이트의 다운로드 받을 소설 목차 페이지에 접속합니다.

  2. 상단에 추가된 컨트롤 바에서 다운로드할 화를 선택(사이 선택 등 활용)합니다.

  3. 🟡 [🐍 파이썬 봇으로 전송] 버튼을 클릭합니다.

1

📁 저장 구조

프로그램이 실행되는 폴더를 기준으로 다음과 같은 구조가 만들어집니다.

text

text
Sangtacviet_Batch_Downloader_v2.py
novel_cache.json
completed_chapters.json

└─ 소설 제목/
   ├─ 소설 제목_회차 제목 1.txt
   ├─ 소설 제목_회차 제목 2.txt
   ├─ 소설 제목_회차 제목 3.txt
   ├─ download_report_success_2026-08-12_20-15-30.txt
   └─ ...

캐시와 완료 내역은 프로그램 폴더에 별도로 저장됩니다.


🔁 여러 소설을 연속으로 처리하는 경우

v2는 소설별로 캐시와 완료 내역을 유지합니다.

예:

text

text
A소설
 ↓
A|123
A|124
A|125

B소설
 ↓
B|123
B|124

다시 A소설
 ↓
A|123 → 이미 완료 → 스킵
A|124 → 이미 완료 → 스킵
A|125 → 이미 완료 → 스킵

소설이 변경되어도 이전 소설의 캐시가 삭제되지 않으며, 소설 URL과 Chapter ID를 조합하여 각각 독립적으로 관리합니다.


🚨 주의사항

  • 다운로드 작업 중 연결된 Chrome 창이나 현재 작업 탭을 임의로 닫거나 변경하지 않는 것을 권장합니다.

  • 장시간 작업에서는 사이트 응답 속도와 외부 서비스 상태에 따라 전체 처리 시간이 크게 달라질 수 있습니다.

  • CAPTCHA가 발생하는 경우 자동 처리 여부와 처리 시간은 상황에 따라 달라질 수 있습니다.

  • 자동 처리할 수 없는 인증이 발생하면 사용자의 수동 처리가 필요할 수 있습니다.

  • novel_cache.jsoncompleted_chapters.json은 이어받기 및 중복 다운로드 방지에 사용되므로 정상적인 작업 중에는 삭제하지 않는 것이 좋습니다.

  • 동일한 소설을 다시 다운로드하더라도 기존 파일과 완료 내역이 있으면 해당 회차는 가능한 한 재다운로드하지 않고 스킵합니다.

  • Google Recaptcha 해제 기능은 작동하지 않을 수 있습니다.

https://youtu.be/JShda2h6z_Q

18
29 comments
훨씬 빨라졌네요
지금도 사이트 자체 캡챠 후 cloudflare가 또 뜨면 약간 병목현상이 있어서 시간이 낭비되지만, 그걸 감안해도 훨씬 빨라지긴 했죠. 원래는 그거까지 고치려다가 그냥 내버려두기로 했습니다.
관리자가 비정상적인 트래픽 감지해서 더 장벽쌓지만 않았으면 좋겠네요ㅋㅋ
08/14 Edited 08/14
Google ReCAPTCHA는 처음엔 뜨다가 지금은 자체 캡챠만 뜨는 게 비용문제로 추정되서 캡챠 방법을 바꾸진 않을 거 같고 (ReCAPTCHA가 안 떠서 테스트를 못해봤기 떄문에 ReCAPTCHA 뜰 시 제대로 자동으로 해제된다는 보장은 못함. 그래도 수동해제는 가능.) 자체 캡챠를 더 자주 띄우는 방향이지 않을까 싶은데 그럼 지금 기본으로 설정된 대기시간 1~3초를 캡챠가 안 뜰 정도까지 길게 늘리면 그만일 거 같기는 해요.
08/14
08/14
08/14
진짜 개고수..
08/14 Edited 08/14
전에 AI가 지금처럼 똑똑해지기 전에 파이썬 크롤링 관련 책 한권사서 대충 업무에 써먹어보기는 했는데 지금 이거는 모든 코드를 제미나이가 작성하고, GPT가 피드백한 거라 제가 고수는 전혀 아니에요. 그냥 문외한인데 AI한테 일을 열심히 시켰을 뿐
08/14
08/14
이제 베트남도 정복하는구나,역시 우린 환국의 후예인거시여 ㅋㅋ
08/14
08/14
'자체 캡챠 렉 및 무한 로딩 자가 복구' 이게 진짜 크네요. 이전 버전은 저 부분에서 무한 로딩 상태가 되는 경우가 있었거든요... 공유 아주 아주 감사합니다!
좀 더 최적화하려면 할 수는 있겠지만, 이 정도 속도로도 6배 빨라졌는데, 더 안정적으로 작동하므로 쌀국수 사이트의 구조가 크게 바껴서 아예 안먹히지 않는 한 아마 이대로 냅둘 거 같네요. v1부터 3일 동안 시간을 쏟아부은 보람이 있습니다.
감사합니다. 잘 실행되어 무척 기쁩니다!!! 하나 질문이 있어요 아래 작품 추출 하는데, 특이 사항이 있어서요 https://sangtacviet.com/truyen/qidian/1/1047711617/ 아래에서부터 115부터 제일 마지막화까지(잠금화수 제외) 체크 후 실행했는데 이게 중간중간 성공하는게 있고, 중간중간 실패되어 추출 안되는게 있네요 그래서, 안된 것만 다시 실행 중인데, 이러는 경우가 보통 있나 싶어 질문드려요 이런 경우 보통 어떻게 해결하시나요?
08/15 Edited 08/15
일단, 다운로드 완료 후 폴더 내에 로그가 생기는데 그걸 봐야 왜 실패했는지를 정확히 알 수 있을 거 같고요. 다시 다운로드 받는 게 가장 확실한 방법이므로, 대충 선택해도 이미 다운로드된 파일은 스킵하고 없는 것만 다시 받도록 해둔 이유가 그 때문입니다.
벌써 한달이 지나서 사라졌나봄다.. 아숩다..
이거 말고 개선판으로 받으세요
아 히로아카 패러디는 빡세네
잡담
VK2025
08/31 484 0
그러고보니 어제 쌀먹 올라온 거 ai분석을 안 돌렸네
잡담
wqbb22rfw
08/30 529 0
피의 성전 1~681화 완결
[일반]
메로나
08/30 1467 17
추천게시판있으면 좋을것같기도함
잡담
2008
08/30 1393 17
궤도수선 추천 +소개글
후기
2008
08/30 1237 3
소설 ai 가료판 만드는법
정보
pjhi1111
08/30 1396 9
고진인(蛊真人) 1-2335 (AI 재번역판 손검수) 복구 요청드립니다
복구 요청
yangs456123
08/30 1357 3
장생수선 거북과 동행하다 하차 후기
후기
cnstlrlsp
08/30 1553 2
마블 패러디 3개
[패러디]
vkqlffhs103
08/30 2692 32
붕괴 스타레일, 변신 능력으로 여기저기 사고 치고 다닌다 1-475完
[복구]
zeta21
08/30 2268 10
[나루토] 나뭇잎 마을에서 식당을 열었는데, 시작부터 망자를 소환했다 1-450
[패러디]
金日成綜合大學
08/30 2885 27
붕괴 스타레일, 변신 능력으로 여기저기 사고 치고 다닌다 1-475完 복구 요청 드립니다.
복구 요청
ㅇㅇ
08/30 2145 0
무량도군(无量道君) 작가-집필초심(执笔初心) 1-1170
[일반]
asdf4132
08/30 3044 32
강호주안루 복구요청 드립니다
복구 요청
holm11
08/30 2133 0
"예, 호카게" 추천합니다
후기
183-8249-2638-52459
08/30 2296 7
[패러디]나루토 이 녀석을 구세주라고 부른다고 중간 하차 후기
후기
74839
08/30 2079 2
F1 Goat 읽기 시작했는데
잡담
taeyangntr
08/30 2231 0
무엇
잡담
金日成綜合大學
08/30 2424 4
주인공이 금전이나 감정으로 고생하는걸보면
잡담
vango
08/30 2273 1
이세계 모험가 길드 진짜 재밌음
후기
yonder
08/30 2478 5
수리점을 열었는데, 어째서 오는 건 죄다 미인 기갑사 뿐이지 1-1451
[일반]
ekaros
08/30 4388 54
중국은 뭔가 자아있는 대화가능한 상태창을 좋게보나
잡담
brlosnb2744
08/30 3007 3
한국어 조사어미가 정말 대단하긴 한 거 같음
잡담
뚜르
08/30 2987 0
레데리 소설 개재밌네 ㅋㅋㅋㅋㅋ
잡담
sibdduck
08/30 3683 0
히로인이 매력적인 하렘물을 보고 싶은데
잡담
dlatldyd123
08/30 3148 0
모험가를 위한 안내서 히전죽이라는건 억까 같음
잡담
forswall
08/30 3113 0
스피드 쌀먹 공유 모음 20260830
[일반]
tassdar
08/30 7344 112
명일방주 안의 플레이어 1-225
[패러디]
명일방주너무좋아광인
08/30 4479 28
자주 나오는 관용어
잡담
peacefull
08/30 3150 0
[2+1] 시체수집가 갱신 및 2개+후기글 하나
[패러디]
rlawjrwnd
08/30 6005 51