대세는 유튜브라~ 안드로이드 앱에서 어떤 문자열이 유튜브 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()
}
}
'프로그래밍 > Kotlin' 카테고리의 다른 글
Kotlin coroutine : async vs launch 차이 (1) | 2022.11.01 |
---|---|
Kotlin Scope functions의 쓰임새 (let, run, with, apply, also, takeIf, takeUnless) with skydove's pokedex (0) | 2022.07.11 |
[Kotlin/Java] 닉네임 정규식, 닉네임 유효성 검사하기 (3) | 2021.01.07 |
[Kotlin/Java] 숫자를 K, M, B 단위로 줄여서 표시하기 (0) | 2021.01.07 |
[Kotlin] Channel이란? (0) | 2020.10.07 |