Hybrid for DSNP (Beta)
This commit is contained in:
parent
71f248eed0
commit
9f2b9c2788
@ -29,6 +29,7 @@ Support for Sport replays or live streams is not planned. It's a whole thing wit
|
|||||||
- N_m3u8DL-RE downloader support (Experimental)
|
- N_m3u8DL-RE downloader support (Experimental)
|
||||||
- Atmos audio with ISM manifest (Amazon) is Fixed
|
- Atmos audio with ISM manifest (Amazon) is Fixed
|
||||||
- Resume failed download has been implemented. If a track has been successfully downloaded previously and exists in `Temp` directory (encrypted or decrypted), VT will not download said track again.
|
- Resume failed download has been implemented. If a track has been successfully downloaded previously and exists in `Temp` directory (encrypted or decrypted), VT will not download said track again.
|
||||||
|
- Hybrid creation with [dovi_tool](https://github.com/quietvoid/dovi_tool/). This feature is in Beta. Only tested so far on DisneyPlus. Needs more work. Ex: filenaming needs correction, temp directory is a mess after hybrid creation, use another tool insteal of `dovi_tool` to get Profile 8 DV-HDR10+ instead of DV Profile 5 HDR10 compatible.
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
@ -244,6 +245,7 @@ If you are getting `TooManyDevices` error or Amazon is giving you trouble with s
|
|||||||
- Requires you to use `-m` or `--movie` flag if you are downloading a movie. Append flag to end of your command.
|
- Requires you to use `-m` or `--movie` flag if you are downloading a movie. Append flag to end of your command.
|
||||||
- From my testing, when using with VPN, it causes lots of issues, mainly needing to clear `Cache` folder and login repeatedly. Use residential proxies if available. Don't hammer service. Try waiting a minute or two before logging in again.
|
- From my testing, when using with VPN, it causes lots of issues, mainly needing to clear `Cache` folder and login repeatedly. Use residential proxies if available. Don't hammer service. Try waiting a minute or two before logging in again.
|
||||||
- If you are getting `No 2160p track found` error for a title you know has 4k, then try passing `-r DV` or `-r HDR`. Make sure your account can access highest qualities.
|
- If you are getting `No 2160p track found` error for a title you know has 4k, then try passing `-r DV` or `-r HDR`. Make sure your account can access highest qualities.
|
||||||
|
- Should be more stable now when using proxy. But do be careful. We don't use proxy for downloading segments, which means your IP could get banned from DSNP servers (ie persistent 403 errors). If you download the same title multiple times or many titles at once your IP address could get banned. This happened to me while testing.
|
||||||
|
|
||||||
### Hulu
|
### Hulu
|
||||||
|
|
||||||
|
|||||||
@ -289,12 +289,13 @@ class Track:
|
|||||||
save_path = os.path.join(out, name)
|
save_path = os.path.join(out, name)
|
||||||
|
|
||||||
if self.descriptor == self.Descriptor.M3U:
|
if self.descriptor == self.Descriptor.M3U:
|
||||||
manifest = session.get(as_list(self.url)[0], headers=headers, proxies={"all": proxy} if proxy else None).text
|
manifest = (session or requests).get(as_list(self.url)[0], headers=headers, proxies={"all": proxy} if proxy else None).text
|
||||||
|
|
||||||
if "Denied" in manifest and self.source == "DSNP":
|
if "Denied" in manifest and self.source == "DSNP":
|
||||||
#DSNP sometimes gives errors with proxy. W/O headers also works. Sometimes it gives manifest after retrying. Dunno what triggers error. No geofencing for the segmenets themselves.
|
#DSNP sometimes gives errors with proxy. W/O headers also works. Sometimes it gives manifest after retrying. Dunno what triggers error. No geofencing for the segmenets themselves.
|
||||||
manifest = session.get(as_list(self.url)[0], proxies={"all": proxy} if proxy else None).text
|
manifest = (session or requests).get(as_list(self.url)[0], proxies={"all": proxy} if proxy else None).text
|
||||||
if "Denied" in manifest:
|
if "Denied" in manifest:
|
||||||
manifest = session.get(as_list(self.url)[0]).text
|
manifest = (session or requests).get(as_list(self.url)[0]).text
|
||||||
master = m3u8.loads(
|
master = m3u8.loads(
|
||||||
manifest,
|
manifest,
|
||||||
uri=as_list(self.url)[0]
|
uri=as_list(self.url)[0]
|
||||||
@ -771,7 +772,7 @@ class TextTrack(Track):
|
|||||||
return pycaption.SRTWriter().write(TextTrack.parse(data, codec))
|
return pycaption.SRTWriter().write(TextTrack.parse(data, codec))
|
||||||
|
|
||||||
|
|
||||||
def download(self, out, name=None, headers=None, proxy=None):
|
def download(self, out, name=None, headers=None, proxy=None, session=None):
|
||||||
save_path = super().download(out, name, headers, proxy)
|
save_path = super().download(out, name, headers, proxy)
|
||||||
if self.codec.lower() == "ass":
|
if self.codec.lower() == "ass":
|
||||||
return save_path # Return the .ass file as-is without any conversion
|
return save_path # Return the .ass file as-is without any conversion
|
||||||
|
|||||||
@ -24,7 +24,7 @@ cdm_api:
|
|||||||
credentials:
|
credentials:
|
||||||
iTunes: 'username:password'
|
iTunes: 'username:password'
|
||||||
Hotstar: 'username:password'
|
Hotstar: 'username:password'
|
||||||
DisneyPlus: 'tjp4252@gmail.com:Tjcooke@121382'
|
DisneyPlus: 'username:password'
|
||||||
|
|
||||||
directories:
|
directories:
|
||||||
temp: ''
|
temp: ''
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user