mirror of
https://github.com/anatolykopyl/youtube-cdl.git
synced 2026-03-26 04:45:11 +00:00
🎨 autopep8
This commit is contained in:
@@ -34,6 +34,7 @@ https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
|
||||
""".format(os.path.abspath(os.path.join(os.path.dirname(__file__),
|
||||
CLIENT_SECRETS_FILE)))
|
||||
|
||||
|
||||
def retrieve_youtube_subscriptions():
|
||||
# In order to retrieve the YouTube subscriptions for the current user,
|
||||
# the user needs to authenticate and authorize access to their YouTube
|
||||
@@ -45,14 +46,16 @@ def retrieve_youtube_subscriptions():
|
||||
all_channels = []
|
||||
next_page_token = ''
|
||||
|
||||
subscriptions_response = youtube_subscriptions(youtube_authorization, next_page_token)
|
||||
subscriptions_response = youtube_subscriptions(
|
||||
youtube_authorization, next_page_token)
|
||||
total_results = subscriptions_response['pageInfo']['totalResults']
|
||||
results_per_page = subscriptions_response['pageInfo']['resultsPerPage']
|
||||
total_iterations = math.ceil(total_results / results_per_page)
|
||||
|
||||
for _ in track(range(total_iterations), description='Fetching subscriptions'):
|
||||
# retrieve the YouTube subscriptions for the authorized user
|
||||
subscriptions_response = youtube_subscriptions(youtube_authorization, next_page_token)
|
||||
subscriptions_response = youtube_subscriptions(
|
||||
youtube_authorization, next_page_token)
|
||||
next_page_token = get_next_page(subscriptions_response)
|
||||
# extract the required subscription information
|
||||
channels = parse_youtube_subscriptions(subscriptions_response)
|
||||
@@ -62,7 +65,8 @@ def retrieve_youtube_subscriptions():
|
||||
return all_channels
|
||||
|
||||
except HttpError as err:
|
||||
print("An HTTP error {} occurred:\n{}".format(err.resp.status, err.content))
|
||||
print("An HTTP error {} occurred:\n{}".format(
|
||||
err.resp.status, err.content))
|
||||
|
||||
|
||||
def get_authenticated_service():
|
||||
@@ -92,8 +96,6 @@ def get_authenticated_service():
|
||||
http=credentials.authorize(httplib2.Http()))
|
||||
|
||||
|
||||
# Call youtube.subscriptions.list method
|
||||
# to list the channels subscribed to.
|
||||
def youtube_subscriptions(youtube, next_page_token):
|
||||
subscriptions_response = youtube.subscriptions().list(
|
||||
part='snippet',
|
||||
@@ -120,8 +122,6 @@ def parse_youtube_subscriptions(subscriptions_response):
|
||||
# Add each result to the appropriate list
|
||||
for subscriptions_result in subscriptions_response.get("items", []):
|
||||
if subscriptions_result["snippet"]["resourceId"]["kind"] == "youtube#channel":
|
||||
#channels.append("{} ({})".format(subscriptions_result["snippet"]["title"],
|
||||
# subscriptions_result["snippet"]["resourceId"]["channelId"]))
|
||||
channels.append({
|
||||
'title': subscriptions_result["snippet"]["title"],
|
||||
'id': subscriptions_result["snippet"]["resourceId"]["channelId"]
|
||||
|
||||
17
main.py
17
main.py
@@ -11,6 +11,7 @@ from print_logo import print_logo
|
||||
|
||||
if platform.system() == 'Windows':
|
||||
import msvcrt
|
||||
|
||||
def uni_getch():
|
||||
char = str(msvcrt.getch())
|
||||
if char == "b'y'":
|
||||
@@ -21,6 +22,7 @@ if platform.system() == 'Windows':
|
||||
return None
|
||||
else:
|
||||
from getch import getch
|
||||
|
||||
def uni_getch():
|
||||
char = getch()
|
||||
if char == "y":
|
||||
@@ -58,13 +60,15 @@ if json_input:
|
||||
else:
|
||||
all_channels = retrieve_youtube_subscriptions()
|
||||
curr_channel = 0
|
||||
c.print(f'You will be prompted if you want to download a channel for each of your subscriptions. (total {len(all_channels)})', style='bold')
|
||||
c.print(
|
||||
f'You will be prompted if you want to download a channel for each of your subscriptions. (total {len(all_channels)})', style='bold')
|
||||
for ch in all_channels:
|
||||
if download_all:
|
||||
ch['download'] = True
|
||||
else:
|
||||
curr_channel += 1
|
||||
c.print(f'[dim][{curr_channel}/{len(all_channels)}]:[/dim] {ch["title"]} [cyan]\[y/n]')
|
||||
c.print(
|
||||
f'[dim][{curr_channel}/{len(all_channels)}]:[/dim] {ch["title"]} [cyan]\[y/n]')
|
||||
while True:
|
||||
key = uni_getch()
|
||||
if key == True:
|
||||
@@ -84,7 +88,10 @@ else:
|
||||
|
||||
for ch in all_channels:
|
||||
if ch['download']:
|
||||
ydl_opts['outtmpl'] = '{}/{}/%(title)s.%(ext)s'.format(output_dir, ch['title'])
|
||||
ydl_opts['outtmpl'] = '{}/{}/%(title)s.%(ext)s'.format(
|
||||
output_dir, ch['title'])
|
||||
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
|
||||
Path(os.path.join(output_dir, ch['title'])).mkdir(parents=True, exist_ok=True)
|
||||
ydl.download(['https://www.youtube.com/channel/{}'.format(ch["id"])])
|
||||
Path(os.path.join(output_dir, ch['title'])).mkdir(
|
||||
parents=True, exist_ok=True)
|
||||
ydl.download(
|
||||
['https://www.youtube.com/channel/{}'.format(ch["id"])])
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from rich.console import Console
|
||||
c = Console()
|
||||
|
||||
|
||||
def print_logo():
|
||||
c.print("""\
|
||||
__ ______ __ __________ ______ ______ __________ __
|
||||
|
||||
Reference in New Issue
Block a user