[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-105294":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":10,"trendingCount":16,"starSnapshotCount":16,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},105294,"meiro","elianiva\u002Fmeiro","elianiva","Lightweight Youtube Music client in MyGo!!!!!","",null,"Go",275,21,129,4,0,17,51,70.23,"GNU General Public License v3.0",false,"master",true,[],"2026-11-01 00:13:43","\u003Cp align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs\u002Fpromo\u002Fhero-dark.png\">\n    \u003Cimg alt=\"Meiro: YouTube Music, without the bloat. Takes only about 100 MB, no ads, Last.fm scrobbling, synced lyrics, colours that match each song.\" src=\"docs\u002Fpromo\u002Fhero-light.png\" width=\"800\">\n  \u003C\u002Fpicture>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#install\">Install\u003C\u002Fa> ·\n  \u003Ca href=\"#features\">Features\u003C\u002Fa> ·\n  \u003Ca href=\"#screenshots\">Screenshots\u003C\u002Fa> ·\n  \u003Ca href=\"#troubleshooting\">Troubleshooting\u003C\u002Fa> ·\n  \u003Ca href=\"#build-from-source\">Build\u003C\u002Fa> ·\n  \u003Ca href=\"CONTRIBUTING.md\">Contribute\u003C\u002Fa>\n\u003C\u002Fp>\n\nA lightweight desktop music player for YouTube Music. Meiro has a native\ninterface rather than a browser-based one, and typically uses about 100 MB of\nmemory. It plays music without loading the YouTube Music web page, and can\nscrobble your listening to Last.fm.\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"docs\u002Fscreenshots\u002Flyrics.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Flyrics.png\" alt=\"Full player with synced lyrics, the sung line lit in the middle\" width=\"720\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n> **Beta and unofficial.** Meiro is an independent project. It is not made,\n> endorsed or supported by YouTube or Google, and it uses YouTube's private web\n> interfaces, which YouTube can change at any time. When that happens, parts of\n> Meiro (browsing, search, playback, sign-in) may stop working until it is\n> updated. See [Known issues](#known-issues) and\n> [Troubleshooting](#troubleshooting).\n\n## Features\n\n### Find your music\n\n- **Home and Explore.** The same recommendations, new releases and charts you\n  see on YouTube Music, plus artist, album and playlist pages.\n- **Search.** Look up songs, albums, artists and playlists, and filter the\n  results. Your recent searches are saved.\n- **Podcasts.** Browse shows and episodes, read episode details, and pick up\n  where you left off.\n- **Song menus.** Play a song next, add it to a playlist, start a radio from\n  it, go to the artist, or copy a link to share.\n\n### Listen\n\n- **No web-page ads.** Meiro plays the music directly instead of loading the\n  YouTube Music web page, so it does not show ads from that page.\n- **Everything you expect from a player.** Play, pause, skip, shuffle, repeat,\n  volume, and a queue you can see and change. A small player follows you while\n  you browse, and the full player shows the queue, lyrics and related songs.\n- **Lyrics that follow the song.** The line being sung is highlighted as the\n  song plays. You can switch to plain text.\n- **Music that keeps going.** When your queue ends, Meiro adds similar songs so\n  the music does not stop.\n- **Pick up where you left off.** Open Meiro again and your queue and song are\n  waiting for you.\n- **Keeps playing when you close the window.** On macOS and Windows, open the\n  mini player from the tray. On Linux, the tray menu offers **Open Meiro** and\n  **Quit**; the mini player is not available there.\n- **Works with your computer's controls.** Use your media keys, the Now Playing\n  widget on Mac, or the media controls on Linux.\n- **Share what you hear on Discord.** With Discord or another client that\n  supports Discord Rich Presence running, enable Discord Rich Presence in\n  Settings → Desktop to show the current track, artist, cover and a time bar\n  with the elapsed time and the track's length; the member list shows the\n  artist. Some clients require you to enable RPC in their settings. Meiro\n  clears the activity when playback pauses or stops.\n- **Keyboard shortcuts.** Control music from the keyboard, and change the keys\n  to what suits you.\n\n### Your account and library\n\n- **Sign in with your Google account.** Get your personalized Home feed and\n  Library.\n  Meiro never sees your password. You can still browse and play without\n  signing in.\n- **Manage your library.** Like songs, follow artists, save albums and\n  playlists, and create or delete your own playlists.\n- **Organize playlists.** Sort a playlist by title, artist or length, or\n  search inside it.\n\n### Make it sound and look yours\n\n- **Equaliser.** Adjust the bass, treble and everything between, or pick a\n  preset. Turn on volume levelling so songs play at a similar loudness.\n- **Colours and themes.** Light, dark, or follow your computer. Pick a colour,\n  or let the app take its colours from the album art of the song playing.\n  Take the colours from matugen to [match the rest of the desktop exactly](#match-your-desktop-with-matugen).\n- **Zoom.** Make everything on screen larger or smaller, from 80% to 200%, in\n  Settings → Appearance or with `Cmd`\u002F`Ctrl` and `=` or `-`.\n\n### Keep track of what you hear\n\n- **Last.fm scrobbling.** Connect your Last.fm account and Meiro scrobbles the\n  tracks you play to your profile. Pause scrobbling any time.\n- **Listening stats.** See your listening time by day. The history stays on\n  your computer, and you can delete it whenever you like.\n\n### Light and simple\n\n- **Small and quick.** Meiro typically uses about 100 MB of memory, much less\n  than YouTube Music in a browser tab.\n- **Caches recent songs.** Tracks you played recently load faster next time.\n  Choose how many to keep, or turn the cache off.\n- **Updates itself.** Meiro checks for new versions once a day. You can turn\n  this off.\n\n## Screenshots\n\nScreenshots show Meiro using a signed-in YouTube Music account. Click an\nimage to see it full size.\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fhome.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fhome.png\" alt=\"Home page with personalized recommendations\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Home\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fexplore.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fexplore.png\" alt=\"Explore page with new albums and top songs\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Explore\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Flibrary.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Flibrary.png\" alt=\"Library with saved playlists and artists\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Library\u003C\u002Fsub>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fsearch.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fsearch.png\" alt=\"Search results with category filters\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Search\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fartist.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fartist.png\" alt=\"Artist page with top songs\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Artist\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fplaylist.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fplaylist.png\" alt=\"Playlist page with its track list\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Playlist\u003C\u002Fsub>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fplayer.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fplayer.png\" alt=\"Full player with the queue\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Player and queue\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Frelated.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Frelated.png\" alt=\"Full player with related tracks\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Related tracks\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fstats.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fstats.png\" alt=\"Listening stats with plays per day\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Listening stats\u003C\u002Fsub>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fsettings-appearance.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fsettings-appearance.png\" alt=\"Appearance settings with theme and palette\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Appearance\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fsettings-sound.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fsettings-sound.png\" alt=\"Equaliser settings\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Equaliser\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"docs\u002Fscreenshots\u002Fsettings-keyboard.png\">\u003Cimg src=\"docs\u002Fscreenshots\u002Fsettings-keyboard.png\" alt=\"Keyboard shortcut settings\" width=\"300\">\u003C\u002Fa>\u003Cbr>\u003Csub>Shortcuts\u003C\u002Fsub>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Install\n\nDownload the latest build for your system from the\n[releases page](https:\u002F\u002Fgithub.com\u002Felianiva\u002Fmeiro\u002Freleases).\n\n### Which file do I download?\n\nThe release page lists several files. Choose one for your system:\n\n**Step 1. Find your system.**\n\n| You have | Download the file that ends in |\n| --- | --- |\n| A Mac (any Mac) | `.dmg` |\n| Windows, no installer | `-portable.zip` |\n| Ubuntu, Debian, Linux Mint, Pop!_OS | `.deb` |\n| Fedora | `.rpm` |\n| Any Linux with Flatpak (full build only) | `.flatpak` |\n| Arch, Manjaro, or any other Linux | `.AppImage` |\n\nOn Windows, you can also choose the `-setup.exe` installer instead.\n\nArch does not have a native package yet. The `.AppImage` runs without an\ninstaller: make the file executable, then open it.\n\n**Step 2. Choose the right processor (Linux only).** Most computers use\n`amd64`. Choose `arm64` only for an ARM computer. To check, open a terminal\nand run `uname -m`.\n\n- It prints `x86_64`: choose the file with `amd64` in its name.\n- It prints `aarch64`: choose the file with `arm64` in its name.\n\nMacs and Windows need no chip choice. One `.dmg` works on Apple Silicon and on\nIntel. Windows downloads are for `amd64`.\n\n**Step 3. Choose a full or minimal build.** The full build is the easiest\noption. Files with `-minimal` in the name are for people who already have\n`ffmpeg`, `yt-dlp`, and Node.js or Bun installed. Without those tools, playback\nwill not work. Choose a file without `-minimal` unless you specifically want\nthe minimal build.\n\nIf you do use a minimal build, keep `yt-dlp` up to date (for example\n`yt-dlp -U`, or your package manager's latest). An old `yt-dlp` can cause slow\nor failed playback.\n\nDo not download files named `update-*.json`, files ending in `.delta`, or the\nWindows update `.tar.gz` archive. Meiro uses those files to update itself.\nThe Linux `.tar.gz` package is for Linux users.\n\nFor example, on Ubuntu with a normal Intel or AMD computer, download\n`Meiro-\u003Cversion>-linux-amd64.deb`.\n\n### Install steps\n\n**macOS:** Open the disk image and drag Meiro to Applications. The app is not\nnotarized by Apple yet, so the first time, right-click it and choose **Open**\n(or allow it under System Settings > Privacy & Security).\n\n**Linux:** Install the `.deb` on Debian or Ubuntu, or the `.rpm` on Fedora or a\ncompatible RPM-based distribution. With Flatpak, run\n`flatpak install --user Meiro-\u003Cversion>-linux-amd64.flatpak`. You can also make the `.AppImage` executable\nand run it, or unpack the `.tar.gz` and run its `install.sh`. All Linux builds\nneed GTK 3 and WebKitGTK 4.1. The tray also needs the AppIndicator runtime:\nDebian\u002FUbuntu packages install `libayatana-appindicator3-1`, and Fedora packages\ninstall `libayatana-appindicator-gtk3`. If you use an AppImage or `.tar.gz`,\ninstall the matching package yourself. Other distributions may use a different\npackage name.\n\n**Windows portable version:** Extract the `-portable.zip` file, keeping the\nfiles together, then open `Meiro.exe` in the extracted `Meiro` folder. It does\nnot need an installer or administrator permission. Settings and other user\ndata stay in your Windows user profile. You can also run the `-setup.exe`\ninstaller. **Windows support is untested.** Please report any problems you\nfind.\n\n## Signing in\n\nTo see your personalized Home feed and Library, choose **Sign in** and then\n**Sign in with a browser window**. Meiro opens a separate browser window with a\nnew, empty profile, and you sign in to your Google account there. Meiro never\nsees your password. When the sign-in finishes, Meiro takes the YouTube Music\nsession from that window, closes it, and deletes its profile.\n\nMeiro opens the window in your system's default browser when that browser is\nChrome, Edge, Brave, Helium, Chromium, Vivaldi, Firefox or Zen. If your\ndefault browser is something else, such as Safari, Meiro uses the first of\nthose browsers that it finds installed. A Firefox or Zen default that it\ncannot find, or cannot read because yt-dlp is missing, falls back to the first\nChromium-based browser it finds. Firefox and Zen need yt-dlp, which Meiro\nalso needs for playback.\n\nThe Flatpak cannot open a browser window until you let it start programs\noutside its sandbox. It does not ask for this permission by default. To grant\nit, run this command, then restart Meiro:\n\n```sh\nflatpak override --user --talk-name=org.freedesktop.Flatpak com.elianiva.meiro\n```\n\nTo remove the permission again, run\n`flatpak override --user --no-talk-name=org.freedesktop.Flatpak com.elianiva.meiro`.\nWithout it, you can still sign in by importing from a browser or by pasting\nthe Cookie header.\n\nYouTube Music does not offer a sign-in method for third-party apps. Meiro uses\na browser session, which has the same account access as that browser session.\nTreat it like a password.\n\n### Limits of the browser window\n\n- **A supported browser must be installed.** The window needs Chrome, Edge,\n  Brave, Helium, Chromium, Vivaldi, Firefox or Zen. Safari cannot be used for\n  it, even when it is your default browser. If you have none of the supported\n  browsers, use one of the other ways below.\n- **Google may refuse the sign-in.** Google may show \"This browser or app may\n  not be secure\" or block the sign-in. Its checks can change at any time. If\n  that happens, try one of the other sign-in options below.\n- **The window is not your browser.** Your bookmarks, extensions, saved\n  passwords and other sessions are not there. You may need to complete a\n  second-factor step.\n- **Close the window only after it finishes.** If you close it early, the\n  sign-in stops and you can try again. A sign-in that takes more than five\n  minutes stops by itself.\n- **The session can still end.** YouTube can end a session at any time, for\n  example when you sign out everywhere or change your password. Meiro then asks\n  you to sign in again. A session that you took from the sign-in window is\n  never opened in a browser again, so it is not renewed behind your back.\n\n### Other ways to sign in\n\nThese are under **Advanced** in the sign-in dialog. Sign in at\n[music.youtube.com](https:\u002F\u002Fmusic.youtube.com) in a browser first, then choose\n**Import from a browser** in Meiro. Meiro can import from Chrome,\nSafari, Firefox, Brave or Edge. It can also import from Helium when it finds a\nbrowser profile. You can also paste the `Cookie` header of a request to\nmusic.youtube.com.\n\nThese two ways copy a session that your own browser keeps using. YouTube\nreplaces the cookies of a session while a browser has it open, and the older\ncopy then stops working. A copy like this can end within hours, and you have to\nsign in again. Prefer the browser window.\n\nMeiro stores the session in a file that only your user can read, encrypted\nwith a key it keeps in the system credential store: the Keychain on macOS, the\nSecret Service (such as GNOME Keyring or KWallet) on Linux, and the Credential\nManager on Windows. On macOS, the first launch after an update asks once to\nuse the key: choose **Always Allow**. If the system has no credential store,\nthe file is not encrypted. A locked or failing credential store does not make\nMeiro write the session unencrypted. Choose **Sign out** to remove Meiro's saved session.\n\nPublic browsing and playback do not need an account.\n\n## Match your desktop with matugen\n\nMeiro can use the full set of colours matugen makes, so it matches your other\napps. Matugen writes them to their own file, `colors.json`, so your settings\nare never touched.\n\n1. Copy [`meiro-colors.json`](docs\u002Fmatugen\u002Fmeiro-colors.json) to\n   `~\u002F.config\u002Fmatugen\u002Ftemplates\u002F`.\n2. Add it to `~\u002F.config\u002Fmatugen\u002Fconfig.toml`. The output goes in Meiro's data\n   folder, next to `settings.json` (`~\u002F.config\u002FMeiro` on Linux,\n   `~\u002FLibrary\u002FApplication Support\u002FMeiro` on macOS, `%AppData%\\Meiro` on\n   Windows):\n\n   ```toml\n   [templates.meiro]\n   input_path = \"~\u002F.config\u002Fmatugen\u002Ftemplates\u002Fmeiro-colors.json\"\n   output_path = \"~\u002F.config\u002FMeiro\u002Fcolors.json\"\n   ```\n\n3. Run matugen as usual, for example `matugen image wallpaper.png`.\n4. In Settings → Appearance, set **Colour source** to **Matugen**.\n\nMeiro recolours as soon as the file changes, and goes back to your seed if you\ndelete it. The file holds a light and a dark set, so Settings → Appearance →\nTheme still chooses between them. While the source is Matugen, the colour and\npalette pickers are hidden; **Fixed** brings both back and **Artwork** brings\nback the palette, and the file is ignored. A role the file leaves out keeps the\ncolour Meiro makes from your seed.\n\n## Troubleshooting\n\n**Where are the logs?** Open **Settings** and choose **Open logs folder** under\nLogs. Meiro writes `meiro.log` there, rolling over to three older files. The\ntop of each file lists the versions of Meiro, ffmpeg and yt-dlp in use. Meiro\nremoves passwords and cookies from log lines before it writes them, but read a\nlog before you post it.\n\n**I can't sign in.**\n- If the browser window does not open, or Google says the browser is not\n  secure, install Chrome, Edge, Brave, Helium, Chromium, Vivaldi, Firefox or\n  Zen, or use one of the other ways to sign in.\n- If you imported a session and it ended, sign in again with the browser\n  window. An imported session stops working when your browser renews its\n  cookies.\n- To import, sign in at [music.youtube.com](https:\u002F\u002Fmusic.youtube.com) in the browser\n  first, then pick that same browser in Meiro. Use a profile where you are\n  signed in to YouTube Music.\n- Close the browser, or try again after it has been open for a moment. Some\n  browsers lock their cookie file while running.\n- On Linux, the browser's cookies are encrypted with the desktop keyring. If\n  the keyring is locked or missing, unlock it, or try another browser.\n- If YouTube signed you out in the browser, the saved session is no longer\n  valid. Choose **Sign out** and sign in again.\n- You can browse and play public music without signing in.\n\n**Nothing plays, or a track fails.**\n- Check that you are online, then try another track. Some tracks are not\n  available in your region or need an account (age-restricted or Premium\n  tracks).\n- Meiro finds streams with yt-dlp. YouTube changes often, and an old yt-dlp\n  stops working. Install a release of Meiro with a newer yt-dlp, or, with a\n  minimal build, update the `yt-dlp` on your `PATH`.\n- Look for the error in the log (see above).\n\n**ffmpeg or yt-dlp problems.** The full build bundles both. The minimal build\nneeds `ffmpeg`, `yt-dlp`, and Node.js or Bun on `PATH`; if one is missing or\ntoo old, playback fails. Run `ffmpeg -version` and `yt-dlp --version` in a\nterminal to check them. The log header shows which versions Meiro found.\n\n**Linux does not start.** Meiro needs GTK 3 and WebKitGTK 4.1. Install them\nwith your package manager.\n\n**The Linux tray icon is missing, or Open Meiro does not restore the window.**\nThe tray needs the AppIndicator runtime and a desktop panel that supports\nAppIndicator or StatusNotifier icons. GNOME may need an AppIndicator extension\nenabled. The `.deb` and `.rpm` packages install the runtime; for an AppImage or\n`.tar.gz`, install `libayatana-appindicator3-1` on Debian\u002FUbuntu or\n`libayatana-appindicator-gtk3` on Fedora. When the icon appears, choose\n**Open Meiro** from its menu to restore the main window. Linux tray protocols\ndo not report icon clicks or icon position, so a separate mini-player flyout\nwould open in the center of the primary display's work area rather than beside\nthe tray icon. Meiro skips that flyout; its Linux tray menu only offers\n**Open Meiro** and **Quit**. If the tray is unavailable, the main player still\nworks, but **Close to tray** does not. Linux media controls use MPRIS and do\nnot depend on the tray.\n\n**macOS says the app can't be opened.** Meiro is not notarized yet. Right-click\nit and choose **Open**, or allow it in System Settings > Privacy & Security.\n\nStill stuck? Settings has a report button that opens a GitHub issue prefilled\nwith your versions. Otherwise\n[open an issue](https:\u002F\u002Fgithub.com\u002Felianiva\u002Fmeiro\u002Fissues) and attach the\nrelevant part of the log.\n\n## Known issues\n\n- Meiro depends on YouTube's private interfaces and on yt-dlp, so a change on\n  YouTube's side can break browsing, playback or sign-in until a fix ships.\n- The Windows build is untested (see [Install](#install)).\n- The macOS app is not notarized, so the first launch needs the manual step\n  above.\n- Sign-in uses a browser session, because YouTube Music offers no sign-in for\n  other apps. Google may refuse the browser window (see\n  [Limits of the browser window](#limits-of-the-browser-window)).\n  Sessions that you import from your own browser can stop working within hours.\n- Tracks that YouTube restricts for your region or account may not play.\n\nSee the [open issues](https:\u002F\u002Fgithub.com\u002Felianiva\u002Fmeiro\u002Fissues) for the rest.\n\n## Privacy\n\nMeiro does not run its own account service, analytics, telemetry or servers.\nIt connects to YouTube and Google for YouTube Music, streams and artwork, and\nuses yt-dlp to find streams. If you connect Last.fm in Settings, Meiro also\nsends your listening there. When automatic updates are enabled, Meiro contacts\nits update server to check for new versions. You can turn this off in Settings\nunder Updates.\n\nWhat Meiro keeps on your device:\n- **Settings**, **listening history** (the latest plays, used for the stats),\n  and the **playback state**, in the app's user data folder. Settings has a\n  button to clear the history.\n- **Your session**, if you sign in, in a file readable only by your user,\n  encrypted with a key in the system credential store when there is one.\n  **Sign out** removes it.\n  The session has the same access to your account as the browser session it\n  came from, so treat it like a password.\n- **Your Last.fm session**, if you connect Last.fm, stored the same way,\n  apart from the settings, which hold only the account's name. Meiro\n  never sees your Last.fm password: you approve it on Last.fm's own page.\n  Plays that could not be sent wait in a file beside it. **Disconnect** deletes\n  both.\n- **Cached audio and artwork**, in the cache folder you chose. Set the audio\n  limit to `0` to turn the audio cache off.\n- **Logs**, with secrets removed, in the logs folder.\n\nMeiro reads cookies only when you choose to sign in, and only to take the\nYouTube Music session. With the browser window, it reads them from the window\nthat it opened. With an import, it reads them from the browser that you pick.\n\n## Non-goals\n\nMeiro stays small on purpose. These things stay out of scope and will not be\nimplemented. If you open a pull request that adds one of them, I will not\naccept it. Feel free to maintain a fork of your own if you want to add these\nfeatures.\n[GroophyLifefor\u002Fmeiro](https:\u002F\u002Fgithub.com\u002FGroophyLifefor\u002Fmeiro) is a great\nexample. They built SoundCloud, a sync server, MusicBrainz linking,\nrecommendations and a listening history page, among many other things, on top\nof Meiro. It is not part of Meiro, but feel free to check it out if you want to\nsee how these features can work.\n\n- **Video.** Music videos play as audio, with a badge on the artwork. Meiro\n  shows no picture.\n- **Local files.** Meiro plays what YouTube Music has. It does not import your\n  own audio files.\n- **Uploads.** Meiro does not upload music to YouTube Music or manage an\n  upload library.\n- **Casting.** Meiro plays on the computer it runs on. It does not send the\n  music to a TV, a speaker or another device.\n- **Other services.** Meiro plays YouTube Music only. It does not play from\n  Spotify, Apple Music or another service.\n- **Social features.** Meiro changes only your own library: likes, saved\n  albums, follows and your own playlists. It does not comment, share a library\n  or collaborate on a playlist.\n\n## Build from source\n\nYou need [Bazel](https:\u002F\u002Fbazel.build\u002F), installed through\n[bazelisk](https:\u002F\u002Fgithub.com\u002Fbazelbuild\u002Fbazelisk) so it reads the pinned\nversion from `.bazelversion`.\n\n```sh\nbazel run \u002F\u002F:dev                          # live reload; ffmpeg and yt-dlp must be on PATH\nbazel run \u002F\u002F:dist -- --run linux-amd64    # build the production app with bundled tools, then open it\nbazel run \u002F\u002F:dist -- --run --minimal linux-amd64   # build and open with system ffmpeg, yt-dlp, and Node.js\u002FBun\n```\n\n`bazel run \u002F\u002F:dist -- \u003Cplatform>` builds into `build\u002F\u003Cplatform>\u002F`. The\nplatforms are `darwin-universal`, `darwin-arm64`, `darwin-amd64`,\n`linux-amd64` and `linux-arm64`.\n\nThe minimal build expects `ffmpeg`, `yt-dlp`, and either Node.js or Bun on\n`PATH`. It does not bundle any of these tools or a JavaScript runtime.\n\nReleases include full and minimal builds: a universal DMG for macOS, a Windows\n`amd64` installer for each build and a full-build portable ZIP, plus Linux\n`amd64` and `arm64` `.deb`, `.rpm`, `.flatpak` (full build only), `.AppImage`, and `.tar.gz` downloads.\nMinimal downloads include `-minimal` in the filename. Find them on the\n[releases page](https:\u002F\u002Fgithub.com\u002Felianiva\u002Fmeiro\u002Freleases).\n\n## Contributing\n\nBug reports, fixes and docs are welcome. Read\n[CONTRIBUTING.md](CONTRIBUTING.md) first, and check the\n[non-goals](#non-goals) before you propose a feature.\n\n## About\n\nI use YouTube Music exclusively. It doesn't have a desktop app, and the web app\nis such a resource hog: it takes around 600-800 MB of RAM on day-to-day use. So\nI decided what someone with a lot of tokens to spare would do: make it myself.\n\nThe app is built using [MyGO!!!!!](https:\u002F\u002Fgithub.com\u002Fegoist\u002Fmygo), a framework\nfor building native desktop apps with a low footprint using Go. It's relatively new, and\nI just wanted to try it out myself :p It's built using the Material 3 Expressive\ndesign language, because, duh?\n\nBasically what I'd expect from the official YouTube Music, since we're supposed\nto be using Material 3 Expressive at this point. Google hasn't done it (yet?),\nso I made it myself.\n\n### Where the name comes from\n\nMeiro is built with the [MyGO](https:\u002F\u002Fgithub.com\u002Fegoist\u002Fmygo) framework, and\nits name comes from one of MyGO!!!!!'s songs,\n[迷路日々](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=STgVa-reZkM). The title is written\nwith the characters for *meiro* (迷路, \"maze\") and *hibi* (日々, \"days\"), so it\nreads as \"maze days\" or \"meiro days\". But the song is pronounced \"Melody\"\n(メロディ), a pun on the English word. The app is named Meiro after the first\nhalf of the title.\n\n## Credits\n\n- [MyGo](https:\u002F\u002Fmygo.egoist.dev\u002F) by [EGOIST](https:\u002F\u002Fgithub.com\u002Fegoist),\n  the framework that draws Meiro's native window and interface.\n- [ffmpeg](https:\u002F\u002Fffmpeg.org) decodes the audio,\n  [yt-dlp](https:\u002F\u002Fgithub.com\u002Fyt-dlp\u002Fyt-dlp) finds the streams, and\n  [QuickJS](https:\u002F\u002Fgithub.com\u002Fquickjs-ng\u002Fquickjs) runs the JavaScript yt-dlp\n  needs to solve YouTube's challenges when Node or Bun is not installed. The\n  full build ships all three; the minimal build leaves them all to the system.\n  See\n  [`resources\u002FTHIRD-PARTY-NOTICES.md`](resources\u002FTHIRD-PARTY-NOTICES.md).\n- [Google Sans](https:\u002F\u002Fgithub.com\u002Fgooglefonts\u002Fgooglesans) sets the text,\n  under the SIL Open Font License (`fonts\u002FOFL.txt`).\n\n## License\n\nMeiro is free software, under the [GNU General Public License v3.0](LICENSE).\n\nMeiro is an independent project and is not affiliated with or endorsed by\nYouTube or Google.\n",2,"2026-10-31 04:26:20","CREATED_QUERY"]