"use client"; import Image from "next/image"; import { useEffect, useRef, useState } from "react"; import { ScrollReveal } from "@/components/ScrollReveal"; import { useInView } from "@/hooks/useInView"; import { useMockupProgress } from "@/hooks/useMockupProgress"; import { SectionScrollTitle } from "@/components/SectionScrollTitle"; function FilmStripIcon({ className }: { className?: string }) { return ( ); } function YouTubeIcon({ className }: { className?: string }) { return ( ); } function CoinsIcon({ className }: { className?: string }) { return ( ); } function PlaylistIcon({ className }: { className?: string }) { return ( ); } function NoteIcon({ className }: { className?: string }) { return ( ); } function WaveIcon({ className }: { className?: string }) { return ( ); } function GearsIcon({ className }: { className?: string }) { return ( ); } const BENEFITS = [ { title: "No editing required", desc: "Skip complex video editors. Just upload an image and audio, and Songs2YT handles the rest.", Icon: FilmStripIcon, }, { title: "YouTube-ready output", desc: "Videos are encoded and uploaded with the metadata you set, ready for your channel.", Icon: YouTubeIcon, }, { title: "Free tier included", desc: "Start creating with 14 videos every 12 hours at up to 720p. No credit card needed.", Icon: CoinsIcon, }, { title: "YouTube playlists", desc: "Independent Artist (Pro) can create YouTube playlists and add every upload from the dashboard or API.", Icon: PlaylistIcon, }, ] as const; const STOCK_THUMBS = [ "https://images.unsplash.com/photo-1511379938547-c1f69419868d?w=120&h=120&fit=crop&auto=format", "https://images.unsplash.com/photo-1470225620780-dba8ba36b745?w=120&h=120&fit=crop&auto=format", "https://images.unsplash.com/photo-1514320291840-2e0a9bf2a9ae?w=120&h=120&fit=crop&auto=format", "https://images.unsplash.com/photo-1487180144351-b8472da7d491?w=120&h=120&fit=crop&auto=format", "https://images.unsplash.com/photo-1598488035139-bdbb2231ce04?w=120&h=120&fit=crop&auto=format", "https://images.unsplash.com/photo-1571330735066-03aaa9429d89?w=120&h=120&fit=crop&auto=format", "https://images.unsplash.com/photo-1619983081563-430f63602796?w=120&h=120&fit=crop&auto=format", "https://images.unsplash.com/photo-1483412033650-1015ddeb83d1?w=120&h=120&fit=crop&auto=format", ] as const; function TypewriterText({ text }: { text: string }) { const [displayed, setDisplayed] = useState(""); const [done, setDone] = useState(false); useEffect(() => { let index = 0; const interval = setInterval(() => { index += 1; setDisplayed(text.slice(0, index)); if (index >= text.length) { clearInterval(interval); setDone(true); } }, 45); return () => clearInterval(interval); }, [text]); return ( {displayed} {!done && |} ); } function BenefitCard({ title, desc, Icon, }: { title: string; desc: string; Icon: typeof FilmStripIcon; }) { return (
{desc}
{processed ? "Processed" : "Processing..."}
YouTube
DIRECT UPLOAD