aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/model/youload_app.py12
-rw-r--r--src/model/youload_file_chooser.py7
-rw-r--r--src/youload_playlist.py4
3 files changed, 20 insertions, 3 deletions
diff --git a/src/model/youload_app.py b/src/model/youload_app.py
index 9e4d757..b75aee6 100644
--- a/src/model/youload_app.py
+++ b/src/model/youload_app.py
@@ -10,7 +10,7 @@ from kivy.uix.label import Label
from kivy.uix.filechooser import FileChooser
import threading
-
+from pathlib import Path
import pytube
from youload_playlist import YouLoadPlayList
@@ -39,7 +39,10 @@ class YouloadApp(App):
url_and_submit.add_widget(self.submit)
# Download status.
- self.download_status = Label(text="Nothing downloading", size_hint=(0.8, 1.0))
+ self.download_status = Label(text="Nothing downloading", size_hint=(0.4, 1.0))
+
+ # Folder display.
+ self.folder_display = Label(text=str(Path.home()), size_hint=(0.4, 1.0))
# choose folder button.
self.choose_folder_button = Button(text="Choose folder", size_hint=(0.2, 1.0))
@@ -48,6 +51,7 @@ class YouloadApp(App):
# Info line.
info_line = BoxLayout(size_hint=(1.0, 0.1))
info_line.add_widget(self.download_status)
+ info_line.add_widget(self.folder_display)
info_line.add_widget(self.choose_folder_button)
# Info display.
@@ -60,6 +64,7 @@ class YouloadApp(App):
# File chooser.
self.file_chooser = YouloadFileChooser()
+ self.file_chooser.set_app(self)
# Screen layout.
self.screen_layout = FloatLayout()
@@ -83,8 +88,9 @@ class YouloadApp(App):
self.download_status.text = "Error getting playlist"
return
+ playlist.set_download_directory(self.folder_display.text)
playlist.prepare_for_download()
- self.downloads_display.text = f"Downloading {self.url}\n"
+ self.downloads_display.text = f"Downloading to {playlist.folder_name}\n"
# Download each video
for i in range(playlist.video_count):
diff --git a/src/model/youload_file_chooser.py b/src/model/youload_file_chooser.py
index 3f4af66..ab37a2d 100644
--- a/src/model/youload_file_chooser.py
+++ b/src/model/youload_file_chooser.py
@@ -37,10 +37,17 @@ class YouloadFileChooser(Popup):
layout.add_widget(self.file_chooser)
self.add_widget(layout)
+ def set_app(self, app):
+ self.app = app
+
def close_button_cb(self, instance):
+ self.app.folder_display.text = self.get_folder()
self.parent.remove_widget(self)
def uid_path_input(self, instance, value):
if os.path.exists(value):
self.file_chooser.path = value
+ def get_folder(self):
+ return self.file_chooser.path
+
diff --git a/src/youload_playlist.py b/src/youload_playlist.py
index 1d62ee5..803b1c1 100644
--- a/src/youload_playlist.py
+++ b/src/youload_playlist.py
@@ -19,6 +19,10 @@ class YouLoadPlayList:
video_size = video.streams.get_highest_resolution().filesize // 1048576
return f"Title: {video.title}, Size: {video_size} MB"
+ def set_download_directory(self, directory: str) -> None:
+ """Sets where the playlist folder will be downloaded"""
+ self.folder_name = os.path.join(directory, make_alpha_numeric(self.yt_playlist.title))
+
def prepare_for_download(self) -> None:
"""Gets the playlist ready for download. Creates the output folder and that stuff."""
os.mkdir(self.folder_name)