single working
This commit is contained in:
parent
8538887029
commit
3708fde3ef
3 changed files with 35 additions and 1 deletions
|
|
@ -71,6 +71,11 @@ class AudioExtractPlugin(Plugin[AudioExtractOptions]):
|
|||
plugin_options_type = AudioExtractOptions
|
||||
|
||||
def ytdl_options(self) -> Optional[Dict]:
|
||||
"""
|
||||
Returns
|
||||
-------
|
||||
YTDL options for extracting audio
|
||||
"""
|
||||
ytdl_options_builder = YTDLOptionsBuilder()
|
||||
|
||||
postprocessor_dict = {
|
||||
|
|
@ -88,11 +93,25 @@ class AudioExtractPlugin(Plugin[AudioExtractOptions]):
|
|||
).to_dict()
|
||||
|
||||
def modify_entry(self, entry: Entry) -> Optional[Entry]:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
entry
|
||||
Entry with extracted audio
|
||||
|
||||
Returns
|
||||
-------
|
||||
Entry with updated 'ext' source variable
|
||||
"""
|
||||
new_ext = CODEC_TYPES_EXTENSION_MAPPING[self.plugin_options.codec]
|
||||
extracted_audio_file = entry.get_download_file_path().removesuffix(entry.ext) + new_ext
|
||||
if not self.is_dry_run:
|
||||
if not os.path.isfile(extracted_audio_file):
|
||||
raise FileNotDownloadedException("Failed to find the extracted audio file")
|
||||
|
||||
# TODO: create entry function to update kwargs
|
||||
# pylint: disable=protected-access
|
||||
entry._kwargs["ext"] = new_ext
|
||||
# pylint: enable=protected-access
|
||||
|
||||
return entry
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ from typing import TypeVar
|
|||
from ytdl_sub.config.preset import Preset
|
||||
from ytdl_sub.downloaders.downloader import Downloader
|
||||
from ytdl_sub.downloaders.ytdl_options_builder import YTDLOptionsBuilder
|
||||
from ytdl_sub.plugins.audio_extract import AudioExtractPlugin
|
||||
from ytdl_sub.plugins.plugin import Plugin
|
||||
from ytdl_sub.plugins.subtitles import SubtitleOptions
|
||||
from ytdl_sub.plugins.subtitles import SubtitlesPlugin
|
||||
|
|
@ -81,6 +82,13 @@ class SubscriptionYTDLOptions:
|
|||
|
||||
return ytdl_options
|
||||
|
||||
@property
|
||||
def _audio_extract_options(self) -> Dict:
|
||||
if not (audio_extract_plugin := self._get_plugin(AudioExtractPlugin)):
|
||||
return {}
|
||||
|
||||
return audio_extract_plugin.ytdl_options()
|
||||
|
||||
@property
|
||||
def _subtitle_options(self) -> Dict:
|
||||
if not (subtitle_plugin := self._get_plugin(SubtitlesPlugin)):
|
||||
|
|
@ -90,6 +98,7 @@ class SubscriptionYTDLOptions:
|
|||
# TODO: warn here
|
||||
return {}
|
||||
|
||||
# TODO: Use subtitle ytdl_options
|
||||
builder = YTDLOptionsBuilder().add({"writesubtitles": True})
|
||||
subtitle_options: SubtitleOptions = subtitle_plugin.plugin_options
|
||||
|
||||
|
|
@ -141,7 +150,10 @@ class SubscriptionYTDLOptions:
|
|||
)
|
||||
else:
|
||||
ytdl_options_builder.add(
|
||||
self._output_options, self._subtitle_options, self._user_ytdl_options
|
||||
self._output_options,
|
||||
self._subtitle_options,
|
||||
self._audio_extract_options,
|
||||
self._user_ytdl_options,
|
||||
)
|
||||
|
||||
return ytdl_options_builder
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"YouTube Rewind 2019: For the Record | #YouTubeRewind.mp3": "2b44b454ecc58f3600731a44e0c61f1b"
|
||||
}
|
||||
Loading…
Reference in a new issue