nobekanai / dvtag Goto Github PK
View Code? Open in Web Editor NEWA command-line tool designed to tag your doujin voice library. Support mp3/m4a/flac.
License: MIT License
A command-line tool designed to tag your doujin voice library. Support mp3/m4a/flac.
License: MIT License
希望可以自定义ffmpeg转码的线程数 ,在转码的时候CPU占用才20% 希望拉满
本地使用V2ray全局代理,chrome可以访问dlsite,之前还是正常的,今天对本地19个音声批量wav 转flac并打tag,出现了这个问题
尝试过关掉代理,就会得到以下错误
2022-08-17 Wed 15:45:10 - WARNING - Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001B4194B3D00>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')': /maniax/product/info/ajax?product_id=RJ393180
大佬带带我,为啥会有这个问题
环境
Python 3.9.7
pip 22.2.2
dvtag 0.4.4
requests 2.28.1
pyOpenSSL 22.0.0
错误代码
dvtag -w2f ./
2022-08-17 Wed 15:31:06 - WARNING - Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))': /maniax/product/info/ajax?product_id=RJ393180
2022-08-17 Wed 15:31:06 - WARNING - Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))': /maniax/product/info/ajax?product_id=RJ393180
2022-08-17 Wed 15:31:06 - WARNING - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))': /maniax/product/info/ajax?product_id=RJ393180
2022-08-17 Wed 15:31:06 - WARNING - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))': /maniax/product/info/ajax?product_id=RJ393180
2022-08-17 Wed 15:31:06 - WARNING - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))': /maniax/product/info/ajax?product_id=RJ393180
Traceback (most recent call last):
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 700, in urlopen
self._prepare_proxy(conn)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 996, in _prepare_proxy
conn.connect()
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connection.py", line 364, in connect
self.sock = conn = self._connect_tls_proxy(hostname, conn)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connection.py", line 499, in _connect_tls_proxy
socket = ssl_wrap_socket(
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\util\ssl_.py", line 453, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\util\ssl_.py", line 495, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\ssl.py", line 1040, in _create
self.do_handshake()
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1129)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\adapters.py", line 489, in send
resp = conn.urlopen(
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 815, in urlopen
return self.urlopen(
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 815, in urlopen
return self.urlopen(
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 815, in urlopen
return self.urlopen(
[Previous line repeated 2 more times]
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen
retries = retries.increment(
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\util\retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.dlsite.com', port=443): Max retries exceeded with url: /maniax/product/info/ajax?product_id=RJ393180 (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\Scripts\dvtag.exe\__main__.py", line 7, in <module>
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\main.py", line 41, in main
start(path, args.w2f, args.w2m)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\main.py", line 25, in start
start(file, w2f, w2m)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\main.py", line 19, in start
tag(dirpath)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\dvtag\dvtag.py", line 71, in tag
dv = DoujinVoice(rjid)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\dvtag\doujinvoice.py", line 23, in __init__
self._init_metadata()
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\dvtag\doujinvoice.py", line 55, in _init_metadata
rsp = session.get("https://www.dlsite.com/maniax/product/info/ajax?product_id=" + self.rjid)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 600, in get
return self.request("GET", url, **kwargs)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\adapters.py", line 563, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='www.dlsite.com', port=443): Max retries exceeded with url: /maniax/product/info/ajax?product_id=RJ393180 (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)')))
因为经常tag到一半, 就提示远程服务器已断开连接, 然后又得重新打一次, 数量一多就不知道打的进度了.
Can we add an optional argument to dvtag
to store the metadata locally? I.e., storing the cover art as folder.jpg
or cover.jpg
, and storing other metadata in an album.nfo file.
It will enable Media servers like Emby, Jellyfin, Kodi, etc. to handle wav
files (and other types of files) without needing to convert them to a different format.
本人在使用dvtag打标签的时候,发现部分封面是裁剪过的,问题是有的作品会把封面上的标题也裁掉,看起来就不那么美观了。可以添加一个选项保持原来的封面吗?感谢。
源文件的wav我想留着,希望可以选择是否保留源文件。
并且转码后的路径希望能够自定义,一般来说我本地会是 " \ASMR\RJXXXXXX?????\wav\01_???.wav" 这种格式,我个人希望是转码后放到 " \ASMR\RJXXXXXX?????\flac\01_???.flac" 或者 " \ASMR\RJXXXXXX?????\wav\flac\01_???.flac" 这样的路径下。
If the image on dlsite is in CMYK format, then an error occurs when writing the image.
OSError: cannot write mode CMYK as PNG
I handled this locally, adding code to convert CMYK images to RGB images in utils.py
def get_png_byte_arr(im: Image.Image) -> BytesIO:
if im.mode == 'CMYK':
im = im.convert('RGB')
img_byte_arr = io.BytesIO()
im.save(img_byte_arr, "png")
return img_byte_arr
Hope you can also fix the bugs in the github code to avoid similar problems when others use it.
Your code is very useful and convenient. Thank you.
同标题
报错
Traceback (most recent call last):
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\Scripts\dvtag.exe_main.py", line 7, in
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\main.py", line 44, in main
start(path, args.w2f, args.w2m)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\main.py", line 25, in start
start(file, w2f, w2m)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\main.py", line 19, in start
tag(dirpath)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\dvtag\dvtag.py", line 76, in tag
dv = DoujinVoice(rjid)
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\dvtag\doujinvoice.py", line 23, in init
self._init_metadata()
File "C:\Users\qq287\AppData\Local\Programs\Python\Python39\lib\site-packages\dvtag\doujinvoice.py", line 62, in _init_metadata
json_data = rsp.json()[self.rjid]
TypeError: list indices must be integers or slices, not str
目录
├── 1
│ ├── RJ397140
执行命令
dvtag -w2f ./
在执行完wav转flac后,应该是打tag时弹出上面的报错
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.