diff --git a/src/N_m3u8DL-RE.Parser/Extractor/MSSExtractor.cs b/src/N_m3u8DL-RE.Parser/Extractor/MSSExtractor.cs index 8a01bce..9fafbde 100644 --- a/src/N_m3u8DL-RE.Parser/Extractor/MSSExtractor.cs +++ b/src/N_m3u8DL-RE.Parser/Extractor/MSSExtractor.cs @@ -64,6 +64,7 @@ namespace N_m3u8DL_RE.Parser.Extractor var ssmElement = xmlDocument.Elements().First(e => e.Name.LocalName == "SmoothStreamingMedia"); var timeScaleStr = ssmElement.Attribute("TimeScale")?.Value ?? "10000000"; var durationStr = ssmElement.Attribute("Duration")?.Value; + var timescale = Convert.ToInt32(timeScaleStr); var isLiveStr = ssmElement.Attribute("IsLive")?.Value; bool isLive = Convert.ToBoolean(isLiveStr ?? "FALSE"); @@ -97,6 +98,8 @@ namespace N_m3u8DL_RE.Parser.Extractor //StartTimeSubstitution = "{start time}" / "{start_time}" var urlPattern = streamIndex.Attribute("Url")?.Value; var language = streamIndex.Attribute("Language")?.Value; + //去除不规范的语言标签 + if (language?.Length != 3) language = null; //所有c节点 var cElements = streamIndex.Elements().Where(e => e.Name.LocalName == "c"); @@ -162,7 +165,6 @@ namespace N_m3u8DL_RE.Parser.Extractor if (_startTimeStr != null) currentTime = Convert.ToInt64(_startTimeStr); var _duration = Convert.ToInt64(_durationStr); - var timescale = Convert.ToInt32(timeScaleStr); var _repeatCount = Convert.ToInt64(_repeatCountStr); if (_repeatCount > 0) {