mirror of
				https://github.com/devine-dl/devine.git
				synced 2025-11-04 03:44:49 +00:00 
			
		
		
		
	feat(Subtitle): Convert from fTTML->TTML & fVTT->WebVTT post-download
This commit is contained in:
		
							parent
							
								
									cae47017dc
								
							
						
					
					
						commit
						77976c7e74
					
				@ -4,11 +4,13 @@ import re
 | 
			
		||||
import subprocess
 | 
			
		||||
from collections import defaultdict
 | 
			
		||||
from enum import Enum
 | 
			
		||||
from functools import partial
 | 
			
		||||
from io import BytesIO
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from typing import Any, Callable, Iterable, Optional
 | 
			
		||||
 | 
			
		||||
import pycaption
 | 
			
		||||
import requests
 | 
			
		||||
from construct import Container
 | 
			
		||||
from pycaption import Caption, CaptionList, CaptionNode, WebVTTReader
 | 
			
		||||
from pycaption.geometry import Layout
 | 
			
		||||
@ -147,6 +149,21 @@ class Subtitle(Track):
 | 
			
		||||
            track_name += flag
 | 
			
		||||
        return track_name or None
 | 
			
		||||
 | 
			
		||||
    def download(
 | 
			
		||||
        self,
 | 
			
		||||
        session: requests.Session,
 | 
			
		||||
        prepare_drm: partial,
 | 
			
		||||
        progress: Optional[partial] = None
 | 
			
		||||
    ):
 | 
			
		||||
        super().download(session, prepare_drm, progress)
 | 
			
		||||
        if not self.path:
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        if self.codec == Subtitle.Codec.fTTML:
 | 
			
		||||
            self.convert(Subtitle.Codec.TimedTextMarkupLang)
 | 
			
		||||
        elif self.codec == Subtitle.Codec.fVTT:
 | 
			
		||||
            self.convert(Subtitle.Codec.WebVTT)
 | 
			
		||||
 | 
			
		||||
    def convert(self, codec: Subtitle.Codec) -> Path:
 | 
			
		||||
        """
 | 
			
		||||
        Convert this Subtitle to another Format.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user