anijackich / kinescope-dl

Command-line program to download videos from Kinescope.io
The Unlicense
164 stars 23 forks source link

New manifest path and format #26

Open akolnoochenko opened 18 hours ago

akolnoochenko commented 18 hours ago

On a kinescope site the path to mpd was updated to https://kinescope.io/new-manifest/{video_id}/master.mpd

Also the segments' URLs in mpd now relative to base url.

So latest version of kinescope-dl fails to fetch videos. Error log:

[*] 720p is selected
======================================

= DOWNLOADING =================
Audio:   0%|          | [0/1]
Traceback (most recent call last):
  File "/opt/kinescope-dl/kinescope-dl.py", line 86, in <module>
    main()
  File "/opt/venv/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/kinescope-dl/kinescope-dl.py", line 77, in main
    downloader.download(
  File "/opt/kinescope-dl/kinescope/downloader.py", line 175, in download
    self._fetch_segments(el['url'], fetch_path, el['type'])
  File "/opt/kinescope-dl/kinescope/downloader.py", line 122, in _fetch_segments
    self._fetch_segment(segment_url, f)
  File "/opt/kinescope-dl/kinescope/downloader.py", line 103, in _fetch_segment
    BytesIO(self.http.get(segment_url, stream=True).content),
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/requests/sessions.py", line 575, in request
    prep = self.prepare_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/requests/sessions.py", line 486, in prepare_request
    p.prepare(
  File "/opt/venv/lib/python3.11/site-packages/requests/models.py", line 368, in prepare
    self.prepare_url(url, params)
  File "/opt/venv/lib/python3.11/site-packages/requests/models.py", line 439, in prepare_url
    raise MissingSchema(
requests.exceptions.MissingSchema: Invalid URL 'None': No scheme supplied. Perhaps you meant https://None?