embed subtitles
This commit is contained in:
parent
f4c78e32f7
commit
cf3b3891eb
|
|
@ -44,6 +44,7 @@ class AppConfigDownloadsSerializer(
|
|||
format = serializers.CharField(allow_null=True)
|
||||
format_sort = serializers.CharField(allow_null=True)
|
||||
add_metadata = serializers.BooleanField()
|
||||
add_subtitles = serializers.BooleanField()
|
||||
add_thumbnail = serializers.BooleanField()
|
||||
subtitle = serializers.CharField(allow_null=True)
|
||||
subtitle_source = serializers.ChoiceField(
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ class DownloadsConfigType(TypedDict):
|
|||
format: str | None
|
||||
format_sort: str | None
|
||||
add_metadata: bool
|
||||
add_subtitles: bool
|
||||
add_thumbnail: bool
|
||||
subtitle: str | None
|
||||
subtitle_source: Literal["user", "auto"] | None
|
||||
|
|
@ -85,6 +86,7 @@ class AppConfig:
|
|||
"format": None,
|
||||
"format_sort": None,
|
||||
"add_metadata": False,
|
||||
"add_subtitles": False,
|
||||
"add_thumbnail": False,
|
||||
"subtitle": None,
|
||||
"subtitle_source": None,
|
||||
|
|
|
|||
|
|
@ -161,9 +161,11 @@ class VideoDownloader(DownloaderBase):
|
|||
"progress_hooks": [self._progress_hook],
|
||||
"noprogress": True,
|
||||
"continuedl": True,
|
||||
"writesubtitles": False,
|
||||
"writethumbnail": False,
|
||||
"noplaylist": True,
|
||||
"color": "no_color",
|
||||
"subtitleslangs": [],
|
||||
}
|
||||
|
||||
def _build_obs_user(self):
|
||||
|
|
@ -216,6 +218,16 @@ class VideoDownloader(DownloaderBase):
|
|||
)
|
||||
self.obs["writethumbnail"] = True
|
||||
|
||||
if self.config["downloads"]["add_subtitles"]:
|
||||
postprocessors.append(
|
||||
{
|
||||
"key": "FFmpegEmbedSubtitle",
|
||||
"already_have_subtitle": True,
|
||||
}
|
||||
)
|
||||
self.obs["subtitleslangs"] = [self.config["downloads"]["subtitle"]]
|
||||
self.obs["writesubtitles"] = True
|
||||
|
||||
self.obs["postprocessors"] = postprocessors
|
||||
|
||||
def _set_overwrites(self, obs: dict, channel_id: str) -> None:
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ export type AppSettingsConfigType = {
|
|||
format: string | null;
|
||||
format_sort: string | null;
|
||||
add_metadata: boolean;
|
||||
add_subtitles: boolean;
|
||||
add_thumbnail: boolean;
|
||||
subtitle: string | null;
|
||||
subtitle_source: string | null;
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ const SettingsApplication = () => {
|
|||
const [downloadsFormatSort, setDownloadsFormatSort] = useState<string | null>(null);
|
||||
const [downloadsExtractorLang, setDownloadsExtractorLang] = useState<string | null>(null);
|
||||
const [embedMetadata, setEmbedMetadata] = useState(false);
|
||||
const [embedSubtitles, setEmbedSubtitles] = useState(false);
|
||||
const [embedThumbnail, setEmbedThumbnail] = useState(false);
|
||||
|
||||
// Subtitles
|
||||
|
|
@ -115,6 +116,7 @@ const SettingsApplication = () => {
|
|||
setDownloadsFormatSort(appSettingsConfigData?.downloads.format_sort || null);
|
||||
setDownloadsExtractorLang(appSettingsConfigData?.downloads.extractor_lang || null);
|
||||
setEmbedMetadata(appSettingsConfigData?.downloads.add_metadata || false);
|
||||
setEmbedSubtitles(appSettingsConfigData?.downloads.add_subtitles || false);
|
||||
setEmbedThumbnail(appSettingsConfigData?.downloads.add_thumbnail || false);
|
||||
|
||||
// Subtitles
|
||||
|
|
@ -547,6 +549,9 @@ const SettingsApplication = () => {
|
|||
Indexing subtitles add the fulltext to the ES index. Not recommended on low
|
||||
end hardware.
|
||||
</li>
|
||||
<li>
|
||||
Embed subtitles adds the subtitles to the mp4 file.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
)}
|
||||
|
|
@ -605,6 +610,16 @@ const SettingsApplication = () => {
|
|||
updateCallback={handleUpdateConfig}
|
||||
/>
|
||||
</div>
|
||||
<div className="settings-box-wrapper">
|
||||
<div>
|
||||
<p>Embed Subtitles</p>
|
||||
</div>
|
||||
<ToggleConfig
|
||||
name="downloads.add_subtitles"
|
||||
value={embedSubtitles}
|
||||
updateCallback={handleUpdateConfig}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ export const useAppSettingsStore = create<AppSettingsState>(set => ({
|
|||
format: null,
|
||||
format_sort: null,
|
||||
add_metadata: false,
|
||||
add_subtitles: false,
|
||||
add_thumbnail: false,
|
||||
subtitle: null,
|
||||
subtitle_source: null,
|
||||
|
|
|
|||
Loading…
Reference in New Issue