streamflow / index.html
docto41's picture
Add 2 files
7095abe verified
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>StreamFlow - 57,854 Films en Français (AutoPlay)</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.hero-gradient {
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
}
.movie-card:hover {
transform: scale(1.03);
box-shadow: 0 10px 25px rgba(0,0,0,0.3);
}
.skeleton {
animation: pulse 2s infinite ease-in-out;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
.movie-counter {
font-size: 1.2rem;
background: linear-gradient(90deg, #e94560, #ff6b6b);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
font-weight: bold;
}
.auto-play-badge {
position: absolute;
top: 10px;
right: 10px;
background-color: #e94560;
color: white;
padding: 3px 8px;
border-radius: 4px;
font-size: 12px;
font-weight: bold;
z-index: 10;
}
.auto-play-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.7);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
color: white;
z-index: 5;
}
</style>
</head>
<body class="bg-gray-900 text-white">
<!-- Header -->
<header class="bg-gray-800 shadow-lg sticky top-0 z-50">
<div class="container mx-auto px-4 py-3">
<div class="flex justify-between items-center">
<div class="flex items-center space-x-3">
<i class="fas fa-play-circle text-3xl text-red-500"></i>
<h1 class="text-2xl font-bold">StreamFlow <span class="movie-counter">57,854 Films</span></h1>
</div>
<div class="flex items-center space-x-4">
<button class="bg-green-600 px-4 py-2 rounded-full font-medium">
<i class="fas fa-robot mr-2"></i>Mode AutoPlay Activé
</button>
</div>
</div>
</div>
</header>
<!-- Hero Section -->
<section class="hero-gradient py-16">
<div class="container mx-auto px-4">
<div class="flex flex-col md:flex-row items-center">
<div class="md:w-1/2 mb-10 md:mb-0">
<h2 class="text-4xl md:text-5xl font-bold mb-4">57,854 Films Français <span class="text-red-400">en AutoPlay</span></h2>
<p class="text-lg text-gray-300 mb-6">Notre système de lecture automatique vous permet de regarder tous les films sans interruption.</p>
<div class="flex space-x-4">
<button id="randomPlay" class="bg-red-600 hover:bg-red-700 px-6 py-3 rounded-full font-bold transition flex items-center">
<i class="fas fa-random mr-2"></i> Film Aléatoire
</button>
</div>
</div>
<div class="md:w-1/2 relative">
<div id="heroBanner" class="rounded-lg shadow-2xl w-full h-64 md:h-96 bg-gray-700 flex items-center justify-center">
<div class="text-center">
<i class="fas fa-robot text-6xl text-green-500 mb-4"></i>
<p class="text-xl font-bold">Mode AutoPlay Activé</p>
<p class="text-gray-300">Tous les films démarrent automatiquement</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Movie Grid -->
<section class="py-12">
<div class="container mx-auto px-4">
<div class="flex justify-between items-center mb-8">
<h2 class="text-2xl font-bold"><i class="fas fa-fire text-red-500 mr-2"></i> Films Populaires (AutoPlay)</h2>
<div class="relative">
<select id="genreFilter" class="bg-gray-800 border border-gray-700 text-white text-sm rounded-lg px-4 py-2">
<option value="all">Tous les genres</option>
<option value="28">Action</option>
<option value="12">Aventure</option>
<option value="16">Animation</option>
<option value="35">Comédie</option>
<option value="80">Crime</option>
<option value="18">Drama</option>
<option value="10751">Famille</option>
<option value="14">Fantastique</option>
<option value="27">Horreur</option>
<option value="878">Science-Fiction</option>
<option value="53">Thriller</option>
</select>
</div>
</div>
<div id="movieGrid" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-6">
<!-- Movies will be loaded here -->
<div class="skeleton-card bg-gray-800 rounded-lg overflow-hidden shadow-md">
<div class="relative pt-[150%] bg-gray-700 skeleton"></div>
<div class="p-3">
<div class="h-5 bg-gray-700 rounded skeleton mb-2"></div>
<div class="flex justify-between">
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
</div>
</div>
</div>
<!-- Repeat skeleton cards -->
<div class="skeleton-card bg-gray-800 rounded-lg overflow-hidden shadow-md">
<div class="relative pt-[150%] bg-gray-700 skeleton"></div>
<div class="p-3">
<div class="h-5 bg-gray-700 rounded skeleton mb-2"></div>
<div class="flex justify-between">
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
</div>
</div>
</div>
<div class="skeleton-card bg-gray-800 rounded-lg overflow-hidden shadow-md">
<div class="relative pt-[150%] bg-gray-700 skeleton"></div>
<div class="p-3">
<div class="h-5 bg-gray-700 rounded skeleton mb-2"></div>
<div class="flex justify-between">
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
</div>
</div>
</div>
<div class="skeleton-card bg-gray-800 rounded-lg overflow-hidden shadow-md">
<div class="relative pt-[150%] bg-gray-700 skeleton"></div>
<div class="p-3">
<div class="h-5 bg-gray-700 rounded skeleton mb-2"></div>
<div class="flex justify-between">
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
</div>
</div>
</div>
<div class="skeleton-card bg-gray-800 rounded-lg overflow-hidden shadow-md">
<div class="relative pt-[150%] bg-gray-700 skeleton"></div>
<div class="p-3">
<div class="h-5 bg-gray-700 rounded skeleton mb-2"></div>
<div class="flex justify-between">
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
</div>
</div>
</div>
<div class="skeleton-card bg-gray-800 rounded-lg overflow-hidden shadow-md">
<div class="relative pt-[150%] bg-gray-700 skeleton"></div>
<div class="p-3">
<div class="h-5 bg-gray-700 rounded skeleton mb-2"></div>
<div class="flex justify-between">
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
<div class="h-4 w-10 bg-gray-700 rounded skeleton"></div>
</div>
</div>
</div>
</div>
<div class="mt-12 text-center">
<button id="loadMore" class="bg-gray-800 hover:bg-gray-700 px-6 py-3 rounded-full font-medium transition">
<i class="fas fa-plus-circle mr-2"></i> Charger plus de films
</button>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-gray-800 border-t border-gray-700 py-8">
<div class="container mx-auto px-4 text-center">
<p class="text-gray-400">© 2023 StreamFlow - 57,854 films disponibles en français</p>
<p class="text-gray-500 text-sm mt-2">Tous les films démarrent automatiquement en lecture</p>
</div>
</footer>
<script>
// Configuration
const API_KEY = '3fd2be6f0c70a2a598f084ddfb75487c';
const BASE_URL = 'https://api.themoviedb.org/3';
const IMG_URL = 'https://image.tmdb.org/t/p/w500';
let currentPage = 1;
let currentGenre = 'all';
let totalMovies = 57854;
const autoPlayEnabled = true; // Toujours activé
// Simuler 57,854 films
async function getMovies(page = 1, genre = 'all') {
try {
let url = `${BASE_URL}/discover/movie?api_key=${API_KEY}&language=fr-FR&page=${page}&sort_by=popularity.desc`;
if (genre !== 'all') {
url += `&with_genres=${genre}`;
}
const response = await fetch(url);
const data = await response.json();
return data.results;
} catch (error) {
console.error('Error fetching movies:', error);
return [];
}
}
// Afficher les films avec AutoPlay
async function displayMovies() {
const movies = await getMovies(currentPage, currentGenre);
const movieGrid = document.getElementById('movieGrid');
// Supprimer les squelettes de chargement
document.querySelectorAll('.skeleton-card').forEach(el => el.remove());
movies.forEach(movie => {
const movieCard = document.createElement('div');
movieCard.className = 'movie-card bg-gray-800 rounded-lg overflow-hidden shadow-md cursor-pointer transition';
movieCard.innerHTML = `
<div class="relative pt-[150%] bg-gray-700">
<div class="auto-play-badge">AUTO</div>
<img src="${movie.poster_path ? IMG_URL + movie.poster_path : 'https://via.placeholder.com/500x750?text=No+Poster'}"
alt="${movie.title}"
class="absolute top-0 left-0 w-full h-full object-cover">
<div class="auto-play-overlay">
<i class="fas fa-play-circle text-4xl text-green-500 mb-2"></i>
<p class="font-bold">Lecture Auto</p>
<p class="text-sm">Cliquez pour démarrer</p>
</div>
</div>
<div class="p-3">
<h3 class="font-medium truncate">${movie.title}</h3>
<div class="flex justify-between items-center mt-2 text-sm text-gray-400">
<span>${movie.release_date ? movie.release_date.substring(0, 4) : 'N/A'}</span>
<span class="flex items-center">
<i class="fas fa-star text-yellow-400 mr-1"></i>
${movie.vote_average ? movie.vote_average.toFixed(1) : 'N/A'}
</span>
</div>
</div>
`;
// Ouvrir le film avec lecture automatique
movieCard.addEventListener('click', () => {
openMoviePlayer(movie);
});
movieGrid.appendChild(movieCard);
});
}
// Ouvrir un lecteur de film avec lecture automatique
function openMoviePlayer(movie) {
// URL de démonstration avec autoplay
const videoUrl = "https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=1&mute=0";
const playerWindow = window.open('', '_blank', 'width=1200,height=700,top=100,left=100');
playerWindow.document.write(`
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>${movie.title} - StreamFlow (AutoPlay)</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
body {
margin: 0;
padding: 0;
background-color: #000;
color: white;
font-family: sans-serif;
}
.player-container {
position: relative;
width: 100%;
height: 0;
padding-bottom: 56.25%;
}
.player-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
}
.auto-play-notice {
position: absolute;
top: 10px;
right: 10px;
background-color: rgba(0,0,0,0.7);
color: #10b981;
padding: 5px 10px;
border-radius: 4px;
font-size: 14px;
z-index: 10;
}
</style>
</head>
<body>
<div class="player-container">
<div class="auto-play-notice">
<i class="fas fa-robot mr-1"></i> AutoPlay Activé
</div>
<iframe src="${videoUrl}" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe>
</div>
<div class="bg-gray-900 p-4">
<h1 class="text-2xl font-bold">${movie.title} <span class="text-green-500 text-sm">(Lecture Auto)</span></h1>
<p class="text-gray-300 mt-2">${movie.overview || 'Description non disponible'}</p>
<div class="mt-4 flex justify-between items-center">
<div>
<span class="text-yellow-400">
<i class="fas fa-star"></i> ${movie.vote_average ? movie.vote_average.toFixed(1) : 'N/A'}
</span>
<span class="ml-4">${movie.release_date ? movie.release_date.substring(0, 4) : 'N/A'}</span>
</div>
<button onclick="window.close()" class="bg-red-600 hover:bg-red-700 px-4 py-2 rounded">
<i class="fas fa-times mr-2"></i> Fermer
</button>
</div>
</div>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=docto41/streamflow" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>