YVL Privacy Policy
Effective date: 12 October 2026.
YVL is a Discord application operated by the YVL developer team. Contact the application owner, aycande, through Discord. A server administrator can also help route a request to the owner. This policy describes the current bot and the Activity build being prepared for release. Features depend on each server's settings and the permissions granted to the bot.
Information processed
- Discord account and server information: user and server IDs, usernames/display names, avatars, membership, roles, server tag status, boost eligibility, channel IDs, permissions, and relevant Discord events. This supports tag roles, profiles, personal roles, server setup and access checks.
- Community records: tag start/loss times; member-to-personal-role IDs; invite codes, inviter/member IDs, join time, account creation time and whether a member left; song votes linked to user IDs and song-post IDs; notification role membership; gallery post IDs and reaction totals. Settings and posting schedules include server, channel, role and bot-message IDs.
- Moderation: when enabled, the bot examines message text, embed descriptions/URLs and attachment URLs for blocked links, and gallery messages for media. Warning records contain user/message IDs, timestamps, categories and strike counts. Access-restriction records include reasons, moderator IDs when supplied, affected roles/channels and previous/applied permission states needed to restore access. The reviewed code does not create a full chat archive or save complete offending message text in those local moderation records.
- Discord logs and public displays: configured logs may show mentions, names, avatars, IDs, joins/leaves, role/channel changes, warning categories, blocked hostnames and errors. Member profiles, rankings, tag welcomes and counters may display relevant community information to people who can view those channels or panels.
- Feature usage measurement: the bot keeps daily action totals, feature totals, success/failure totals and server-specific coded identifiers derived from user, server and interaction IDs. These codes are pseudonymous, not anonymous. This store does not contain message text, names, direct user IDs or a per-user feature history.
- Activity connection: the current Activity build reads Discord launch parameters to connect to its SDK and displays a public music/Live snapshot. Browsing and music do not require the optional Discord status grant. The Activity has no analytics SDK and does not grant roles from the frontend. Its server uses connection addresses for bounded in-memory request counters; these may identify a reverse proxy rather than a member. The server code does not write HTTP access logs, but a hosting provider or Discord may separately process or log network information. The current voice feature joins muted and deafened; it does not record voice audio.
Use and access
Information is used to provide the enabled features, apply server settings, manage moderation/access, avoid duplicate posts, troubleshoot errors and improve feature reliability. Persistent bot records are stored on the operator's computer. The operator can access these files. Server administrators and other people with channel access can see the corresponding Discord messages and logs. Discord permissions govern visibility; the bot does not make those messages private to the operator.
External services
The application uses Discord APIs and public music metadata/artwork from Apple/iTunes and Apple artwork CDNs. Configured Spotify API access can match tracks; unmatched links open Spotify search. Artist posts may link to YouTube, Instagram, TikTok or credited Wikimedia Commons media. Requests for public metadata use artist/song information, rather than member chat text. Opening an external link subjects you to that service's own policies. The YVL Live Activity and these policy pages are hosted directly on Cloudflare Workers. The Activity's public endpoint serves the Live interface, public music metadata, selected Live-board counts and text, source links, and artwork fetched from the permitted Apple artwork catalog. Published music and Live text values remain snapshots until replaced by a later publication; public community counts can be refreshed through the protected aggregate update described below. No bot token, private server settings, moderation records or member identity list is uploaded to this Activity host or included in the policy pages. The Activity code has no analytics SDK and does not write HTTP access logs. The optional Discord status grant is described below. Request addresses supplied by the hosting platform may be used for bounded in-memory request counters; Cloudflare and Discord may separately process connection and request information under their own data practices. Discord and any Activity deployment/network provider also have their own data practices. YVL is not an official product of Discord, Apple, Spotify, these media services or the featured artists.
Activity status and device preferences
Optional Discord activity status: When you open the Activity, YVL Live asks Discord for the identify and rpc.activities.write permissions if you have not already granted them so it can display the current song or browsing state, the YVL Live mark, and a recent public server-tag count on your Discord activity status. Discord presents its own authorization step when needed. If the permission is already granted, status starts automatically for the session. You can decline and continue browsing and listening; the Activity does not repeat the request during that session. Discord may reuse an existing authorization that includes other permissions; YVL does not request those extra permissions or use them for additional Discord API calls. The authorization code passes through YVL's Cloudflare Worker to Discord's token endpoint. During connection diagnostics, the Worker may check the transient token at Discord's authorization-information endpoint. It discards account fields and permission lists; only boolean verification results and numeric HTTP status can be returned to the current Activity session. The returned access token is used to authenticate the current Activity session with Discord; the YVL code does not store it in localStorage, persistent bot records, a server database or HTTP access logs, and does not retain the returned refresh token. Discord SDK authentication may return account information in memory. The signed-in listener's display name may appear only in their own current profile/settings panel. YVL does not save the account response or share it with other participants; it keeps only that display name in the current session and clears it when the Activity closes. Discord SDK authentication confirms the signed-in listener for the session. YVL requests identify for this documented connection flow and uses the returned identity only for the session display name described above. This flow does not request email, read private chats or change server roles. Hide status clears the custom status and remembers on this device that automatic sharing is off until you choose Show activity again; you can also revoke the application's permission through Discord. Visibility remains subject to Discord's activity privacy settings.
Device preferences: Saved song IDs (up to 1,000 persisted IDs), sound and volume preferences, the music-app opening preference, the automatic status-sharing preference and the last selected tab may be stored in the Activity browser's localStorage on your device. These are not uploaded to the Worker or synchronized with a Discord account. Saved songs can be removed with the same save control; browser/Discord storage can be cleared to remove these preferences. If storage is unavailable, the Activity uses memory or current-session settings.
Public community counts: The operator's bot can send only the current public YVL-tag count, member count and capture time to the same Cloudflare Worker. A single protected public-state record replaces the previous count record; it contains no member list, Discord account IDs, messages, roles or moderation data. The Activity reads this record to display recent community counts. Counts older than five minutes are omitted from custom Discord status. The bot uses a separate narrowly scoped write key for this update; its Discord bot token is not sent to Cloudflare.
Retention and controls
There is no universal automatic expiry for all bot records. Tag records are removed after the configured tag-loss grace period during reconciliation. Personal-role records are removed when the role is deleted or an eligibility check removes it. Song votes remain with the last 30 saved song posts and can be removed by pressing the same vote again while voting is open. Moderation deduplication records are limited to the newest 2,000 message IDs per server; warning records have no general timed expiry. Restriction records are removed after a completed release; incomplete restoration records remain for repair. Invite records can remain after a member leaves. Discord log messages remain until deleted by someone with permission.
Usage measurement keeps 35 calendar days of daily buckets while maintenance runs. In Usage privacy, Turn recording off removes your coded user links and prevents new measurement; independent totals remain. The coded opt-out preference remains while the server is tracked. This switch does not delete separate votes, tag, invite, moderation or Discord log records. Bot shutdowns and failed writes/deletions can delay cleanup.
To ask about access, correction or deletion, contact aycande or your server administrator. Identify your Discord account, the server and the records concerned. Requests require identity matching and owner/server review; moderation restoration and Discord-held records may require separate handling. There is no current automatic all-data deletion command or promised response deadline. Never send your Discord password, bot token, authentication code or identity document to the application for a privacy request.
Changes
The owner should update this policy before adding new collection, authentication, analytics, hosting or sharing practices. Published changes should include an updated date and be accessible through the application.