mirror of
				https://github.com/devine-dl/devine.git
				synced 2025-11-04 03:44:49 +00:00 
			
		
		
		
	Add remove_multi_lang_srt_header() method to Subtitle class
				
					
				
			This commit is contained in:
		
							parent
							
								
									e7e18a4204
								
							
						
					
					
						commit
						53de34da51
					
				@ -418,6 +418,27 @@ class Subtitle(Track):
 | 
			
		||||
            stdout=subprocess.DEVNULL
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def remove_multi_lang_srt_header(self) -> None:
 | 
			
		||||
        """
 | 
			
		||||
        Remove Multi-Language SRT Header from Subtitle.
 | 
			
		||||
 | 
			
		||||
        Sometimes a SubRip (SRT) format Subtitle has a "MULTI-LANGUAGE SRT" line,
 | 
			
		||||
        when it shouldn't. This can cause Subtitle format/syntax errors in some
 | 
			
		||||
        programs including mkvmerge/MKVToolNix.
 | 
			
		||||
 | 
			
		||||
        This should only be used if it truly is a normal SubRip (SRT) subtitle
 | 
			
		||||
        just with this line added by mistake.
 | 
			
		||||
        """
 | 
			
		||||
        if not self.path or not self.path.exists():
 | 
			
		||||
            raise ValueError("You must download the subtitle track first.")
 | 
			
		||||
 | 
			
		||||
        if self.codec != Subtitle.Codec.SubRip:
 | 
			
		||||
            raise ValueError("Only SubRip (SRT) format Subtitles have the 'MULTI-LANGUAGE SRT' header.")
 | 
			
		||||
 | 
			
		||||
        srt_text = self.path.read_text("utf8")
 | 
			
		||||
        fixed_srt_text = srt_text.replace("MULTI-LANGUAGE SRT\n", "")
 | 
			
		||||
        self.path.write_text(fixed_srt_text, "utf8")
 | 
			
		||||
 | 
			
		||||
    def __str__(self) -> str:
 | 
			
		||||
        return " | ".join(filter(bool, [
 | 
			
		||||
            "SUB",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user