게시판 확장변수 $youtube_url에 유튜브 공유주소
https://www.youtube.com/watch?v=********* 또는 https://youtu.be/********* 형식으로 넣어서 iframe으로 유튜브 영상을 보여주는 소스입니다.
<script cond="$youtube_url"> var regs = [ /https?:\/\/youtu.be\/([a-zA-Z0-9\-_]+)/gi, /https?:\/\/www.youtube.com\/watch\?v=([a-zA-Z0-9\-_]+)/gi ]; var area = $('#area'); var youtubeIframe = '<iframe _title="YouTube video player" src="//www.youtube.com/embed/#[CODE]" frameborder="0" width="100%" height="100%" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
유튜브 공유주소만을 확장변수 ( $youtube_url ) 에 입력하면 문제없이 잘 재생이 됩니다.
그러나 아래 이미지처럼 유튜브 공유주소에서 동영상 시작 시간을 설정 할 때
https://youtu.be/*********?t=60 이런 형식(60초부터 영상재생)의 공유주소를 확장변수에 입력하면 ?t=60 이 부분이 잘려져서 https://youtu.be/*********으로 인식이 되어서 60초부터 재생이 되는게 아니라 처음부터 동영상이 재생됩니다.
아래 소스 정규식(?)에서 소스에서
/https?:\/\/youtu.be\/([a-zA-Z0-9\-_]+)/gi,
부분에서 ([a-zA-Z0-9\-_]+ ) ----> "영문대소문자와 숫자0~9를 제거" 하라는 부분인것 같은데 이게 맞다면 혹시 이 부분이 작동되지 않게끔 하려면 어떻게 처리를 해야 하는 지 도움 좀 받을 수 있을까요?
<script cond="$youtube_url"> var regs = [ /https?:\/\/youtu.be\/([a-zA-Z0-9\-_]+)/gi, /https?:\/\/www.youtube.com\/watch\?v=([a-zA-Z0-9\-_]+)/gi ]; var area = $('#area'); var youtubeIframe = '<iframe _title="YouTube video player" src="//www.youtube.com/embed/#[CODE]" frameborder="0" width="100%" height="100%" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'; for( var i in regs){ var html = area.html(); while(true){ var result = regs[i].exec(html); if( result == null){ break; } console.log('result : ', result); var code = result[1]; html = html.replace( result[0], youtubeIframe.replace('#[CODE]', code) ); console.log('html : ', html); area.html( html ); } } </script>
이렇게 해보시겠어요? 잘 될지 모르겠네요.
혹시 동영상ID와 시작지점 사이에 다른 파라메터가 중간에 있으면 잘 안될겁니다.
embed 에서는 '?start='로 시작지점을 지정하나봐요. t=은 해봤는데 안되는것 같습니다. https://support.google.com/youtube/answer/171780?hl=ko
자동재생 부분도 적용하려면 var code = result[1]+'?start='+result[2]+'&autoplay=1';로 바꿔야할 것 같습니다.