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