cin-futur / index.html
docto41's picture
Add 2 files
28e7179 verified
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>StreamCiné - Films Complets en HD</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>
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');
body {
font-family: 'Roboto', sans-serif;
background-color: #0a0a0a;
color: white;
overflow-x: hidden;
}
.film-card:hover {
transform: translateY(-10px);
box-shadow: 0 10px 25px -5px rgba(0, 179, 255, 0.3);
}
.video-player {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.95);
z-index: 9999;
display: none;
justify-content: center;
align-items: center;
}
.video-container {
width: 90%;
max-width: 1200px;
position: relative;
}
.close-player {
position: absolute;
top: -40px;
right: 0;
color: white;
font-size: 30px;
cursor: pointer;
transition: all 0.3s ease;
}
.close-player:hover {
color: #ff3e3e;
}
.vf-badge {
position: absolute;
top: 10px;
right: 10px;
background: linear-gradient(45deg, #00a2ff, #00ff9d);
color: black;
font-weight: bold;
padding: 3px 8px;
border-radius: 4px;
font-size: 12px;
z-index: 2;
}
.hd-badge {
position: absolute;
top: 10px;
left: 10px;
background: rgba(0, 0, 0, 0.7);
color: white;
font-weight: bold;
padding: 3px 8px;
border-radius: 4px;
font-size: 12px;
border: 1px solid #00a2ff;
z-index: 2;
}
.new-badge {
position: absolute;
top: 50px;
right: 10px;
background: linear-gradient(45deg, #ff3e3e, #ff00aa);
color: white;
font-weight: bold;
padding: 3px 8px;
border-radius: 4px;
font-size: 12px;
z-index: 2;
}
/* Style pour le lecteur principal */
.main-player {
width: 100%;
height: 70vh;
background: #000;
position: relative;
}
.main-player iframe {
width: 100%;
height: 100%;
}
/* Style pour la barre de recherche */
.search-box {
transition: all 0.3s ease;
}
.search-box:focus-within {
box-shadow: 0 0 0 2px #00a2ff;
}
/* Animation de chargement */
@keyframes spin {
to { transform: rotate(360deg); }
}
.loading-spinner {
display: inline-block;
width: 40px;
height: 40px;
border: 4px solid rgba(255, 255, 255, 0.3);
border-radius: 50%;
border-top-color: #00a2ff;
animation: spin 1s ease-in-out infinite;
}
/* Style pour les catégories */
.category-btn.active {
background: #00a2ff;
color: white;
}
/* Style pour la pagination */
.pagination-btn.active {
background: #00a2ff;
color: white;
border-color: #00a2ff;
}
</style>
</head>
<body class="bg-gray-900">
<!-- Navigation -->
<nav class="fixed w-full z-50 bg-black bg-opacity-90 backdrop-blur-md border-b border-gray-800">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between h-16">
<div class="flex items-center">
<div class="flex-shrink-0">
<span class="text-2xl font-bold text-white">STREAM<span class="text-blue-400">CINÉ</span></span>
</div>
<div class="hidden md:block ml-10">
<div class="flex space-x-4">
<a href="#accueil" class="text-white hover:text-blue-400 px-3 py-2 rounded-md text-sm font-medium">Accueil</a>
<a href="#films" class="text-white hover:text-blue-400 px-3 py-2 rounded-md text-sm font-medium">Films</a>
<a href="#series" class="text-white hover:text-blue-400 px-3 py-2 rounded-md text-sm font-medium">Séries</a>
<a href="#nouveautes" class="text-blue-400 px-3 py-2 rounded-md text-sm font-medium">Nouveautés</a>
</div>
</div>
</div>
<div class="hidden md:block">
<div class="ml-4 flex items-center md:ml-6">
<div class="relative search-box">
<input type="text" placeholder="Rechercher un film..." class="bg-gray-800 text-white px-4 py-2 rounded-full text-sm focus:outline-none w-64">
<button class="absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-blue-400">
<i class="fas fa-search"></i>
</button>
</div>
<button class="ml-4 bg-blue-500 text-white px-4 py-2 rounded-full text-sm font-medium hover:bg-blue-600">
<i class="fas fa-user mr-1"></i> Connexion
</button>
</div>
</div>
<div class="-mr-2 flex md:hidden">
<button type="button" id="mobile-menu-button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none">
<span class="sr-only">Ouvrir menu</span>
<i class="fas fa-bars"></i>
</button>
</div>
</div>
</div>
<!-- Menu Mobile -->
<div id="mobile-menu" class="hidden md:hidden bg-gray-900">
<div class="px-2 pt-2 pb-3 space-y-1 sm:px-3">
<a href="#accueil" class="text-white block px-3 py-2 rounded-md text-base font-medium">Accueil</a>
<a href="#films" class="text-white block px-3 py-2 rounded-md text-base font-medium">Films</a>
<a href="#series" class="text-white block px-3 py-2 rounded-md text-base font-medium">Séries</a>
<a href="#nouveautes" class="text-blue-400 block px-3 py-2 rounded-md text-base font-medium">Nouveautés</a>
</div>
<div class="pt-4 pb-3 border-t border-gray-700 px-4">
<div class="relative mb-4 search-box">
<input type="text" placeholder="Rechercher un film..." class="bg-gray-800 text-white px-4 py-2 rounded-full text-sm focus:outline-none w-full">
<button class="absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-blue-400">
<i class="fas fa-search"></i>
</button>
</div>
<button class="w-full bg-blue-500 text-white px-4 py-2 rounded-full text-sm font-medium hover:bg-blue-600">
<i class="fas fa-user mr-1"></i> Connexion
</button>
</div>
</div>
</nav>
<!-- Section Principale avec Film en Vedette -->
<section id="accueil" class="pt-16 pb-10">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="main-player rounded-xl overflow-hidden shadow-2xl mb-8">
<iframe id="featured-movie" src="https://www.youtube.com/embed/EXeTwQWrcwY?autoplay=1&mute=1&controls=0&showinfo=0&rel=0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="flex justify-between items-center mb-6">
<h2 class="text-2xl font-bold text-white">Film en vedette</h2>
<div class="flex space-x-2">
<button class="px-3 py-1 bg-gray-800 text-white rounded-full text-sm hover:bg-gray-700">HD</button>
<button class="px-3 py-1 bg-gray-800 text-white rounded-full text-sm hover:bg-gray-700">VF</button>
<button class="px-3 py-1 bg-blue-500 text-white rounded-full text-sm hover:bg-blue-600">
<i class="fas fa-expand mr-1"></i> Plein écran
</button>
</div>
</div>
<h1 class="text-3xl md:text-4xl font-bold text-white mb-2">Dune : Partie Deux (2024)</h1>
<div class="flex items-center text-gray-400 mb-4">
<span class="text-yellow-400 mr-2"><i class="fas fa-star"></i> 8.7</span>
<span class="mx-2"></span>
<span>2h 46min</span>
<span class="mx-2"></span>
<span>Science-fiction, Aventure</span>
</div>
<p class="text-gray-300 mb-6 max-w-3xl">
Paul Atreides s'unit avec Chani et les Fremen pour se venger des conspirateurs qui ont détruit sa famille. Alors qu'il fait face à un choix entre l'amour de sa vie et le destin de l'univers, il doit empêcher un terrible futur que lui seul peut prévoir.
</p>
<div class="flex space-x-4">
<button class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-3 rounded-full font-bold flex items-center">
<i class="fas fa-play mr-2"></i> Regarder maintenant
</button>
<button class="bg-gray-800 hover:bg-gray-700 text-white px-6 py-3 rounded-full font-bold flex items-center">
<i class="fas fa-plus mr-2"></i> Ma liste
</button>
</div>
</div>
</section>
<!-- Section Nouveautés -->
<section id="nouveautes" class="py-10 bg-gray-800">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between items-center mb-6">
<h2 class="text-2xl font-bold text-white">Nouveautés</h2>
<a href="#" class="text-blue-400 text-sm hover:underline">Voir tout</a>
</div>
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-6" id="nouveautes-grid">
<!-- Les films seront générés par JavaScript -->
</div>
</div>
</section>
<!-- Section Films Populaires -->
<section id="films" class="py-10 bg-gray-900">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between items-center mb-6">
<h2 class="text-2xl font-bold text-white">Films Populaires</h2>
<div class="flex space-x-2">
<button class="category-btn px-3 py-1 bg-gray-800 text-white rounded-full text-sm hover:bg-gray-700 active" data-category="all">Tous</button>
<button class="category-btn px-3 py-1 bg-gray-800 text-white rounded-full text-sm hover:bg-gray-700" data-category="action">Action</button>
<button class="category-btn px-3 py-1 bg-gray-800 text-white rounded-full text-sm hover:bg-gray-700" data-category="sf">SF</button>
<button class="category-btn px-3 py-1 bg-gray-800 text-white rounded-full text-sm hover:bg-gray-700" data-category="drame">Drame</button>
</div>
</div>
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-6" id="films-grid">
<!-- Les films seront générés par JavaScript -->
</div>
<div class="flex justify-center mt-10 space-x-2">
<button class="pagination-btn px-4 py-2 border border-gray-700 rounded-full text-sm hover:bg-gray-800">Précédent</button>
<button class="pagination-btn px-4 py-2 border border-gray-700 rounded-full text-sm hover:bg-gray-800 active">1</button>
<button class="pagination-btn px-4 py-2 border border-gray-700 rounded-full text-sm hover:bg-gray-800">2</button>
<button class="pagination-btn px-4 py-2 border border-gray-700 rounded-full text-sm hover:bg-gray-800">3</button>
<button class="pagination-btn px-4 py-2 border border-gray-700 rounded-full text-sm hover:bg-gray-800">Suivant</button>
</div>
</div>
</section>
<!-- Lecteur vidéo pour les films -->
<div class="video-player" id="video-player">
<div class="video-container">
<span class="close-player" id="close-player"><i class="fas fa-times"></i></span>
<iframe id="movie-player" class="w-full aspect-video" frameborder="0" allowfullscreen allow="autoplay"></iframe>
</div>
</div>
<script>
// Menu mobile
const mobileMenuButton = document.getElementById('mobile-menu-button');
const mobileMenu = document.getElementById('mobile-menu');
mobileMenuButton.addEventListener('click', () => {
mobileMenu.classList.toggle('hidden');
});
// Données des films avec de vraies images et liens de streaming
const filmsData = [
{
id: 1,
titre: "Dune : Partie Deux",
annee: 2024,
duree: "2h46min",
genres: ["Science-fiction", "Aventure"],
description: "Paul Atreides s'unit avec Chani et les Fremen pour se venger des conspirateurs qui ont détruit sa famille.",
note: "8.7",
image: "https://image.tmdb.org/t/p/w500/8b8R8l88Qje9dn9OE8PY05Hav3f.jpg",
video: "https://www.youtube.com/embed/EXeTwQWrcwY?autoplay=1",
vf: true,
hd: true,
nouveau: true,
category: "sf"
},
{
id: 2,
titre: "Furiosa : Une Saga Mad Max",
annee: 2024,
duree: "2h28min",
genres: ["Action", "Science-fiction"],
description: "L'histoire de la jeune Furiosa avant sa rencontre avec Max Rockatansky.",
note: "8.1",
image: "https://image.tmdb.org/t/p/w500/6XxP7L1RGRfGVrHxzzAqH6XyKrJ.jpg",
video: "https://www.youtube.com/embed/XJMuhwVlca4?autoplay=1",
vf: true,
hd: true,
nouveau: true,
category: "action"
},
{
id: 3,
titre: "Deadpool & Wolverine",
annee: 2024,
duree: "2h07min",
genres: ["Action", "Comédie"],
description: "Deadpool change l'histoire du MCU avec Wolverine dans une aventure multiverselle.",
note: "8.9",
image: "https://image.tmdb.org/t/p/w500/uxBHXaoOvAwy4NpPpP7nNx2rXYQ.jpg",
video: "https://www.youtube.com/embed/avb5Tqrlx1U?autoplay=1",
vf: true,
hd: true,
nouveau: true,
category: "action"
},
{
id: 4,
titre: "Gladiator 2",
annee: 2024,
duree: "2h38min",
genres: ["Action", "Drame"],
description: "Suite du film culte Gladiator, suivant les aventures de Lucius, le neveu de Commodus.",
note: "8.3",
image: "https://image.tmdb.org/t/p/w500/pgqgaUx1cJb5oZQQAivhSlbWXGE.jpg",
video: "https://www.youtube.com/embed/wws5KZ5wJ2Y?autoplay=1",
vf: true,
hd: true,
nouveau: false,
category: "action"
},
{
id: 5,
titre: "Joker : Folie à Deux",
annee: 2024,
duree: "2h22min",
genres: ["Drame", "Thriller"],
description: "Arthur Fleck rencontre Harley Quinn dans cet opus musical qui explore leur relation toxique.",
note: "8.5",
image: "https://image.tmdb.org/t/p/w500/x2Vf8bY92PJq2pWevVx7lXfXqAB.jpg",
video: "https://www.youtube.com/embed/xy8aJw1vYHo?autoplay=1",
vf: true,
hd: true,
nouveau: false,
category: "drame"
},
{
id: 6,
titre: "The Batman",
annee: 2022,
duree: "2h56min",
genres: ["Action", "Thriller"],
description: "Batman enquête sur le milieu criminel de Gotham City alors qu'un tueur s'en prend à l'élite corrompue.",
note: "7.8",
image: "https://image.tmdb.org/t/p/w500/seyWFgGInaLqW7nOZvu0V95aox8.jpg",
video: "https://www.youtube.com/embed/mqqft2x_Aa4?autoplay=1",
vf: true,
hd: true,
nouveau: false,
category: "action"
},
{
id: 7,
titre: "Avatar : La Voie de l'Eau",
annee: 2022,
duree: "3h12min",
genres: ["Science-fiction", "Aventure"],
description: "Jake Sully et Ney'tiri forment une famille sur Pandora mais doivent quitter leur foyer.",
note: "7.6",
image: "https://image.tmdb.org/t/p/w500/jRXYjXNq0Cs2TcJjLkki24MLp7u.jpg",
video: "https://www.youtube.com/embed/a8Gx8wiNbs8?autoplay=1",
vf: true,
hd: true,
nouveau: false,
category: "sf"
},
{
id: 8,
titre: "Oppenheimer",
annee: 2023,
duree: "3h",
genres: ["Drame", "Historique"],
description: "L'histoire du physicien J. Robert Oppenheimer et son rôle dans le développement de la bombe atomique.",
note: "8.4",
image: "https://image.tmdb.org/t/p/w500/8Gxv8gSFCU0XGDykEGv7zR1nuhua.jpg",
video: "https://www.youtube.com/embed/uYPbbksJxIg?autoplay=1",
vf: true,
hd: true,
nouveau: false,
category: "drame"
},
{
id: 9,
titre: "Top Gun : Maverick",
annee: 2022,
duree: "2h11min",
genres: ["Action", "Drame"],
description: "Trente ans de service, Maverick est toujours là, repoussant les limites comme pilote d'essai.",
note: "8.3",
image: "https://image.tmdb.org/t/p/w500/jTrXwK56EoLHHsQaM2kra45E4ek.jpg",
video: "https://www.youtube.com/embed/giXco2jaZ_4?autoplay=1",
vf: true,
hd: true,
nouveau: false,
category: "action"
},
{
id: 10,
titre: "Interstellar",
annee: 2014,
duree: "2h49min",
genres: ["Science-fiction", "Drame"],
description: "Une équipe d'explorateurs voyage à travers un trou de ver pour sauver l'humanité.",
note: "8.4",
image: "https://image.tmdb.org/t/p/w500/gEU2QniE6E77NI6lCU6MxlNBvIx.jpg",
video: "https://www.youtube.com/embed/zSWdZVtXT7E?autoplay=1",
vf: true,
hd: true,
nouveau: false,
category: "sf"
}
];
// Variables pour le lecteur vidéo
const videoPlayer = document.getElementById('video-player');
const moviePlayer = document.getElementById('movie-player');
const closePlayer = document.getElementById('close-player');
// Ouvrir le lecteur vidéo avec le film
function openVideoPlayer(videoUrl) {
moviePlayer.src = videoUrl;
videoPlayer.style.display = 'flex';
document.body.style.overflow = 'hidden';
}
// Fermer le lecteur vidéo
closePlayer.addEventListener('click', () => {
moviePlayer.src = '';
videoPlayer.style.display = 'none';
document.body.style.overflow = 'auto';
});
// Fermer le lecteur si on clique en dehors
videoPlayer.addEventListener('click', (e) => {
if (e.target === videoPlayer) {
moviePlayer.src = '';
videoPlayer.style.display = 'none';
document.body.style.overflow = 'auto';
}
});
// Générer les films dans une grille
function genererFilmsGrid(films, targetElement, limit = null) {
const filmsToShow = limit ? films.slice(0, limit) : films;
targetElement.innerHTML = '';
filmsToShow.forEach(film => {
const filmElement = document.createElement('div');
filmElement.className = 'film-card group relative rounded-xl overflow-hidden transition-all duration-300 hover:z-10';
filmElement.innerHTML = `
<div class="relative aspect-[2/3] rounded-xl overflow-hidden cursor-pointer">
${film.vf ? '<span class="vf-badge">VF</span>' : ''}
${film.hd ? '<span class="hd-badge">HD</span>' : ''}
${film.nouveau ? '<span class="new-badge">NOUVEAU</span>' : ''}
<img src="${film.image}" alt="${film.titre}" class="w-full h-full object-cover group-hover:opacity-70 transition-all duration-300" loading="lazy">
<div class="absolute inset-0 bg-gradient-to-t from-black/70 via-black/30 to-transparent opacity-0 group-hover:opacity-100 transition-all duration-300"></div>
<div class="absolute bottom-0 left-0 right-0 p-4 translate-y-4 opacity-0 group-hover:translate-y-0 group-hover:opacity-100 transition-all duration-300">
<h3 class="text-white font-bold text-lg mb-1">${film.titre}</h3>
<div class="flex items-center text-sm text-gray-300 mb-2">
<span>${film.annee}</span>
<span class="mx-2">•</span>
<span>${film.duree}</span>
</div>
<div class="flex flex-wrap gap-2 mb-3">
${film.genres.map(genre => `<span class="px-2 py-1 bg-gray-800 text-white text-xs rounded-full">${genre}</span>`).join('')}
</div>
<p class="text-gray-300 text-sm line-clamp-2">${film.description}</p>
</div>
<div class="absolute top-3 left-3 px-2 py-1 bg-black bg-opacity-70 text-yellow-400 text-sm font-bold rounded-full flex items-center">
<i class="fas fa-star mr-1"></i>
${film.note}
</div>
</div>
<div class="mt-3">
<h3 class="text-white font-medium truncate">${film.titre}</h3>
<div class="flex items-center text-sm text-gray-400">
<span>${film.annee}</span>
</div>
</div>
<div class="mt-2">
<button class="watch-btn w-full bg-blue-500 hover:bg-blue-600 text-white py-2 rounded-full text-sm font-bold transition-all duration-300 flex items-center justify-center" data-video="${film.video}">
<i class="fas fa-play mr-2"></i> Regarder
</button>
</div>
`;
targetElement.appendChild(filmElement);
});
// Ajouter les événements aux boutons "Regarder"
document.querySelectorAll('.watch-btn').forEach(btn => {
btn.addEventListener('click', function() {
const videoUrl = this.getAttribute('data-video');
openVideoPlayer(videoUrl);
});
});
}
// Filtrer les films par catégorie
function filterFilms(category) {
const filmsGrid = document.getElementById('films-grid');
if (category === 'all') {
genererFilmsGrid(filmsData, filmsGrid);
} else {
const filteredFilms = filmsData.filter(film => film.category === category);
genererFilmsGrid(filteredFilms, filmsGrid);
}
// Mettre à jour les boutons actifs
document.querySelectorAll('.category-btn').forEach(btn => {
if (btn.dataset.category === category) {
btn.classList.add('active');
} else {
btn.classList.remove('active');
}
});
}
// Initialisation
document.addEventListener('DOMContentLoaded', () => {
// Charger les nouveautés (5 premiers films)
const nouveautes = filmsData.filter(film => film.nouveau);
genererFilmsGrid(nouveautes, document.getElementById('nouveautes-grid'), 5);
// Charger tous les films
genererFilmsGrid(filmsData, document.getElementById('films-grid'));
// Gestion des catégories
document.querySelectorAll('.category-btn').forEach(btn => {
btn.addEventListener('click', function() {
const category = this.dataset.category;
filterFilms(category);
});
});
// Simulation de chargement
setTimeout(() => {
document.querySelectorAll('.film-card').forEach(card => {
card.style.opacity = '1';
});
}, 300);
});
// Gestion des touches du clavier
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape' && videoPlayer.style.display === 'flex') {
moviePlayer.src = '';
videoPlayer.style.display = 'none';
document.body.style.overflow = 'auto';
}
});
</script>
<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/cin-futur" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>