Remove youtube_dl_function argument, but add configurable extension.
In order to improve the configurability of the queuefile creation, which I can't really do when relegating that to a possibly third-party function with only the video id as argument, I've decided I want to go all in on the queuefile as the output of ycdl. Actually downloading the video is best left to another tool designed for the task. Any third-party downloading function would always introduce the possibility of network errors and crashes, ruining the call stack of ycdldb.download_video for no good reason.
This commit is contained in:
		
							parent
							
								
									bd27a910e1
								
							
						
					
					
						commit
						dd99ddc10f
					
				
					 2 changed files with 8 additions and 18 deletions
				
			
		|  | @ -54,4 +54,5 @@ VIDEO_STATES = ['ignored', 'pending', 'downloaded'] | ||||||
| 
 | 
 | ||||||
| DEFAULT_CONFIGURATION = { | DEFAULT_CONFIGURATION = { | ||||||
|     'download_directory': '.', |     'download_directory': '.', | ||||||
|  |     'queuefile_extension': 'ytqueue', | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -15,10 +15,6 @@ from voussoirkit import pathclass | ||||||
| from voussoirkit import sqlhelpers | from voussoirkit import sqlhelpers | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def YOUTUBE_DL_COMMAND(video_id): |  | ||||||
|     path = f'{video_id}.ytqueue' |  | ||||||
|     open(path, 'w') |  | ||||||
| 
 |  | ||||||
| logging.basicConfig() | logging.basicConfig() | ||||||
| logging.getLogger('googleapiclient.discovery').setLevel(logging.WARNING) | logging.getLogger('googleapiclient.discovery').setLevel(logging.WARNING) | ||||||
| logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(logging.WARNING) | logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(logging.WARNING) | ||||||
|  | @ -242,8 +238,8 @@ class YCDLDBVideoMixin: | ||||||
| 
 | 
 | ||||||
|     def download_video(self, video, commit=True, force=False): |     def download_video(self, video, commit=True, force=False): | ||||||
|         ''' |         ''' | ||||||
|         Execute the `YOUTUBE_DL_COMMAND`, within the channel's associated |         Create the queuefile within the channel's associated directory, or | ||||||
|         directory if applicable. |         the default directory from the config file. | ||||||
|         ''' |         ''' | ||||||
|         if isinstance(video, ytapi.Video): |         if isinstance(video, ytapi.Video): | ||||||
|             video_id = video.id |             video_id = video.id | ||||||
|  | @ -262,12 +258,12 @@ class YCDLDBVideoMixin: | ||||||
|         except exceptions.NoSuchChannel: |         except exceptions.NoSuchChannel: | ||||||
|             download_directory = self.config['download_directory'] |             download_directory = self.config['download_directory'] | ||||||
| 
 | 
 | ||||||
|         os.makedirs(download_directory, exist_ok=True) |         download_directory = pathclass.Path(download_directory) | ||||||
|  |         os.makedirs(download_directory.absolute_path, exist_ok=True) | ||||||
| 
 | 
 | ||||||
|         current_directory = os.getcwd() |         extension = self.config['queuefile_extension'] | ||||||
|         os.chdir(download_directory) |         queuefile = download_directory.with_child(video_id).replace_extension(extension) | ||||||
|         self.youtube_dl_function(video_id) |         open(queuefile.absolute_path, 'a').close() | ||||||
|         os.chdir(current_directory) |  | ||||||
| 
 | 
 | ||||||
|         video.mark_state('downloaded', commit=False) |         video.mark_state('downloaded', commit=False) | ||||||
| 
 | 
 | ||||||
|  | @ -371,7 +367,6 @@ class YCDLDB( | ||||||
|             self, |             self, | ||||||
|             youtube, |             youtube, | ||||||
|             data_directory=None, |             data_directory=None, | ||||||
|             youtube_dl_function=None, |  | ||||||
|             skip_version_check=False, |             skip_version_check=False, | ||||||
|         ): |         ): | ||||||
|         super().__init__() |         super().__init__() | ||||||
|  | @ -399,12 +394,6 @@ class YCDLDB( | ||||||
|         else: |         else: | ||||||
|             self._first_time_setup() |             self._first_time_setup() | ||||||
| 
 | 
 | ||||||
|         # DOWNLOAD COMMAND |  | ||||||
|         if youtube_dl_function: |  | ||||||
|             self.youtube_dl_function = youtube_dl_function |  | ||||||
|         else: |  | ||||||
|             self.youtube_dl_function = YOUTUBE_DL_COMMAND |  | ||||||
| 
 |  | ||||||
|         # CONFIG |         # CONFIG | ||||||
|         self.config_filepath = self.data_directory.with_child(constants.DEFAULT_CONFIGNAME) |         self.config_filepath = self.data_directory.with_child(constants.DEFAULT_CONFIGNAME) | ||||||
|         self.load_config() |         self.load_config() | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue