Calculator Tools Calculator Tools
Create

YouTube Online

Sep 29, 2023

About this app

Watch and enjoy YouTube videos online

YouTube Online

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>YouTube Online</title>
<meta name="description" content="Watch and enjoy YouTube videos online">
<meta name="keywords" content="YouTube, videos, online">

<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://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.

// This will run when the DOM is ready.
document.addEventListener("DOMContentLoaded", function() {
// Function to load YouTube videos
function loadYouTubeVideos() {
var searchQuery = $("#search-input").val();
var url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=10&q=" + searchQuery + "&key=YOUR_API_KEY";

// Make API call to fetch YouTube videos
$.ajax({
type: 'GET',
url: url,
success: function(response) {
var videos = response.items;

// Clear previous search results
$("#videos-container").empty();

// Loop through the videos and create HTML elements
for (var i = 0; i < videos.length; i++) {
var video = videos[i];
var videoId = video.id.videoId;
var videoTitle = video.snippet.title;
var videoThumbnail = video.snippet.thumbnails.medium.url;

// Create video element
var videoElement = $("<div>").addClass("video");

// Create thumbnail element
var thumbnailElement = $("<img>").attr("src", videoThumbnail);

// Create title element
var titleElement = $("<h3>").text(videoTitle);

// Append thumbnail and title to video element
videoElement.append(thumbnailElement, titleElement);

// Append video element to videos container
$("#videos-container").append(videoElement);
}
},
error: function(error) {
console.log(error);
}
});
}

// Event listener for search button click
$("#search-button").on("click", function() {
loadYouTubeVideos();
});
});

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

<style>
/* App CSS Goes Here */
body {
background-color: #f8f8f8;
font-family: 'Roboto', sans-serif;
}

.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}

.search-container {
display: flex;
align-items: center;
margin-bottom: 20px;
}

.search-input {
flex: 1;
padding: 10px;
border: none;
border-radius: 5px;
font-size: 16px;
}

.search-button {
padding: 10px 20px;
background-color: #ff0000;
color: #ffffff;
border: none;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
}

.videos-container {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 20px;
}

.video {
background-color: #ffffff;
padding: 10px;
border-radius: 5px;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
cursor: pointer;
transition: transform 0.3s ease;
}

.video:hover {
transform: scale(1.05);
}

.thumbnail {
width: 100%;
height: auto;
object-fit: cover;
border-radius: 5px;
}

.title {
margin-top: 10px;
font-size: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<div class="search-container">
<input id="search-input" class="search-input" type="text" placeholder="Search YouTube">
<button id="search-button" class="search-button"><i class="fa fa-search"></i></button>
</div>

<div id="videos-container" class="videos-container">
<!-- YouTube videos will be dynamically generated here -->
</div>
</div>
</body>
</html>