package Ġcom . andre aci oc care l li . music downloader . extensions Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ Ċ /** Ċ Ġ* Ġ ĠDesign ed Ġand Ġdeveloped Ġby ĠAnd rea ĠC ioc care l li Ċ Ġ*/ Ċ Ċ fun ĠString . to Uri (): ĠUri Ġ= ĠUri . parse ( this ) Ċ fun ĠString . to Y outube Url (): ĠString Ġ= Ġ" https :// www . youtube . com / watch ? v =$ this " Ċ Ċ val ĠCharSequence . is Url : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġthis . startsWith (" http :// ") Ġ|| Ġthis . startsWith (" https :// ") Ġ|| Ġthis . contains (" youtu . be ") Ġ|| Ġthis . contains (" youtube . com ") Ċ Ċ val ĠCharSequence . is Y outube Url : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġ( this . startsWith (" http :// ") Ġ|| Ġthis . startsWith (" https :// ")) Ġ&& Ġ( this . contains (" youtu . be ") Ġ|| Ġthis . contains (" youtube . com ")) ĊĊ Ċ fun ĠString . sanitize Url () Ġ= Ġreplace (" \"", Ġ"") ĊĠĠĠĠĠĠĠ Ġ. replace (" \"", Ġ"") ĊĠĠĠĠĠĠĠ Ġ. replace ("\\ /", Ġ"/") Ċ Ċ fun ĠString . rename If Equal ( pattern : ĠString , Ġrenaming : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ== Ġpattern ) Ġreplace ( this , Ġrenaming ) ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun ĠCharSequence . to Editable () Ġ= ĠSp ann able StringBuilder ( this ) Ċ Ċ fun ĠString . attempt Extract ing Video Id (): ĠString Ġ{ ĊĠĠĠ Ġif Ġ( this . contains (" ? v =" )) Ġreturn Ġsplit (" ? v =" )[ 1 ]. split ("& ")[ 0 ] ĊĠĠĠ Ġelse Ġthrow ĠIllegalStateException (" Invalid ĠYouTube Ġvideo Ġid : Ġ$ this ") Ċ } Ċ Ċ fun ĠString . break H tm () Ġ= Ġapply Ġ{ ĊĠĠĠ Ġrename If Equal (".", Ġ" _. ") ĊĠĠĠ Ġrename If Equal (" .. ", Ġ"__ .") ĊĠĠĠ Ġremove Prefix (".") ĊĊĠĠĠ Ġreplace ("/", Ġ"") ĊĠĠĠ Ġreplace (" &# 1 8 0 ;", Ġ" Â ´ ") ĊĠĠĠ Ġreplace (" &# 3 9 ;", Ġ"' ") ĊĠĠĠ Ġreplace ("& amp ;", Ġ"& ") ĊĠĠĠ Ġreplace ("& lt ;", Ġ"< ") ĊĠĠĠ Ġreplace ("& gt ;", Ġ"> ") ĊĠĠĠ Ġreplace ("& quot ;", Ġ"\" ") ĊĠĠĠ Ġreplace ("& apos ;", Ġ"' ") Ċ Ċ } Ċ Ċ fun ĠString . break Html (): ĠString Ġ{ ĊĠĠĠ Ġvar Ġstr Ġ= Ġthis ĊĊĠĠĠ Ġ// ĠS uffix es ĊĠĠĠ Ġstr Ġ= Ġstr . replace ("/", Ġ"") ĊĠĠĠ Ġstr Ġ= Ġstr . remove Suffix (". mp 4 ") ĊĠĠĠ Ġstr Ġ= Ġstr . remove Suffix (". mp 3 ") ĊĊĠĠĠ Ġ// ĠPrefix es ĊĠĠĠ Ġstr Ġ= Ġstr . rename If Equal (".", Ġ" _. ") ĊĠĠĠ Ġstr Ġ= Ġstr . rename If Equal (" .. ", Ġ"__ .") ĊĠĠĠ Ġstr Ġ= Ġstr . remove Prefix (".") ĊĊĠĠĠ Ġ// ĠAcc ents ĊĠĠĠ Ġval Ġreplace List Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠ Ġ/* " &# 1 9 2 ;" Ġto Ġ" Ã Ģ ", Ġ" &# 1 9 3 ;" Ġto Ġ" Ãģ ", Ġ" &# 1 9 4 ;" Ġto Ġ" Ã Ĥ ", Ġ" &# 1 9 5 ;" Ġto Ġ" Ãĥ ", ĊĠĠĠĠĠĠĠ Ġ" &# 1 9 6 ;" Ġto Ġ" Ã Ħ ", Ġ" &# 1 9 7 ;" Ġto Ġ" Ã ħ ", Ġ" &# 1 9 8 ;" Ġto Ġ" Ã Ĩ ", Ġ" &# 1 9 9 ;" Ġto Ġ" Ãĩ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 0 0 ;" Ġto Ġ" Ã Ī ", Ġ" &# 2 0 1 ;" Ġto Ġ" Ãī ", Ġ" &# 2 0 2 ;" Ġto Ġ" Ã Ĭ ", Ġ" &# 2 0 3 ;" Ġto Ġ" Ã ĭ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 0 4 ;" Ġto Ġ" Ã Į ", Ġ" &# 2 0 5 ;" Ġto Ġ" Ãį ", Ġ" &# 2 0 6 ;" Ġto Ġ" Ã İ ", Ġ" &# 2 0 7 ;" Ġto Ġ" Ã ı ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 0 8 ;" Ġto Ġ" Ã Ĳ ", Ġ" &# 2 0 9 ;" Ġto Ġ" Ã ĳ ", Ġ" &# 2 1 0 ;" Ġto Ġ" Ã Ĵ ", Ġ" &# 2 1 1 ;" Ġto Ġ" Ãĵ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 1 2 ;" Ġto Ġ" ÃĶ ", Ġ" &# 2 1 3 ;" Ġto Ġ" Ã ķ ", Ġ" &# 2 1 4 ;" Ġto Ġ" Ãĸ ", Ġ" &# 2 1 6 ;" Ġto Ġ" Ã ĺ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 1 7 ;" Ġto Ġ" Ã Ļ ", Ġ" &# 2 1 8 ;" Ġto Ġ" Ã ļ ", Ġ" &# 2 1 9 ;" Ġto Ġ" Ã Ľ ", Ġ" &# 2 1 0 ;" Ġto Ġ" Ãľ ", ĊĊĠĠĠĠĠĠĠ Ġ" &# 2 2 4 ;" Ġto Ġ" Ãł ", Ġ" &# 2 2 5 ;" Ġto Ġ" Ã¡ ", Ġ" &# 2 2 6 ;" Ġto Ġ" Ã¢ ", Ġ" &# 2 2 7 ;" Ġto Ġ" Ã£ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 2 8 ;" Ġto Ġ" Ã¤ ", Ġ" &# 2 2 9 ;" Ġto Ġ" Ã¥ ", Ġ" &# 2 3 0 ;" Ġto Ġ" Ã¦ ", Ġ" &# 2 3 1 ;" Ġto Ġ" Ã§ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 3 2 ;" Ġto Ġ" Ã¨ ", Ġ" &# 2 3 3 ;" Ġto Ġ" Ã© ", Ġ" &# 2 3 4 ;" Ġto Ġ" Ãª ", Ġ" &# 2 3 5 ;" Ġto Ġ" Ã« ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 3 6 ;" Ġto Ġ" Ã¬ ", Ġ" &# 2 3 7 ;" Ġto Ġ" ÃŃ ", Ġ" &# 2 3 8 ;" Ġto Ġ" Ã® ", Ġ" &# 2 3 9 ;" Ġto Ġ" Ã¯ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 4 0 ;" Ġto Ġ" Ã° ", Ġ" &# 2 4 1 ;" Ġto Ġ" Ã± ", Ġ" &# 2 4 2 ;" Ġto Ġ" Ã² ", Ġ" &# 2 4 3 ;" Ġto Ġ" Ã³ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 4 4 ;" Ġto Ġ" Ã´ ", Ġ" &# 2 4 5 ;" Ġto Ġ" Ãµ ", Ġ" &# 2 4 6 ;" Ġto Ġ" Ã¶ ", Ġ" &# 2 4 8 ;" Ġto Ġ" Ã¸ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 4 9 ;" Ġto Ġ" Ã¹ ", Ġ" &# 2 5 0 ;" Ġto Ġ" Ãº ", Ġ" &# 2 5 1 ;" Ġto Ġ" Ã » ", Ġ" &# 2 5 2 ;" Ġto Ġ" Ã¼ ", ĊĠĠĠĠĠĠĠ Ġ" &# 2 5 3 ;" Ġto Ġ" Ã½ ", Ġ" &# 2 5 4 ;" Ġto Ġ" Ã ¾ ", Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġ" &# 1 8 0 ;" Ġto Ġ" Â ´ ", Ġ" &# 3 9 ;" Ġto Ġ"'", ĊĠĠĠĠĠĠĠ Ġ"& amp ;" Ġto Ġ"& ", Ġ"& lt ;" Ġto Ġ"< ", Ġ"& gt ;" Ġto Ġ"> ", ĊĠĠĠĠĠĠĠ Ġ"& quot ;" Ġto Ġ"\" ", Ġ"& apos ;" Ġto Ġ"'" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġreplace List . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġstr Ġ= Ġstr . replace ( it . key , Ġit . value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġstr Ċ }