11package com.gapps.library.api
22
3- const val YOUTUBE_PATTERN = " (http(s)?:\\ /\\ /)?((w){3}.)?(m.)?(music.)?youtu(be|.be)?(\\ .com)?\\ /.*"
4- const val YOUTUBE_PATTERN_ID = " (?:(?:\\ w*.?://)?\\ w*.?\\ w*-?.?\\ w*/(?:embed|e|v|watch|.*/)?\\ ??(?:feature=\\ w*\\ .?\\ w*)?&?(?:v=)?/?)([\\ w\\ d_-]+).*"
5- const val VIMEO_PATTERN = " (?:http[s]?:\\ /\\ /)(?:w{3})?(?:player\\ .)?vimeo\\ .com\\ /(?:[a-z]*\\ /)*([0-9]{6,11})[?]?.*"
6- const val RUTUBE_PATTERN = " (?:http[s]?:\\ /\\ /)(?:w{3})?(?:player\\ .)?rutube\\ .ru\\ /video\\ /(?:embed\\ /)?([A-Za-z0-9]+)[\\ /]?(\\ ?.+)?"
7- const val FACEBOOK_PATTERN = " (?:http[s]?:\\ /\\ /)?(?:www.|web.|m.)?(?:facebook|fb)?.com\\ /(?:(?:video.php|watch?\\ /)?\\ ?v=|.+\\ /videos(?:\\ /.+)?\\ /)(\\ d+)\\ S*"
8- const val DAILYMOTION_PATTERN = " (?:http[s]?:\\ /\\ /)?(?:\\ /\\ /)?(?:www\\ .)?(?:(?:dailymotion\\ .com(?:\\ /embed)?\\ /video)|dai\\ .ly)\\ /([a-zA-Z0-9]+)(?:_[\\ w_-]+)?"
3+ const val YOUTUBE_PATTERN = " (?:http(?:s)?://)?(?:www.)?(?:m.)?(?:music.)?youtu(?:be|.be)?(?:\\ .com)?(?:(?:\\ w*.?://)?\\ w*.?\\ w*-?.?\\ w*/(?:embed|e|v|watch|.*/)?\\ ??(?:feature=\\ w*\\ .?\\ w*)?&?(?:v=)?/?)([\\ w\\ d_-]{11}).*"
4+ const val VIMEO_PATTERN = " (?:http[s]?://)(?:w{3})?(?:player\\ .)?vimeo\\ .com/(?:[a-z]*/)*([0-9]{6,11})[?]?.*"
5+ const val RUTUBE_PATTERN = " (?:http[s]?://)(?:w{3})?(?:player\\ .)?rutube\\ .ru/video/(?:embed/)?([A-Za-z0-9]+)[/]?(\\ ?.+)?"
6+ const val FACEBOOK_PATTERN = " (?:http[s]?://)?(?:www.|web.|m.)?(?:facebook|fb)?.com/(?:(?:video.php|watch?/)?\\ ?v=|.+/videos(?:/.+)?/)(\\ d+)\\ S*"
7+ const val DAILYMOTION_PATTERN = " (?:http[s]?://)?(?:www\\ .)?(?:(?:dailymotion\\ .com(?:/embed)?/video)|dai\\ .ly)/([a-zA-Z0-9]+)(?:_[\\ w_-]+)?"
98const val WISTIA_PATTERN = " (?:http[s]?:\\ /\\ /)?(?:.+)?(?:wistia\\ .(?:com|net)|wi\\ .st)\\ /(?:medias|embed|series)\\ /(?:iframe\\ /?)?(?:\\ S+\\ ?\\ S*wvideoid=)?([a-zA-Z0-9]+)\\ S*"
10- const val VZAAR_PATTERN = " (?:http[s]?:\\ / \\ /)?(?:.+)?vzaar.com\\ /?(?:videos\\ /)?([a-zA-Z0-9]+)\\ S*"
9+ const val VZAAR_PATTERN = " (?:http[s]?:/ /)?(?:.+)?vzaar.com/?(?:videos/)?([a-zA-Z0-9]+)\\ S*"
1110const val OEMBED_INFO = " /oembed"
1211const val VIMEO_INFO = " /api/v2/video/"
1312const val FACEBOOK_INFO = " /plugins/video/oembed"
@@ -26,9 +25,10 @@ const val FORMAT = "format"
2625const val FORMAT_JSON = " json"
2726const val URL = " url"
2827
29-
3028fun String.getYoutubeInfoUrl (): String {
31- return " $YOUTUBE_BASE_URL$OEMBED_INFO ?$FORMAT =$FORMAT_JSON &$URL =$this "
29+ val id = YOUTUBE_PATTERN .toRegex().find(this )?.groups?.get(1 )?.value
30+ val url = " https://www.youtube.com/watch?v=$id "
31+ return " $YOUTUBE_BASE_URL$OEMBED_INFO ?$FORMAT =$FORMAT_JSON &$URL =$url "
3232
3333}
3434
0 commit comments