ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
Das Sonnensystem live in 3D entdecken, den Sternenhimmel für deinen Ort sehen und auf einer interaktiven Weltgeschichte-Karte alle Imperien von 3400 v. Chr. bis heute erleben — dazu nebenbei Musik hör
교육TypeScript · HTMLGitHub @solomongrishnakh-crypto온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기play music
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Musik-Website mit React/Next.js: dunkles, futuristisches UI, animierter Partikel-Hintergrund, Songsuche über die echte YouTube Data API, Wiedergabe direkt im Browser über den offiziellen YouTube-Player, „zuletzt gehört"-Verlauf wird im Browser des jeweiligen Besuchers gespeichert.
npm install
cp .env.local.example .env.local
# YOUTUBE_API_KEY in .env.local eintragen (siehe unten)
npm run dev
Danach: http://localhost:3000
Hinweis: In der Umgebung, in der dieses Gerüst erstellt wurde, war npm-Registry-Zugriff gesperrt. Die Dateien wurden von Hand geschrieben (entspricht
create-next-app --typescript --tailwind --app --src-dir).npm installbei dir lokal sollte normal funktionieren.
.env.local als YOUTUBE_API_KEY eintragen.Das kostenlose Standardkontingent (10.000 Einheiten/Tag) reicht für moderaten Suchverkehr; eine Suche kostet ca. 100 Einheiten.
/api/search?q=... auf (eigene Next.js
API-Route). Diese Route ruft serverseitig die YouTube Data API auf — der
API-Key steht nur in der Server-Umgebungsvariable und wird nie an den
Browser ausgeliefert.src/components/player/YoutubePlayer.tsx).
Der Ton läuft über YouTubes eigenen, echten Player — die Website
extrahiert oder speichert nie einen eigenen Audio-Stream.src/lib/history/recentlyPlayed.ts speichert die zuletzt
gespielten Songs im localStorage des Besuchers. Kein Login, kein
Server-Speicher nötig — beim nächsten Besuch im selben Browser ist der
Verlauf wieder da (bis zu 20 Einträge).src/
app/
api/search/route.ts Server-Route: ruft YouTube Data API auf (Key bleibt geheim)
layout.tsx Root-Layout, dunkles Theme
page.tsx Startseite: Suche, Ergebnisse, Verlauf, Player-Bar
globals.css Tailwind + Theme-Utilities
components/
particles/ParticleBackground.tsx Canvas-2D-Partikelsystem (ständig animiert)
search/
SearchBar.tsx Große Suchleiste
SearchResults.tsx Ergebnis-Grid (Suche + „Zuletzt gehört")
SongCard.tsx Einzelne Karte (Cover/Titel/Künstler)
player/YoutubePlayer.tsx Player-Bar unten, steuert YouTube-IFrame-Player
lib/
youtube/search.ts YouTube-Data-API-Anbindung (nur serverseitig genutzt)
history/recentlyPlayed.ts „Zuletzt gehört"-Speicherung (localStorage)
audio/useAudioReactivity.ts Hook-Schnittstelle für künftige Partikel-Musikreaktivität
types/music.ts Song-Datentyp
Diese Version spielt Musik für beliebige Besucher direkt auf der Website ab. Das geht nur legal über eine autorisierte Quelle — hier den offiziellen, eingebetteten YouTube-Player. Es gibt bewusst keine Anbindung an eine modifizierte/ReVanced-App oder sonstige Stream-Extraktion: Das wäre unlizenzierte Wiedergabe fremder, urheberrechtlich geschützter Musik und damit nicht zulässig, egal wie die Web-App das technisch verstecken würde.
useAudioReactivity() liefert aktuell einen
simulierten Pegel. Eine echte Kopplung an den YouTube-Player ist möglich
(z. B. über Web Audio API auf das <video>-Element im IFrame, sofern
YouTube das zulässt) — noch nicht umgesetzt.