대세는 유튜브라~ 안드로이드 앱에서 어떤 문자열이 유튜브 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 |