How this works
What this is
Music Trends collects public chart, listening, and upload signals from several providers, matches the same song across them, and ranks it. Every position is this project's own score, not an official chart. The site updates every six hours, at 00:15, 06:15, 12:15, and 18:15 UTC; each page shows the snapshot it was built from.
Where the data comes from
- YouTube
- Language charts and Global Momentum Uploads whose titles say "official video" or "music video", found by one search per market; the channel is not checked. Only titles, channels, and positions are shown. Collected: 1 discovery page x 50 per query; max once/24h.
- Last.fm
- Unified score (scrobble family) Global and country charts plus Indian language-tag popularity. Collected: 1 page x PUBLIC_CHART_LIMIT (default 50) per region/tag.
- Deezer
- Unified score (DSP family) The official Top Worldwide, US, and UK charts. Collected: 3 charts x PUBLIC_CHART_LIMIT (default 50).
- Apple Music
- Unified score (Apple family) Most-played songs in the US, UK, and India. Collected: 3 markets x PUBLIC_CHART_LIMIT (default 50).
- iTunes
- Unified score (Apple family) Top songs on the iTunes Store in the US, UK, and India. Collected: 3 countries x PUBLIC_CHART_LIMIT (default 50).
- SoundCloud
- Unified score (social family) Public search results for "music", a community upload signal rather than a chart. Collected: PUBLIC_CHART_LIMIT (default 50).
- ListenBrainz
- Unified score (listening family) Sitewide weekly listening. Collected: 1 page x PUBLIC_CHART_LIMIT (default 50).
- Spotify
- Unified score (DSP family) Playlist charts, when credentials are configured. Collected: 50 per playlist.
- Soundcharts
- Unified score (chart family) Premium data, off unless enabled. Collected: 1-100 opt-in.
Provider Health shows each source's status on the latest run and over its last 12 runs.
How the Unified Now Chart ranks songs
- Match. Titles and artists are normalized (case, accents, "feat." credits, video boilerplate) so one song listed by several providers or regions becomes one record.
- Rank signal. Each listing becomes a 0 to 1 signal from its rank, on a log curve scaled to that feed's real depth, so #1 of a 50-row feed outranks #1 of a 10-row one. Feeds shorter than 10 rows are scored as if 10 deep, and a feed's last row scores 0.
- Source weight. The signal is multiplied by its source's weight, and each source family keeps its strongest listing.
- Family blend. Families are averaged using the family weights below, so one family cannot dominate by listing a song many times.
- Consensus. A song found in more families scores higher: ×(1 + 0.15 per extra family), capped at ×1.5.
- India weighting. Songs with Indian country or language evidence score ×1.15; India Focus applies a further ×1.25.
- Confidence. High confidence (three or more listings across three families, two of them ranked) keeps the full score; medium keeps 85%; low keeps 70%.
| Name | Weight |
|---|---|
| Last.fm country charts | 0.90 |
| Apple Music | 0.85 |
| Spotify | 0.85 |
| Soundcharts | 0.80 |
| iTunes | 0.75 |
| Deezer | 0.70 |
| ListenBrainz | 0.60 |
| SoundCloud | 0.55 |
| Last.fm language tags | 0.45 |
| Name | Weight |
|---|---|
| Chart (Soundcharts) | 1.00 |
| Streaming (Deezer, Spotify) | 0.85 |
| Apple (Apple Music, iTunes) | 0.80 |
| Listening (ListenBrainz) | 0.80 |
| Scrobble (Last.fm) | 0.75 |
| Social (SoundCloud) | 0.65 |
Scoring version collection-v5. Any change to these rules bumps the version, and rank history is only compared within one version.
Language and genre charts
Each market runs one YouTube search a day for new uploads whose titles say "official video" or "music video" (50 results, in that market's language where YouTube supports it). Nothing checks the uploading channel, so re-uploads can appear. An upload is charted under the language of its title: the first non-Latin script decides, then the first language the title names, then the market whose search found it. Each song appears once per chart, with its strongest upload, and upload titles are shortened for display. Positions come from YouTube's public statistics, but no YouTube view, like, or comment counts, or figures derived from them, are published, and YouTube data is deleted after 30 days. YouTube does not feed the Unified score.
Checks on every run
Quality gates check each run's published tables: every row matches its header, scores are not collapsing to zero, enough providers contributed, no song is listed twice in a chart, and evidence spans more than one source family. Results are on the Data Quality page. When a provider fails, the run still publishes without it (YouTube and Deezer fall back to their last saved data), and Provider Health records the failure.
Using the data
Every chart page has a Download CSV button. The search box in the header finds a song on every chart it appears on, on charts it left since collection began on 18 September 2026, and, for anything else, in Apple's iTunes catalog. That last lookup sends what you type from your browser to Apple's public iTunes Search API. The raw collection and run files are linked at the bottom of each page.
Known limits
- Apple Music, iTunes, and Deezer come from public feeds, not licensed data.
- Last.fm language tags measure long-run popularity, not the current week.
- SoundCloud contributes search results, which include fan re-uploads.
- Language charts only see uploads the daily searches find, so smaller languages can have short charts.
Independence
Music Trends is an independent, non-commercial experiment. It is not affiliated with, endorsed by, or sponsored by YouTube, Apple, Deezer, Last.fm, SoundCloud, ListenBrainz, Spotify, Billboard, or any other source it mentions; their names, marks, and data belong to them. It is separate from maahol and its rooms.