rickmiron / variado

63 stars 7 forks source link

MissAV 썸네일과 파일명 관련... #2

Open wzxtzqrl opened 11 months ago

wzxtzqrl commented 11 months ago

rickmiron님께서 작성하신 스크립트를 읽어보다가 궁금한게 있어서 질문 드립니다.

  1. 썸네일 화질

imagen_webp.save(self.thumb, "JPEG", quality=90)

윗 줄의 코드에서 quality를 90으로 맞춰 놓으셨는데, 100으로 안 하신 이유가 있나요? 용량을 줄이려고 의도하신건지... 100으로 변경해도 문제는 없나요?

  1. 파일명 줄이기

아래의 링크를 예로 들면, https://missav.com/dm2/stars-740-uncensored-leak

다운로드 된 파일명은 다음과 같습니다. STARS-740-UNCENSORED-LEAK 被M罩杯女主人迷住的溫泉戀情之旅 戀淵桃奈 - 戀渕ももな.mp4

title = soup.find('h1').text.strip() 스크립트에서 h1 클래스를 찾아 잘라오라는 명령 같은데, h1은 다음과 같습니다. STARS-740 被M罩杯女主人迷住的溫泉戀情之旅 戀淵桃奈 - 戀渕ももな

즉, 다운로드 된 파일명은 비디오 url 링크의 끝부분을 잘라서 파일명 앞에 붙여놓게 코딩을 하신것 맞죠?

제가 원하는 내용은 단순합니다. 대문자로 된 품번 STARS-740만 남기는 것이죠.

효과적인 방법인지 모르겠지만 h1 클래스 맨 앞에서 '문자-숫자' 패턴만 남기고 바로 뒤 빈칸에 이은 모든 문자열은 잘라 버리게 수정이 필요하지 않을까 고민을 해 보고 있습니다. 혹시나 정규표현식이 필요한건 아닐까 걱정도 되고요. 파이썬 초보라서 어려운건 하나도 모릅니다.

혹시 시간 되시면 코드 수정 버전을 부탁 드려도 괜찮을까요?

감사합니다.

rickmiron commented 11 months ago
  1. 품질이 90보다 높으면 차이가 눈에 띄지 않으며 이미지 크기만 커집니다.

  2. 코드를 다음과 같이 변경합니다.

오래된

title = soup.find('h1').text.strip()
un = title.find(' ')
if un == -1:
    un = len(title)
self.filename = clean_title(codigo + title[un:] + '.mp4')
if len(self.filename) > 209:
self.filename = self.filename[:205] + '.mp4'

새로운

self.filename = clean_title(codigo + '.mp4')

두가지 버전이 있어서 'UNCENSORED-LEAK'를 입력했습니다. https://missav.com/dm2/stars-740-uncensored-leak https://missav.com/stars-740

wzxtzqrl commented 11 months ago
  1. 품질이 90보다 높으면 차이가 눈에 띄지 않으며 이미지 크기만 커집니다.
  2. 코드를 다음과 같이 변경합니다.

잘 되네요. 감사합니다.

썸네일 파일명에 대한 추가적인 수정이 가능할까요?

STARS-740의 경우 아래처럼 다운됩니다. (썸네일) STARS-740.mp4.webp (영상) STARS-740.mp4

  1. 여기서 썸네일 파일명의 .mp4를 제거하여 STARS-740.webp와 같이 바로 출력되게 수정 가능할까요?

  2. 평시에는 일반적인 다운이 잘 되는데 가끔 히토미 다운로더가 '녹화'로 처리하는 상황이 있습니다. 이거 왜 그런지 아시나요?

https://missav.com/stars-833-uncensored-leak와 일부 다른 링크들이 불특정 상황, 불특정 시간대에서 랜덤으로 '녹화' 처리됩니다. 제대로 다운 되는건지 아닌지 찝찝하네요.

rickmiron commented 11 months ago

3. 오래된

def tojpg(self):
        self.thumbz.seek(0)
        bythz = self.thumbz.read()
        if len(bythz) > 0:
            with open(self.dirfile + '.webp', "wb") as f:
                f.write(bythz)
            f.close
            imagen_webp = Image.open(self.thumbz)
            if imagen_webp.mode != "RGB":
                imagen_webp = imagen_webp.convert("RGB")
            imagen_webp.save(self.thumb, "JPEG", quality=90)
            self.thumbz.truncate(0)

새로운

def tojpg(self):
        self.thumbz.seek(0)
        bythz = self.thumbz.read()
        if len(bythz) > 0:
            with open(self.dirfile.replace('.mp4','.webp'), "wb") as f:
                f.write(bythz)
            f.close
            imagen_webp = Image.open(self.thumbz)
            if imagen_webp.mode != "RGB":
                imagen_webp = imagen_webp.convert("RGB")
            imagen_webp.save(self.thumb, "JPEG", quality=90)
            self.thumbz.truncate(0)

4. 영상이 포함된 파일의 버전 때문인데, 버전 3이면 정상, 6이면 녹화중입니다. 나는 다운로드할 코드를 디자인하지 않았고 Hitomi Donwloader에 이미 제공되는 도구만 사용했습니다. 이렇게 하면 휠을 다시 발명하는 것을 피할 수 있습니다.

wzxtzqrl commented 11 months ago

오래된

  1. 이미지 파일명이 원하던대로 잘 출력됩니다.

  2. 역시 프로그래밍 관련 지식은 알아야 될 것들이 너무 많아서 복잡하네요.

여러 도움 주셔서 정말 감사합니다.