diff --git a/main.go b/main.go index 73d1a4a..e8045f9 100644 --- a/main.go +++ b/main.go @@ -1046,8 +1046,11 @@ func conventSyllableTTMLToLRC(ttml string) (string, error) { } divs := parsedTTML.FindElement("tt").FindElement("body").FindElements("div") //get trans - if len(parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata").FindElement("translations").FindElements("translation")) > 0 { - divs = parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata").FindElement("translations").FindElements("translation") + iTunesMetadata := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata") + if len(iTunesMetadata.FindElements("translations")) > 0 { + if len(iTunesMetadata.FindElement("translations").FindElements("translation")) > 0 { + divs = iTunesMetadata.FindElement("translations").FindElements("translation") + } } for _, div := range divs { @@ -1151,10 +1154,14 @@ func conventTTMLToLRC(ttml string) (string, error) { return "", err } var text string - if len(parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata").FindElement("translations").FindElements("translation")) > 0 { - xpath := fmt.Sprintf("//text[@for='%s']", lyric.SelectAttr("itunes:key").Value) - trans := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata").FindElement("translations").FindElement("translation").FindElement(xpath) - lyric = trans + //GET trans + iTunesMetadata := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata") + if len(iTunesMetadata.FindElements("translations")) > 0 { + if len(iTunesMetadata.FindElement("translations").FindElements("translation")) > 0 { + xpath := fmt.Sprintf("//text[@for='%s']", lyric.SelectAttr("itunes:key").Value) + trans := iTunesMetadata.FindElement("translations").FindElement("translation").FindElement(xpath) + lyric = trans + } } if lyric.SelectAttr("text") == nil { var textTmp []string