youtube縮圖


有時候在網頁排版上不會直接嵌入影片而需要使用圖片排版的情況,直接利用網址取得youtube縮圖,比起在網站建立資料時自己額外上傳圖片方便,也不用擔心調整後網站忘記更換圖片的問題。

下列網址圖片由大至小排列,將xxxx用網址中的v=XXXX值代替,如果是短網址(youtu.be/XXXX)的話則用/後面的XXXX代替,影片持有者未設定的話有可能會出現youtube沒圖片的預設圖

https://img.youtube.com/vi/xxxx/maxresdefault.jpg
https://img.youtube.com/vi/xxxx/sddefault.jpg
https://img.youtube.com/vi/xxxx/hqdefault.jpg
https://img.youtube.com/vi/xxxx/0.jpg
https://img.youtube.com/vi/xxxx/1.jpg
https://img.youtube.com/vi/xxxx/2.jpg
https://img.youtube.com/vi/xxxx/3.jpg

使用php取出參數的值

$url = "https://youtu.be/";
$parsed = parse_url($url);
if($parsed['host']=='youtu.be'){//短網址 抓path
	echo str_replace("/", "", $parsed['path']);
}else if($parsed['host']=='www.youtube.com'){//一般 抓v
	$query = parse_url($url);
	parse_str($query['query'], $params);
	echo $params['v'];
}

使用javascript確認網址,如果貼的是短網址轉回一般網址

	function youtube_parser(url){
		var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
		var match = url.match(regExp);
		return (match&&match[7].length==11)? match[7] : false;
	}
	function youtube_stol(obj){
		$('#showerror').html('')
		if(obj.value!=''){
			tempv = youtube_parser(obj.value);
			if(tempv!=false){
				obj.value = 'https://www.youtube.com/watch?v=' + tempv;
			}else{
				$('#showerror').html('<br>無法取得YOUTUBE請確認網址是否正確')
			}
		}
	}
Tags : html javascript