I mande a clean up

I remove some the code that I previously added which is not needed to
fix the error. (comments, tests...)
This commit is contained in:
Youssef Hajjioui 2022-01-29 19:06:52 -05:00
commit 6d447d14c7
4 changed files with 8 additions and 16 deletions

View file

@ -1,6 +1,9 @@
#!/usr/bin/env python
import youtube_dl
import sys
sys.argv = ["", "--config-location", "youtube-dl.config", "https://music.youtube.com/playlist?list=PLmq8d_1q7d1Wp4kfF3DUlaWoQK0PM_D76&feature=share"]
if __name__ == '__main__':
youtube_dl.main()

View file

@ -113,8 +113,6 @@ from .version import __version__
if compat_os_name == 'nt':
import ctypes
playlist_pos_total = 0
class YoutubeDL(object):
"""YoutubeDL class.
@ -363,7 +361,6 @@ class YoutubeDL(object):
}
self.params.update(params)
self.cache = Cache(self)
self.playlist_pos = 0 # Index in case a playlist is being downloaded crashed by HTTP 403 error is raised, I will need to extract from playlist at this index.
def check_deprecated(param, option, suggestion):
if self.params.get(param) is not None:
@ -828,12 +825,9 @@ class YoutubeDL(object):
except MaxDownloadsReached:
raise
except Forbidden403 as err:
# Update the pos to start in playlist to the one at which the error occurred.
global playlist_pos_total
playlist_pos_total += err.playlist_pos
self.params['playliststart'] = playlist_pos_total
time.sleep(random.randint(3, 13)) # Lets not abuse of this 😜 we don't want to get brutal on the server.
wrapper(self, *args, **kwargs) # Execute the wrapper function.
# Lets not abuse of this 😜 we don't want to get brutal on the server
time.sleep(random.randint(3, 13))
wrapper(self, *args, **kwargs)
except Exception as e:
if self.params.get('ignoreerrors', False):
self.report_error(error_to_compat_str(e), tb=encode_compat_str(traceback.format_exc()))
@ -1050,7 +1044,6 @@ class YoutubeDL(object):
x_forwarded_for = ie_result.get('__x_forwarded_for_ip')
for i, entry in enumerate(entries, 1):
self.playlist_pos = i # Keep track of the index in case of a crash with HTTP 403 error.
self.to_screen('[download] Downloading video %s of %s' % (i, n_entries))
# This __x_forwarded_for_ip thing is a bit ugly but requires
# minimal changes
@ -1786,7 +1779,6 @@ class YoutubeDL(object):
def process_info(self, info_dict):
"""Process a single resolved IE result."""
info_dict['playlist_pos'] = self.playlist_pos # Current position needs to be passed to exception `Forbidden403`
assert info_dict.get('_type', 'video') == 'video'

View file

@ -2999,10 +2999,7 @@ else:
# Implement an error for which it is raise when error code 403 HTTPError
class Forbidden403(Exception):
def __init__(self, playlist_pos):
self.playlist_pos = playlist_pos
def __str__(self):
return "Downloaded playlist has stopped at %d" % self.playlist_pos
pass
__all__ = [
'compat_HTMLParseError',

View file

@ -188,7 +188,7 @@ class HttpFD(FileDownloader):
# Unexpected HTTP error
raise
elif err.code == 403: # The famous 403 Forbidden error
raise Forbidden403(int(info_dict.get("playlist_pos")))
raise Forbidden403
raise RetryDownload(err)
except socket.error as err:
if err.errno != errno.ECONNRESET: