個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證The Yesify app. A clean native built music player with a glass morphism design
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A small, native Windows music player (C# / WPF, no WebView, no Electron). Paste a Spotify link and it plays, with the audio coming from YouTube. No account, no Premium, no ads, no skip limits, no telemetry, no obfuscated code.
Yesify.exe --tray starts straight into the tray.Long playlists: the first 100 songs come from Spotify's public embed page, and the rest load in the background through Spotify's player backend, using the anonymous token the embed page hands every visitor. That backend is undocumented. If Spotify changes it, you'll get the first 100 songs instead of an error.
Needs the .NET 8 SDK on Windows 10 or 11.
dotnet run -c Release
Or double-click Yesify.bat, which runs the published exe if there is one and otherwise builds from
source.
To build the single portable exe that Yesify.bat launches (about 160 MB, no .NET install needed). It
is left uncompressed on purpose: Windows maps it from disk on demand, while a compressed exe would have
to unpack itself into RAM.
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:DebugType=none -o publish
Yesify.exe "some song" or Yesify.exe <link> opens straight to that search or link.
Everything stays on your PC, in %APPDATA%\Yesify:
| File | Contents |
|---|---|
settings.json | Settings and the playlists/albums imported into your library |
liked.json | Liked Songs |
playlists.json | Your own playlists (their pictures are in covers\) |
session.json | The song, position and queue to pick up where you left off |
library-tracks.json | Songs of imported playlists, for library search |
covers.json, spotify-tracks-v2.json, matches-v3.json | Caches: cover URLs, track details, and which YouTube upload each song plays |
Writes go to a temp file first and are then swapped in, so a crash can't corrupt them. Audio is cached
in %LOCALAPPDATA%\Yesify\cache.
| File | Role |
|---|---|
Services/SpotifyEmbedService.cs | Reads track lists from Spotify's public embed page (open.spotify.com/embed/...) |
Services/CoverService.cs | Per-song covers from Spotify's public oEmbed endpoint |
Services/YouTubeService.cs | Matches each song to a YouTube Music upload (artist, title, duration, explicit version) and downloads the audio with YoutubeExplode |
Services/Mp4Fixer.cs | Removes an edit-list box that makes Windows decode some YouTube files as silence |
Services/AudioPlayer.cs | NAudio + Windows Media Foundation playback, plus a smooth playback clock for lyrics |
Services/PreciseSeekReader.cs | Sample-exact seeking (Media Foundation's own seeking lands up to 14 s off on these files) |
Services/LyricsService.cs | NetEase word-timed lyrics, LRCLIB fallback, LRC parsing |
Services/LibraryService.cs | Your playlists and the library search index |
Services/LikedService.cs | Local Liked Songs |
Services/DiscordPresence.cs | Discord Rich Presence over Discord's local pipe (no SDK) |
MediaSession.cs | Windows media session (SystemMediaTransportControls) through plain COM calls |
LyricsAnimator.cs | The Apple Music-style word sweep and the dots during instrumental breaks |
Frost.cs | Frosted-glass pop-ups (blurs a live picture of the window behind them) |
ViewModels/MainViewModel*.cs | Playback, queue, shuffle and repeat, library, playlists, settings |
Note: streaming audio from YouTube outside YouTube's own apps goes against YouTube's Terms of Service. If YouTube changes something and playback breaks, update the YoutubeExplode package first.