프로그래밍/Kotlin

[Kotlin/Java] Youtube URL인지 체크, Youtube Video ID 가져오기

Lou Park 2021. 1. 8. 23:24

대세는 유튜브라~ 안드로이드 앱에서 어떤 문자열이 유튜브 URL인지 체크해야할 경우가 잦다. 유튜브는 PC에서 볼 수 있는 youtube.com과 모바일이나 공유시 볼 수 있는 youtu.be 이렇게 생긴 URL이있는데 인터넷을 긁어긁어 모든 Youtube 관련 URL에 대응할 수 있는 완벽한 정규식을 찾아냈다. 하핫 유용하게 사용하세요.

object YoutubeUtil {
// 유튜브 섬네일 가져옴
fun getThumbnail(url: String): String {
val vId = getVideoId(url)
return "https://img.youtube.com/vi/$vId/hqdefault.jpg"
}
fun getVideoId(url: String?): String {
var vId = ""
val pattern = Pattern.compile(
"^.*(?:(?:youtu\\.be\\/|v\\/|vi\\/|u\\/\\w\\/|embed\\/)|(?:(?:watch)?\\?v(?:i)?=|\\&v(?:i)?=))([^#\\&\\?]*).*",
Pattern.CASE_INSENSITIVE)
val matcher = pattern.matcher(url ?: "")
if (matcher.matches()) {
vId = matcher.group(1) ?: ""
}
return vId
}
// 유튜브 주소인지 판별
fun isYoutube(url: String?): Boolean {
return getVideoId(url).isNotEmpty()
}
}