Calculator Tools Calculator Tools
Create

Vine Video Repeater

Nov 21, 2023

About this app

Watch the Vine video 'When mic wants you stop' 35056 times in a loop.

Vine Video Repeater Playing video... 🔁

Related apps

Put this on your site

Source

                    <html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">

<title>Vine Video Repeater</title>
<meta name="description" content="Watch the Vine video 'When mic wants you stop' 35056 times in a loop.">
<meta name="keywords" content="Vine, YouTube, Loop, Video Repeater, When mic wants you stop">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.
let playCount = 0;
const targetPlayCount = 35056;
const videoId = 'd7i37ZVKs1g';

function onYouTubeIframeAPIReady() {
new YT.Player('vine-video', {
videoId: videoId,
events: {
'onStateChange': onPlayerStateChange
}
});
}

function onPlayerStateChange(event) {
if (event.data === YT.PlayerState.ENDED) {
playCount++;
if (playCount < targetPlayCount) {
event.target.playVideo();
} else {
$('#play-count').text('Video has been played ' + targetPlayCount + ' times. Loop complete!');
}
}
}

$(document).ready(function() {
// Load the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
});

} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>

<style>
/* App CSS Goes Here */
body, html {
height: 100%;
margin: 0;
font-family: 'Press Start 2P', cursive;
}

#main-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
text-align: center;
}

#play-count {
margin-top: 20px;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<div id="vine-video" class="embed-responsive embed-responsive-16by9">
<!-- YouTube Video Will Be Injected Here -->
</div>
<div id="play-count">Playing video... <span class="emoji">🔁</span></div>
</div>

<!-- Include the YouTube API script -->
<script async src="https://www.youtube.com/iframe_api"></script>
</body>
</html>