히토미 다운로더용 케모노 다운로드 스크립트
얼마전 케모노 주소가 변경되면서 기존 히토미 다운로더 개발자의 케모노용 스크립트가 동작하지 않길래 간단하게 수정해봄
원 개발자가 바쁜지 히토미 다운로더 업데이트가 좀 늦는감이 있는데 어쩔수 있나 목마른놈이 우물 파야지
aHR0cHM6Ly9raW8uYWMvYy9ib2JNTmdFTExETnZiWVlSY19JUEdi
키오에 파일 두개 업로드 했는데, 두개는 같은거고 브라우저나 안티바이러스가 의심파일이라며 다운로드 거절하는 경우가 있어서 두개 올림
변경점은 hds용 시그니쳐 삭제, 케모노 cr 도메인 추가 끝
귀찮으면 아래 코드 복사해서 플러그인 추가 해도 됨
#coding: utf8
#title: Kemono.Party 추가
#title_en: Add Kemono.Party
#comment: https://kemono.party
#author: Kurt Bestor
import downloader
from utils import Downloader, Session, Soup, LazyUrl, urljoin, get_ext, clean_title, get_print, print_error
import clf2
from translator import tr_
from ratelimit import limits, sleep_and_retry
class Image:
def __init__(self, url, referer, p):
self._url = url
self._p = p
self.url = LazyUrl(referer, self.get, self)
@sleep_and_retry
@limits(1, 5)
def get(self, _):
ext = get_ext(self._url) or downloader.get_ext(self._url)
self.filename = '{:04}{}'.format(self._p, ext)
return self._url
@Downloader.register
class Downloader_kemonoparty(Downloader):
type = 'kemono.party'
URLS = ['kemono.party', 'kemono.su', 'kemono.cr']
icon = 'base64:iVBORw0KGgoAAAANSUhEUgAAACAAAAAfCAYAAACGVs+MAAAH+0lEQVRIx72XaWxcVxXHf/ctM/Nm8YyX2mPHdrzGSYjrpNlJ2zRLgSSloi2bRCtQ+VChVCKRqEIFH6gECEpoUUJLS1JamqJAiwCBWoUKke5KuuA2zVbHbhLHdsbLjD3zPDNv3nb5YDtK1RQ7EnCk++Hp3nfO/5z7P//zHsD3gfWA4P9jmoAdwNNAEGB7Iqj2xYPqt4GyT3qrZUGMlgWxmUcBtAJhIAQ0zTEBoyqs7eqsNnK6Ku4PaVOvNN/QED31vXW1bkdl6C/AdZ/kLBzRIkJQC2jAk8CtwE3AM9PZxKcBXckqkhF9zw9urCvdu6J6ElgvBKjAhISOe5Zfs2ZbW3xh3vG39Odsx/HlKcAGaJgfJZe1kTDf9+ReYERXxPKAqqxVBY26KtpdnyPAT4GzwODlpQLmt5UH9963Nvn1WzsS2u9PZD7oHS89BORVVQgmSp7XEA/csaIuoi9NRuJN8eDmCzlncabo9oBI+W5A2I5NNK5nnZK3psLQ7osG1Pi1NcbqeEhbUhHSdNdnoxBUOL7cCxQBAqrAkyy9Lhnet2td7ZaOypAYzrscOJ5+YdzyDgKocgphRhVs3thUVv/GwCTNiaD6+QWJRXnH/1x/1rYLpdIpwC5ZnpSQWl4b/kZntdG6vrFMW1pjBDRFJFrLQ/W9mdL+RVWhQ6m8C4AnuXlTU2zfdz9du2LAdIiHVPrGS/LZk+N7DU3pdnyJCrBmXsQ6MWbVrqmPbryxMcb+7jEmbZ97ll+TSEb1zX0Tpc5sybsI1JcF1a8urQmv3LG6JrQsGaazxmB5bQQB9GQsoydT0lxfZnRF3PLFReW/3Lk62XKoL4sEtrbG+cPJzOg7Fws/cXw5AlMcYNB0sFyZrzS027e1JcJLqsP87nia1/rz3NlZqfmShUcH818A7owF1ZvuWFQRWlkbodzQUBVBWFdorwixqTlWv6AytEVXlNs3NpfdfndXVdX+7lFG8i7fWVvLpO3zm3fH3hownUcA5xKAaRt3fbn2hsZoR0siSFdNmMfeGeWF3iy3LSyn6PpGf9YOTdo+r/abdKcKRAMq9bEAAU1BAvGQSmdNWNnUHItf3xALPt49xtPH0uxYVcOKujD/uljgwPvpg9va4odOjllcDkADEhnLUxZXGdu6asJiJO/yzPEMy5Jhvrmsiq1tcaIBldNjFqbtcz5r8+KHOU6nLSoNlbqojqYoeFKiKQJdFWiK4JV+k1hAZXNznL+dmbBe6M3u7smUzvjT5JsBEAEe9iXNuqI0fKalzBgwbYZMhwfW11EV1ghqCqvrIixLRhgwbQZNG9uT9GQsXvwwx/msQzKqUx3R0YTAl5CM6kR0hdNpi4Sh8dypTP/ZCft1X7INeA+wxYwcAhsrDe2p9opg9Y821FMb1ck7Hg1lAWbQAqhCMFpweOLdMZ56L8245V7aq4nobG2LU25oDJo2qUmH4bzDYM7BR1J0/IwvmQB+DTwISAFsBb4V0kQ6oqsrv7K4fPHdS6uoLwsgAXlZ8EviIsCX8Eq/yYNvpOhOFeagwgCUgKNC8LiUVAFHVWAIcGIB9cvrm2KfWj0vSldNGFX5z9IugPbyEK3lQQ71ZbFcecVz7RUhbm4u45b2BMmIrs2LBZITlruh6Mo88E8NWAU0qULki44vm+IBEZpm9Wzm+pLOaoNlyTCHz5kf229JBHl0SyNLrjFQhODo4CS7j6QCRUe+CvwKGFKATmCppgjd8/FM259rOZFAJKByc3P8Y9MrqAq2r6jm2uowEvClRALz40FZHdE2APuAXQqwB9iZLrrHPSlFT8Zi0HQu3fWsIKTkxsYoreVBdEVcArK1LcFtCxP4UqIIMG2PkbzDqbGiO5CznwS+BOxWgSjwQ1WIzkzR7TZtv1EIdNeXBDWFiK7MWoV4SGNdQ5RNzWXc0BhjVV2Eu66tpCaiowjBkOlwcrTIb4+lnZztj4xb3mJPkgFeFUyJUCNTA2nHgsrQTrPkjW1rTzSPFVz/xxvmqWVBdVZOKEIww9uZkgsgNelw+JzJwRMZK6AK8dqFyfuB94Ek8CcV8IFxoFLCvWMFd7cnSV0wnaZ3U4WD82KBrq5kWJ0NwFTQqTXTup6E3UeGnb/3ZcWZTOnpCzmn1/PlMuAXwJuAc/kscIGXBRy2fbk5V/J6PMkDowV35aq6aEtVWJtTZ8yYKgRvDeXZ8+bIsx9krKGSJ/tcX+5i6lvhHFCAjw4jd7oSACPAy5oiUkOTTkpXxS3rGqKGMhdWMqURRU+y563hi69fmNwOvD0d8J3p8l9SLvUTfIwA2WkJ7h80ndqOytDqtorQFZXxY9krgpfO53j07dHHCo7/DHAeOH5F7swhITc16ew58H765FjBmbU1BZC1XJ47Od4zWnD3MUWPmXX1ABRFYUF5sPelc+bDfz49Yc96Xgj+cTYnD583n7hrScWZWas12wEpJWnLw5OcGc67Xctrwx01kcAV0xECRvIuPz8y3P1B2rr/2EjRnM3/XK6AtpiKqgjzxGjxZweOpUct17/ij4MAnu+dcF4fmHxkXkwfmovvWSsAkLHlDPkGBk2norU8eP3CKgMhBKoQ0yIkODth89DR4Zcu5OwHTNu3/msALr+RguP35ErehkVVRvJMxuLIYJ6etIXrw197xvN/PDW+K6Ir7zn+1ajGVVhVWMPQla81lAUKYV2RAqQikJWGJisM7VnA+N9E/qhFgef5aIvlgM9eraN/A7XCX1o55MN7AAAAAElFTkSuQmCC'
display_name = 'Kemono.Party'
MAX_CORE = 4
def read(self):
self.session = Session()
info = read_info(self.url, self.session, self.cw)
type_ = info['type']
if type_ == 'post':
for img in info['imgs']:
self.urls.append(img.url)
self.title = info['title']
else:
raise NotImplementedError(type_)
def read_info(url, session, cw):
print_ = get_print(cw)
info = {}
if '/post/' in url:
type_ = 'post'
else:
raise NotImplementedError('Not a post')
info['type'] = type_
res = clf2.solve(url, session=session, cw=cw)
soup = Soup(res['html'])
info_ = read_post(url, soup, cw)
info['imgs'] = info_['imgs']
tail = ' (kemono.party_{}_{})'.format(type_, info_['id'])
info['title'] = '{}{}'.format(clean_title(info_['title'], allow_dot=True, n=-len(tail)), tail)
return info
def read_post(url, soup, cw):
print_ = get_print(cw)
info = {}
info['title'] = soup.find('h1').text
info['id'] = soup.find('meta', {'name': 'id'})['content']
imgs = []
# Downloads
for item in soup.findAll('li', class_='post__attachment'):
href = urljoin(url, item.find('a')['href'])
img = Image(href, url, len(imgs))
imgs.append(img)
# Files
files = soup.find('div', class_='post__files')
if files:
for item in files.findChildren(recursive=False):
if 'href' in item.attrs:
a = item
else:
a = item.find('a')
href = urljoin(url, a['href'])
# Imgur
if 'imgur.com/' in href:
print_('Imgur: {}'.format(href))
try:
from extractor import imgur_downloader
for img in imgur_downloader.get_imgs(href):
img = Image(img, href, len(imgs))
imgs.append(img)
except Exception as e:
print_(print_error(e))
continue
img = Image(href, url, len(imgs))
imgs.append(img)
# Content
content = soup.find('div', class_='post__content')
if content:
for img in content.findAll('img'):
src = urljoin(url, img['src'])
img = Image(src, url, len(imgs))
imgs.append(img)
info['imgs'] = imgs
return info
messageBox(u'{}: Kemono.Party'.format(tr_(u'사이트를 추가했습니다')))
20
18 comments
hdd-punkerble
08/08/25 Edited 08/08/25와 감사합니다. 일일이 하나씩 받고있었는데
로리보지
08/08/25 url 형식만 바뀐겨?
Скарби тут
08/09/25 케모노꺼까지 와우
nurisora
08/09/25 호옥쉬 coo로 시작하는 비슷한 사이트도 만들어줄수있어?
글쓴이
08/09/25 그쪽은 개발자 공식 스크립트는 없는거같은데 아래에 누가 올려준 스크립트쓰셈
todndpf2dld
08/10/25 이거 히토미 다운로더 이와라도 다운 가능했었던가?
puccho
08/29/25 ㅇㅇ 근데 쿠기 파일 같은거 수동으로 넣어주고 했었었음
로그인 안하면 제한걸려서 그랬던가
ammm
08/29/25 놓쳤는데 연장가능? ㅠ
글쓴이
08/30/25 위에 소스코드 복사해서
탐색기에서 빈 텍스트 파일 만들고 붙여넣기 한다음 저장
kemono.py 로 이름 바꾸기
veynian2003
09/09/25 복붙하고 py로 하고 적용했는데 invalid오류뜸.... dns우회해도 안되고...머가문제지
글쓴이
09/10/25 방금 다시 테스트해봄 잘됨
플러그인에 다른 기존 스크립트랑 충돌나는건지 확인해보고
스크립트 빼고 몇번 껏다 켯다해보고 다시 추가해보셈
nurisora
09/16/25 원래 한 작가 전체작품도 다운가능하지 않았음? 하나씩은 다운되는데 전체는 invalid 뜨네 오류인가.....?
글쓴이
09/16/25 다운로더 원제작자가 아니라 다른사람꺼 쓰신듯
난 원제작자꺼 살짝 수정한거라 원래 기능엔 변함이없음
nurisora
09/16/25 해결은 못했는데 비슷하게는 했습니당 감사합니다
zhsptlsdlq
09/17/25 어떻게 해결함?
nurisora
09/17/25 Edited 09/17/25https://github.com/KurtBestor/Hitomi-Downloader/issues/5843
여기댓글보고해결했어요
로빈
09/20/25 감사감사 CR 도메인때문에 못하고있었는데 덕분에 해결함
asdawv123
12/05/25 Edited 12/05/25혹시 discord에서 이미지 다운하는 스크립트도 제작 부탁드릴수있을까요
post에서는 정상 작동하는데 discord에서는 안되네요 ㅠㅠ
어떻게 한번 해보려고 이래저래 수정해서 읽기까지는 되는데 결국 이미지 파일 못찾고 끝나네요 ㅠㅠ
공지
AI 이미지 관련 공지 및 관련 규정 수정 공지
1uF
05/02
64875
22
AI 이미지 관련 공지 및 관련 규정 수정 공지
공지
1uF
05/02 64875 22
공지
‼️뉴비 필독 가이드‼️
1uF
05/02
95037
134
‼️뉴비 필독 가이드‼️
공지
1uF
05/02 95037 134
공지
🔔[필독] 채널 규정 & 신문고 (2026 04 05~)
SK
04/05
208351
-25
🔔[필독] 채널 규정 & 신문고 (2026 04 05~)
공지
SK
04/05 208351 -25
공지
🔔[필독] 탭 별 이용 가이드 (20260206~)
Etrick
02/05
257217
-41
🔔[필독] 탭 별 이용 가이드 (20260206~)
공지
Etrick
02/05 257217 -41
공지
[필독] 서브에 자주 올라오는 여러 가지 질문 모음 (20251026~)
SK
05/17/25
1245462
-14
[필독] 서브에 자주 올라오는 여러 가지 질문 모음 (20251026~)
공지
SK
05/17/25 1245462 -14
일반
헤르미온느 길들이기는 dl 에 냈으면 얼마나 팔렸을까
하이바라
05/20
5236
0
헤르미온느 길들이기는 dl 에 냈으면 얼마나 팔렸을까
일반
하이바라
05/20 5236 0
일반
자러갈께.
아이기스맘
05/20
1988
6
자러갈께.
일반
아이기스맘
05/20 1988 6
질문
dlsite에서 겜 어떤 툴로 만들어졌는지 확인할 수 있음?
ahnhyunmin
05/20
5433
0
dlsite에서 겜 어떤 툴로 만들어졌는지 확인할 수 있음?
질문
ahnhyunmin
05/20 5433 0
동인
따끈따끈한 타케다 신규 낙서장 (나데시코)
riden
05/20
26790
48
따끈따끈한 타케다 신규 낙서장 (나데시코)
동인
riden
05/20 26790 48
요청
blendy 모음집 복구 요청드려도 될까요
dudqhrcl
05/20
6013
0
blendy 모음집 복구 요청드려도 될까요
요청
dudqhrcl
05/20 6013 0
야짤
ai) 큰 가슴 사이로 총알이 쓩~~
Ghost
05/20
10290
37
ai) 큰 가슴 사이로 총알이 쓩~~
야짤
Ghost
05/20 10290 37
야짤
뫼엥 fantia가 검열로 컷당하다니
강철검
05/20
6113
10
뫼엥 fantia가 검열로 컷당하다니
야짤
강철검
05/20 6113 10
야짤
ai) MMM 모음집
Ghost
05/20
9628
21
ai) MMM 모음집
야짤
Ghost
05/20 9628 21
일반
비타퀘는 조이플로 안되나보네
chdodnd
05/20
3828
0
비타퀘는 조이플로 안되나보네
일반
chdodnd
05/20 3828 0
복구
[[요청복구]] [RJ340568] 상태이상 1 〜음문 금서 기생충편〜
에로스테는 필수 스테는 선택
05/20
19353
122
[[요청복구]] [RJ340568] 상태이상 1 〜음문 금서 기생충편〜
복구
에로스테는 필수 스테는 선택
05/20 19353 122
질문
비월선행록 선발대에게 플레이-오류 질문좀
o0o99
05/20
2641
0
비월선행록 선발대에게 플레이-오류 질문좀
질문
o0o99
05/20 2641 0
야짤
ai) ----스압-----아이마스 계열...?
Ghost
05/20
5482
19
ai) ----스압-----아이마스 계열...?
야짤
Ghost
05/20 5482 19
동인
Yutsuki Tsuzuri-쓰레기 현자 이야기 2
k8625
05/20
20992
41
Yutsuki Tsuzuri-쓰레기 현자 이야기 2
동인
k8625
05/20 20992 41
일반
갑자기 화가난다.
아즈칼
05/20
2728
2
갑자기 화가난다.
일반
아즈칼
05/20 2728 2
질문
미캉의 여름방학 클리닉 어떻게 열음?
jaemyunglee
05/20
3129
0
미캉의 여름방학 클리닉 어떻게 열음?
질문
jaemyunglee
05/20 3129 0
질문
비타퀘2 창관파트 선물 질문
부탄가스
05/20
2075
1
비타퀘2 창관파트 선물 질문
질문
부탄가스
05/20 2075 1
후기 및 공략
의술사 3회차 후기
llll-llll
05/20
5260
5
의술사 3회차 후기
후기 및 공략
llll-llll
05/20 5260 5
동인
Eco Heeky-엉덩이로 여자를 구분할 수 있는 내가 여상사의 약점을 잡았다 1
k8625
05/20
29556
189
Eco Heeky-엉덩이로 여자를 구분할 수 있는 내가 여상사의 약점을 잡았다 1
동인
k8625
05/20 29556 189
동인
Eco Heeky-엉덩이로 여자를 구분할 수 있는 내가 여상사의 약점을 잡았다 2
k8625
05/20
37733
284
Eco Heeky-엉덩이로 여자를 구분할 수 있는 내가 여상사의 약점을 잡았다 2
동인
k8625
05/20 37733 284
동인
[직번] [kuroinu] 악몽의 학원 생활 위원장의 운명
maha1004
05/20
20810
76
[직번] [kuroinu] 악몽의 학원 생활 위원장의 운명
동인
maha1004
05/20 20810 76
번역
[손번역][2차번역본] RJ01526327 어서오세요! 어린이 만들기 온천 마을 1.01
sjdwj
05/20
55097
271
[손번역][2차번역본] RJ01526327 어서오세요! 어린이 만들기 온천 마을 1.01
번역
sjdwj
05/20 55097 271
일반
ntr물은 말그대로 심장을 떨리게 하는 꼴림이 있다
인생좆망함
05/20
2267
0
ntr물은 말그대로 심장을 떨리게 하는 꼴림이 있다
일반
인생좆망함
05/20 2267 0
복구
[[요청복구]] [RJ422316] 전투에로 RPG ~음욕의 마탑~
에로스테는 필수 스테는 선택
05/20
29041
250
[[요청복구]] [RJ422316] 전투에로 RPG ~음욕의 마탑~
복구
에로스테는 필수 스테는 선택
05/20 29041 250
번역
[기계번역/자동번역] Yaradiel’s Crown [v0.7.1]
karuparu13
05/20
30487
65
[기계번역/자동번역] Yaradiel’s Crown [v0.7.1]
번역
karuparu13
05/20 30487 65
일반
야겜하면서 제일 힘든거
Kikio
05/20
3277
1
야겜하면서 제일 힘든거
일반
Kikio
05/20 3277 1
동인
Grimgrim-goat짱모음
k8625
05/20
17794
125
Grimgrim-goat짱모음
동인
k8625
05/20 17794 125
일반
가끔 보일때마다 너무 폭력적임
ㅇㅇ
05/20
3397
0
가끔 보일때마다 너무 폭력적임
일반
ㅇㅇ
05/20 3397 0
요청
[복구요청] (이미지 번역) [RJ01274529] 하루우리 카드 게이머즈 메뉴, 스토리 제목 번역
dream
05/20
3401
0
[복구요청] (이미지 번역) [RJ01274529] 하루우리 카드 게이머즈 메뉴, 스토리 제목 번역
요청
dream
05/20 3401 0
일반
의술사가 왜 신선한지 생각해봤는데
ㅇㅇ
05/20
2986
0
의술사가 왜 신선한지 생각해봤는데
일반
ㅇㅇ
05/20 2986 0
질문
복구 관련 질문 드립니다
arquivity
05/20
2475
0
복구 관련 질문 드립니다
질문
arquivity
05/20 2475 0
s/somisoft
• 143,985 subscribers여러가지 다루는 서브
Created 05/17/2025, 14:58:43