pgsrip
pgsrip copied to clipboard
Trying to rip from mkv quickly raises ValueError: 0 is not a valid ObjectSequenceType
Trying to rip lang:en PGS causes this error:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/pgsrip/core.py", line 69, in rip_pgs
srt = PgsToSrtRipper(p, options).rip(lambda t: rules.apply(t, '')[0])
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pgsrip/ripper.py", line 128, in __init__
max_height = max([item.height for item in self.pgs.items]) // 2
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pgsrip/media.py", line 161, in items
self._items = self.decode(data, self.media_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pgsrip/media.py", line 184, in decode
return PgsSubtitleItem.create_items(media_path, display_sets)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pgsrip/media.py", line 45, in create_items
candidates.append(PgsSubtitleItem(index, media_path, current_sets))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pgsrip/media.py", line 32, in __init__
self.image = PgsSubtitleItem.generate_image(display_sets)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pgsrip/media.py", line 72, in generate_image
img_data += ods.img_data
^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pgsrip/pgs.py", line 360, in img_data
if self.sequence_type == ObjectSequenceType.LAST:
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pgsrip/pgs.py", line 341, in sequence_type
return ObjectSequenceType(self.data[3])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/enum.py", line 714, in __call__
return cls.__new__(cls, value)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/enum.py", line 1137, in __new__
raise ve_exc
ValueError: 0 is not a valid ObjectSequenceType
The preceding debug logs:
/usr/local/lib/python3.11/site-packages/click/core.py:1193: UserWarning: The parameter -a is used more than once. Remove its duplicate as parameters should be unique.
parser = self.make_parser(ctx)
/usr/local/lib/python3.11/site-packages/click/core.py:1186: UserWarning: The parameter -a is used more than once. Remove its duplicate as parameters should be unique.
self.parse_args(ctx, args)
INFO:pgsrip:Tesseract version: 5.5.1
INFO:pgsrip:Tesseract data: /usr/src/tessdata
DEBUG:pgsrip.mkv:Filtering out track 2:ja in /in/ブルーアーカイブ The Animation VOL.4/ブルーアーカイブ The Animation VOL.4_t01.mkv
DEBUG:pgsrip.mkv:Filtering out track 3:zh in /in/ブルーアーカイブ The Animation VOL.4/ブルーアーカイブ The Animation VOL.4_t01.mkv
DEBUG:pgsrip.mkv:Filtering out track 4:zh in /in/ブルーアーカイブ The Animation VOL.4/ブルーアーカイブ The Animation VOL.4_t01.mkv
DEBUG:pgsrip.mkv:Filtering out track 5:ko in /in/ブルーアーカイブ The Animation VOL.4/ブルーアーカイブ The Animation VOL.4_t01.mkv
DEBUG:pgsrip.media_path:/in/ブルーアーカイブ The Animation VOL.4/ブルーアーカイブ The Animation VOL.4_t01.mkv is using temporary folder /tmp/ブルーアーカイブ The Animation VOL.4_t01.mkv8tjynjuj.pgsrip
DEBUG:pgsrip.media:Skipping /in/ブルーアーカイブ The Animation VOL.4/ブルーアーカイブ The Animation VOL.4_t01.mkv [6:en] since /in/ブルーアーカイブ The Animation VOL.4/ブルーアーカイブ The Animation VOL.4_t01.en.srt already exists
DEBUG:pgsrip.mkv:Filtering out track 2:ja in /in/ブルーアーカイブ The Animation VOL.3/ブルーアーカイブ The Animation VOL.3_t00.mkv
DEBUG:pgsrip.mkv:Filtering out track 3:zh in /in/ブルーアーカイブ The Animation VOL.3/ブルーアーカイブ The Animation VOL.3_t00.mkv
DEBUG:pgsrip.mkv:Filtering out track 4:zh in /in/ブルーアーカイブ The Animation VOL.3/ブルーアーカイブ The Animation VOL.3_t00.mkv
DEBUG:pgsrip.mkv:Filtering out track 5:ko in /in/ブルーアーカイブ The Animation VOL.3/ブルーアーカイブ The Animation VOL.3_t00.mkv
DEBUG:pgsrip.media_path:/in/ブルーアーカイブ The Animation VOL.3/ブルーアーカイブ The Animation VOL.3_t00.mkv is using temporary folder /tmp/ブルーアーカイブ The Animation VOL.3_t00.mkvnhezvil1.pgsrip
DEBUG:pgsrip.mkv:Selecting track 6:en in /in/ブルーアーカイブ The Animation VOL.3/ブルーアーカイブ The Animation VOL.3_t00.mkv
DEBUG:pgsrip.mkv:Filtering out track 2:ja in /in/ブルーアーカイブ The Animation VOL.2/ブルーアーカイブ The Animation VOL.2_t01.mkv
DEBUG:pgsrip.mkv:Filtering out track 3:zh in /in/ブルーアーカイブ The Animation VOL.2/ブルーアーカイブ The Animation VOL.2_t01.mkv
DEBUG:pgsrip.mkv:Filtering out track 4:zh in /in/ブルーアーカイブ The Animation VOL.2/ブルーアーカイブ The Animation VOL.2_t01.mkv
DEBUG:pgsrip.mkv:Filtering out track 5:ko in /in/ブルーアーカイブ The Animation VOL.2/ブルーアーカイブ The Animation VOL.2_t01.mkv
DEBUG:pgsrip.media_path:/in/ブルーアーカイブ The Animation VOL.2/ブルーアーカイブ The Animation VOL.2_t01.mkv is using temporary folder /tmp/ブルーアーカイブ The Animation VOL.2_t01.mkvf5pcyp38.pgsrip
DEBUG:pgsrip.media:Skipping /in/ブルーアーカイブ The Animation VOL.2/ブルーアーカイブ The Animation VOL.2_t01.mkv [6:en] since /in/ブルーアーカイブ The Animation VOL.2/ブルーアーカイブ The Animation VOL.2_t01.en.srt already exists
DEBUG:pgsrip.mkv:Filtering out track 2:ja in /in/ブルーアーカイブ The Animation VOL.1/ブルーアーカイブ The Animation VOL.1_t00.mkv
DEBUG:pgsrip.mkv:Filtering out track 3:zh in /in/ブルーアーカイブ The Animation VOL.1/ブルーアーカイブ The Animation VOL.1_t00.mkv
DEBUG:pgsrip.mkv:Filtering out track 4:zh in /in/ブルーアーカイブ The Animation VOL.1/ブルーアーカイブ The Animation VOL.1_t00.mkv
DEBUG:pgsrip.mkv:Filtering out track 5:ko in /in/ブルーアーカイブ The Animation VOL.1/ブルーアーカイブ The Animation VOL.1_t00.mkv
DEBUG:pgsrip.media_path:/in/ブルーアーカイブ The Animation VOL.1/ブルーアーカイブ The Animation VOL.1_t00.mkv is using temporary folder /tmp/ブルーアーカイブ The Animation VOL.1_t00.mkvdh35ryhb.pgsrip
DEBUG:pgsrip.media:Skipping /in/ブルーアーカイブ The Animation VOL.1/ブルーアーカイブ The Animation VOL.1_t00.mkv [6:en] since /in/ブルーアーカイブ The Animation VOL.1/ブルーアーカイブ The Animation VOL.1_t00.en.srt already exists
1 PGS subtitle collected from 7 files
INFO:pgsrip.media:Decoding /in/ブルーアーカイブ The Animation VOL.3/ブルーアーカイブ The Animation VOL.3_t00.en.mkv
DEBUG:pgsrip.media:Removing temporary files in /tmp/ブルーアーカイブ The Animation VOL.3_t00.mkvnhezvil1.pgsrip
WARNING:pgsrip.core:Error while trying to rip /in/ブルーアーカイブ The Animation VOL.3/ブルーアーカイブ The Animation VOL.3_t00.en.mkv: <ValueError> [0 is not a valid ObjectSequenceType]
you need to provide a sample file so I'm able to reproduce it and fix it (you can extract a sup file from the mkv)
I have the same error, slightly different output:
% pgsrip --keep-temp-files --debug up/sub7.sup
INFO:pgsrip:Tesseract version: 5.5.1
INFO:pgsrip:Tesseract data: None
DEBUG:pgsrip.media_path:up/sub7.sup is using temporary folder /run/user/1000/sub7.supl4fi9q9g.pgsrip
1 PGS subtitle collected from 1 file
INFO:pgsrip.media:Decoding up/sub7.sup
INFO:pgsrip.media:Keeping temporary files in /run/user/1000/sub7.supl4fi9q9g.pgsrip
WARNING:pgsrip.core:Error while trying to rip up/sub7.sup: <ValueError> [0 is not a valid ObjectSequenceType]
Traceback (most recent call last):
File "/home/temp/pyenv/lib/python3.13/site-packages/pgsrip/core.py", line 69, in rip_pgs
srt = PgsToSrtRipper(p, options).rip(lambda t: rules.apply(t, '')[0])
~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/home/temp/pyenv/lib/python3.13/site-packages/pgsrip/ripper.py", line 128, in __init__
max_height = max([item.height for item in self.pgs.items]) // 2
^^^^^^^^^^^^^^
File "/home/temp/pyenv/lib/python3.13/site-packages/pgsrip/media.py", line 161, in items
self._items = self.decode(data, self.media_path)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/home/temp/pyenv/lib/python3.13/site-packages/pgsrip/media.py", line 182, in decode
self.dump_display_sets(display_sets)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "/home/temp/pyenv/lib/python3.13/site-packages/pgsrip/media.py", line 189, in dump_display_sets
f.write(f'{new_line.join([str(ds) for ds in display_sets])}')
~~~^^^^
File "/home/temp/pyenv/lib/python3.13/site-packages/pgsrip/pgs.py", line 449, in __str__
strings.append(f'\t{s}')
^^^
File "/home/temp/pyenv/lib/python3.13/site-packages/pgsrip/pgs.py", line 206, in __str__
for k, v in self.to_json().items():
~~~~~~~~~~~~^^
File "/home/temp/pyenv/lib/python3.13/site-packages/pgsrip/pgs.py", line 192, in to_json
k: to_value(getattr(self, v)) for k, v in attributes.items() if getattr(self, v) is not None
~~~~~~~^^^^^^^^^
File "/home/temp/pyenv/lib/python3.13/site-packages/pgsrip/pgs.py", line 341, in sequence_type
return ObjectSequenceType(self.data[3])
File "/usr/lib/python3.13/enum.py", line 726, in __call__
return cls.__new__(cls, value)
~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/lib/python3.13/enum.py", line 1203, in __new__
raise ve_exc
ValueError: 0 is not a valid ObjectSequenceType
0 PGS subtitle ripped from 1 file
Input file is large (145M): https://drive.google.com/file/d/18ULDV6M9J9K8WbWbQZ6FN_6Z-W3tcRHy/view?usp=sharing
It might not be relevant, but I suspect the images don't contain text. I think it's images of early storyboards for the movie that get overlaid when you watch with the director's commentary. I was hoping to extract the images and confirm.