Compare commits
89
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f24b2ab26e | ||
|
|
207d56c449 | ||
|
|
61034a5990 | ||
|
|
d0ba3b6414 | ||
|
|
c2de873d85 | ||
|
|
b4a90853c6 | ||
|
|
7aa69989f9 | ||
|
|
3c636f76d2 | ||
|
|
e3dec79259 | ||
|
|
72f3e4ba4e | ||
|
|
ad5ead0816 | ||
|
|
bc77edd029 | ||
|
|
63e17ef873 | ||
|
|
1b781c12e8 | ||
|
|
6601453711 | ||
|
|
6c5c231ef6 | ||
|
|
4c31adaacc | ||
|
|
04b32fbc3a | ||
|
|
81a9d87b08 | ||
|
|
c7009649bd | ||
|
|
d5a6bb7102 | ||
|
|
b792f61806 | ||
|
|
c2ae17453a | ||
|
|
a88302fdc2 | ||
|
|
930d1cec3e | ||
|
|
a230bfe0c9 | ||
|
|
b7b35f7b68 | ||
|
|
309113692b | ||
|
|
a0687a4793 | ||
|
|
9043fd85f2 | ||
|
|
0a273dd81a | ||
|
|
8af2410e90 | ||
|
|
3f3deb3417 | ||
|
|
aff654081e | ||
|
|
33a9da6009 | ||
|
|
6e95e49875 | ||
|
|
e6ca05b837 | ||
|
|
5bde8ac534 | ||
|
|
9d37b0ba21 | ||
|
|
6d141b537a | ||
|
|
6d33ceb7e7 | ||
|
|
c3b4f927c2 | ||
|
|
f495e7882d | ||
|
|
edfd8d57ba | ||
|
|
112a566361 | ||
|
|
0850b13417 | ||
|
|
e70c2e6968 | ||
|
|
0dfbbe9ea4 | ||
|
|
a07256d4ac | ||
|
|
38b4660649 | ||
|
|
1732431e06 | ||
|
|
3c154bbbd1 | ||
|
|
c8d541aadc | ||
|
|
a562917460 | ||
|
|
680d8bfe50 | ||
|
|
aa65f6a3b3 | ||
|
|
d155d1ba21 | ||
|
|
5e509ffcad | ||
|
|
4eb9f50238 | ||
|
|
814bfa8910 | ||
|
|
179de0ccd7 | ||
|
|
edb582daf9 | ||
|
|
21c5ae5481 | ||
|
|
383670ab2b | ||
|
|
c59a023095 | ||
|
|
10dc4cb693 | ||
|
|
449675e7a2 | ||
|
|
a7806c0c9d | ||
|
|
105664e93b | ||
|
|
1220c21807 | ||
|
|
86914de850 | ||
|
|
8463cfc906 | ||
|
|
ef4112c61e | ||
|
|
1eaebeb5fb | ||
|
|
6fc4b7db17 | ||
|
|
c94b6f2589 | ||
|
|
b3ac12c88d | ||
|
|
5b2c192827 | ||
|
|
991ab5d93a | ||
|
|
78cf5e6ce0 | ||
|
|
aa78a54d12 | ||
|
|
3d472d5c15 | ||
|
|
2f048dee36 | ||
|
|
a3062e848c | ||
|
|
1b2d46cb42 | ||
|
|
f2ccca60b5 | ||
|
|
db7b5f6679 | ||
|
|
98b665537f | ||
|
|
9a089f6c6b |
@@ -5,7 +5,7 @@ name,qid,gender,type,genre,country,note
|
|||||||
24kGoldn,Q83751918,male,solo,pop rap,United States,American rapper
|
24kGoldn,Q83751918,male,solo,pop rap,United States,American rapper
|
||||||
42 Dugg,Q95694810,male,solo,Michigan rap; Midwest hip-hop; trap music; gangsta rap,United States,American rapper
|
42 Dugg,Q95694810,male,solo,Michigan rap; Midwest hip-hop; trap music; gangsta rap,United States,American rapper
|
||||||
4batz,Q124313062,male,solo,contemporary R&B,United States,American singer (born 2003)
|
4batz,Q124313062,male,solo,contemporary R&B,United States,American singer (born 2003)
|
||||||
5 Seconds of Summer,Q4641147,male,group,pop rock; pop-punk,Australia,Australian pop rock band; gender derived from members: Q21282968 male; Q18812046 male; Q15746737 male; Q22237759 male
|
5 Seconds of Summer,Q4641147,,group,pop rock; pop-punk,Australia,Australian pop rock band
|
||||||
50 Cent,Q6060,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop,United States,American rapper (born 1975)
|
50 Cent,Q6060,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop,United States,American rapper (born 1975)
|
||||||
6ix9ine,Q44479972,male,solo,hip-hop; East Coast hip-hop; gangsta rap; trap metal; hardcore hip-hop; SoundCloud rap; punk rap; drill; trap music; urbano music; reggaeton; Brooklyn drill,United States,American rapper from New York (born 1996)
|
6ix9ine,Q44479972,male,solo,hip-hop; East Coast hip-hop; gangsta rap; trap metal; hardcore hip-hop; SoundCloud rap; punk rap; drill; trap music; urbano music; reggaeton; Brooklyn drill,United States,American rapper from New York (born 1996)
|
||||||
6LACK,Q27886640,male,solo,alternative R&B; contemporary R&B; trap music; cloud rap; industrial music; soul; hip-hop soul,United States,American singer-songwriter and rapper (born 1992)
|
6LACK,Q27886640,male,solo,alternative R&B; contemporary R&B; trap music; cloud rap; industrial music; soul; hip-hop soul,United States,American singer-songwriter and rapper (born 1992)
|
||||||
@@ -14,14 +14,14 @@ A$AP Ferg,Q15648254,male,solo,East Coast hip-hop; trap music,United States,Ameri
|
|||||||
A$AP Rocky,Q129910,male,solo,East Coast hip-hop; psychedelic rap; experimental hip-hop; alternative hip-hop; cloud rap; trap music,United States,American rapper (born 1988)
|
A$AP Rocky,Q129910,male,solo,East Coast hip-hop; psychedelic rap; experimental hip-hop; alternative hip-hop; cloud rap; trap music,United States,American rapper (born 1988)
|
||||||
Adassa,Q576181,female,solo,reggaeton; urban contemporary; pop music,United States,American singer-songwriter
|
Adassa,Q576181,female,solo,reggaeton; urban contemporary; pop music,United States,American singer-songwriter
|
||||||
Adele,Q23215,female,solo,pop music; blue-eyed soul; rhythm and blues; soul; jazz; rock music,United Kingdom,English singer-songwriter (born 1988)
|
Adele,Q23215,female,solo,pop music; blue-eyed soul; rhythm and blues; soul; jazz; rock music,United Kingdom,English singer-songwriter (born 1988)
|
||||||
AJR,Q16154058,male,group,indie pop; alternative pop; electropop,United States,American indie pop band; gender derived from members: Q131385109 male; Q140937060 male; Q140937061 male
|
AJR,Q16154058,,group,indie pop; alternative pop; electropop,United States,American indie pop band
|
||||||
Alessia Cara,Q20090091,female,solo,contemporary R&B; indie pop; pop music; soul; alternative R&B,Italy,"Italian-Canadian singer, songwriter and actress"
|
Alessia Cara,Q20090091,female,solo,contemporary R&B; indie pop; pop music; soul; alternative R&B,Italy,"Italian-Canadian singer, songwriter and actress"
|
||||||
Alex Warren,Q121842162,male,solo,pop music,United States,"American singer, songwriter, YouTuber, and influencer"
|
Alex Warren,Q121842162,male,solo,pop music,United States,"American singer, songwriter, YouTuber, and influencer"
|
||||||
Aminé,Q27830860,male,solo,West Coast hip-hop; alternative hip-hop; trap music; contemporary R&B,United States,"American rapper, singer, and songwriter"
|
Aminé,Q27830860,male,solo,West Coast hip-hop; alternative hip-hop; trap music; contemporary R&B,United States,"American rapper, singer, and songwriter"
|
||||||
Anderson .Paak,Q20810369,male,solo,contemporary R&B; hip-hop; soul; funk; pop music,United States,"American singer, rapper, drummer, and record producer (born 1986)"
|
Anderson .Paak,Q20810369,male,solo,contemporary R&B; hip-hop; soul; funk; pop music,United States,"American singer, rapper, drummer, and record producer (born 1986)"
|
||||||
Andrew Choi,Q15229870,male,solo,K-pop; pop music; contemporary R&B,South Korea,South Korean singer and songwriter
|
Andrew Choi,Q15229870,male,solo,K-pop; pop music; contemporary R&B,South Korea,South Korean singer and songwriter
|
||||||
Anne-Marie,Q25396976,female,solo,pop music; contemporary R&B,United Kingdom,British singer (born 1990)
|
Anne-Marie,Q25396976,female,solo,pop music; contemporary R&B,United Kingdom,British singer (born 1990)
|
||||||
Aqua,Q213388,mixed,group,pop music; bubblegum music; Eurodance,Denmark,Danish-Norwegian music group; gender derived from members: Q287329 female; Q1369910 male; Q1319904 male; Q517584 male
|
Aqua,Q213388,,group,pop music; bubblegum music; Eurodance,Denmark,Danish-Norwegian music group
|
||||||
Ariana Grande,Q151892,female,solo,pop music; contemporary R&B; electronic dance music,United States,"American singer, songwriter, and actress (born 1993)"
|
Ariana Grande,Q151892,female,solo,pop music; contemporary R&B; electronic dance music,United States,"American singer, songwriter, and actress (born 1993)"
|
||||||
Arizona Zervas,Q75124792,male,solo,hip-hop; contemporary R&B; pop music,United States,American singer and rapper (born 1995)
|
Arizona Zervas,Q75124792,male,solo,hip-hop; contemporary R&B; pop music,United States,American singer and rapper (born 1995)
|
||||||
Artemas,Q125176874,male,solo,alternative pop,United Kingdom,British singer-songwriter and record producer
|
Artemas,Q125176874,male,solo,alternative pop,United Kingdom,British singer-songwriter and record producer
|
||||||
@@ -33,7 +33,7 @@ Ayo,Q55860029,male,solo,hip-hop,United States,American singer and dancer
|
|||||||
AzChike,Q131417489,male,solo,hip-hop,United States,American rapper
|
AzChike,Q131417489,male,solo,hip-hop,United States,American rapper
|
||||||
Bad Bunny,Q44333953,male,solo,Latin trap; reggaeton,Puerto Rico,"Puerto Rican rapper, singer, and record producer (born 1994)"
|
Bad Bunny,Q44333953,male,solo,Latin trap; reggaeton,Puerto Rico,"Puerto Rican rapper, singer, and record producer (born 1994)"
|
||||||
Bailey Zimmerman,Q112581616,male,solo,country music,United States,American singer
|
Bailey Zimmerman,Q112581616,male,solo,country music,United States,American singer
|
||||||
Bastille,Q689,male,group,synth-pop,United Kingdom,English indie pop band; gender derived from members: Q65505453 male; Q15906708 male; Q65505451 male; Q17385911 male
|
Bastille,Q689,,group,synth-pop,United Kingdom,English indie pop band
|
||||||
Bazzi,Q48720231,male,solo,pop music,United States,American-born Lebanese singer-songwriter (born 1997)
|
Bazzi,Q48720231,male,solo,pop music,United States,American-born Lebanese singer-songwriter (born 1997)
|
||||||
beabadoobee,Q66817366,female,solo,indie rock; space rock; alternative rock; slacker rock; indie pop; folk-pop; bedroom pop,Philippines,Filipino singer
|
beabadoobee,Q66817366,female,solo,indie rock; space rock; alternative rock; slacker rock; indie pop; folk-pop; bedroom pop,Philippines,Filipino singer
|
||||||
Bebe Rexha,Q16185856,female,solo,pop music; contemporary R&B,United States,American singer
|
Bebe Rexha,Q16185856,female,solo,pop music; contemporary R&B,United States,American singer
|
||||||
@@ -48,14 +48,14 @@ Billie Eilish,Q29564107,female,solo,electropop; indie pop; alternative pop,Unite
|
|||||||
Billy Ray Cyrus,Q231259,male,solo,country music; country pop; country rock; country blues,United States,American country singer and actor
|
Billy Ray Cyrus,Q231259,male,solo,country music; country pop; country rock; country blues,United States,American country singer and actor
|
||||||
Bipolar Sunshine,Q16727521,male,solo,pop music,United Kingdom,British musician
|
Bipolar Sunshine,Q16727521,male,solo,pop music,United Kingdom,British musician
|
||||||
Bizarrap,Q99937928,male,solo,Latin trap; reggaeton,Argentina,Argentine DJ and producer (born 1998)
|
Bizarrap,Q99937928,male,solo,Latin trap; reggaeton,Argentina,Argentine DJ and producer (born 1998)
|
||||||
Black Eyed Peas,Q134541,mixed,group,alternative hip-hop; pop rap; hip-hop; pop music; Latin hip-hop,United States,American hip hop group from California; gender derived from members: Q180004 female; Q185610 male; Q293590 male; Q145480 male; Q96278502 female
|
Black Eyed Peas,Q134541,,group,alternative hip-hop; pop rap; hip-hop; pop music; Latin hip-hop,United States,American hip hop group from California
|
||||||
blackbear,Q22974007,male,solo,pop music; emo; contemporary R&B; hip-hop,United States,"American singer, songwriter, and record producer (born 1990)"
|
blackbear,Q22974007,male,solo,pop music; emo; contemporary R&B; hip-hop,United States,"American singer, songwriter, and record producer (born 1990)"
|
||||||
Blake Shelton,Q94831,male,solo,country music,United States,American country music singer and television personality
|
Blake Shelton,Q94831,male,solo,country music,United States,American country music singer and television personality
|
||||||
Blanco Brown,Q64736729,male,solo,country rap; trap music; hip-hop,United States,American rapper and singer
|
Blanco Brown,Q64736729,male,solo,country rap; trap music; hip-hop,United States,American rapper and singer
|
||||||
BlocBoy JB,Q49481016,male,solo,hip-hop; trap music,United States,American rapper from Tennessee
|
BlocBoy JB,Q49481016,male,solo,hip-hop; trap music,United States,American rapper from Tennessee
|
||||||
Blueface,Q60463134,male,solo,hip-hop; trap music; West Coast hip-hop; gangsta rap,United States,American rapper (born 1997)
|
Blueface,Q60463134,male,solo,hip-hop; trap music; West Coast hip-hop; gangsta rap,United States,American rapper (born 1997)
|
||||||
Bobby Helms,Q888554,male,solo,country music,United States,American male singer (1933–1997)
|
Bobby Helms,Q888554,male,solo,country music,United States,American male singer (1933–1997)
|
||||||
Bomba Estéreo,Q887911,mixed,group,cumbia,Colombia,Colombian band; gender derived from members: Q140937062 male; Q29064683 female
|
Bomba Estéreo,Q887911,,group,cumbia,Colombia,Colombian band
|
||||||
Bradley Cooper,Q205707,male,solo,,United States,American actor (born 1975)
|
Bradley Cooper,Q205707,male,solo,,United States,American actor (born 1975)
|
||||||
Brandon Lake,Q100314823,male,solo,contemporary Christian music; Christian rock,United States,American Christian musician
|
Brandon Lake,Q100314823,male,solo,contemporary Christian music; Christian rock,United States,American Christian musician
|
||||||
Brenda Lee,Q230925,female,solo,rock and roll; country music; pop music; rockabilly,United States,American singer and recording artist (born 1944)
|
Brenda Lee,Q230925,female,solo,rock and roll; country music; pop music; rockabilly,United States,American singer and recording artist (born 1944)
|
||||||
@@ -64,7 +64,7 @@ Brett Young,Q25189679,male,solo,country music,United States,American country mus
|
|||||||
BRS Kash,Q105409004,male,solo,hip-hop,United States,American rapper
|
BRS Kash,Q105409004,male,solo,hip-hop,United States,American rapper
|
||||||
Bruno Mars,Q1450,male,solo,pop music; contemporary R&B; hip-hop; new wave; reggae; funk,United States,American singer-songwriter and record producer (born 1985)
|
Bruno Mars,Q1450,male,solo,pop music; contemporary R&B; hip-hop; new wave; reggae; funk,United States,American singer-songwriter and record producer (born 1985)
|
||||||
Bryson Tiller,Q21066641,male,solo,contemporary R&B; hip-hop; trap music; soul,United States,American singer and rapper (born 1993)
|
Bryson Tiller,Q21066641,male,solo,contemporary R&B; hip-hop; trap music; soul,United States,American singer and rapper (born 1993)
|
||||||
BTS,Q13580495,male,group,K-pop; dance-pop; Korean hip-hop,South Korea,South Korean musical group; boy band; gender derived from members: Q18388296 male; Q16236223 male; Q24276424 male; Q22338877 male; Q21075020 male; Q20514446 male; Q20947093 male
|
BTS,Q13580495,,group,K-pop; dance-pop; Korean hip-hop,South Korea,South Korean musical group; boy band
|
||||||
Burl Ives,Q315723,male,solo,folk music,United States,American musician (1909–1995)
|
Burl Ives,Q315723,male,solo,folk music,United States,American musician (1909–1995)
|
||||||
Calboy,Q66085272,male,solo,hip-hop,United States,American rapper (born 1999)
|
Calboy,Q66085272,male,solo,hip-hop,United States,American rapper (born 1999)
|
||||||
Calvin Harris,Q81637,male,solo,electronic dance music; electronic pop; acid house,United Kingdom,Scottish electronic music producer and DJ (born 1984)
|
Calvin Harris,Q81637,male,solo,electronic dance music; electronic pop; acid house,United Kingdom,Scottish electronic music producer and DJ (born 1984)
|
||||||
@@ -79,26 +79,26 @@ Chance the Rapper,Q12470060,male,solo,hip-hop; alternative hip-hop; contemporary
|
|||||||
Chappell Roan,Q110281146,female,solo,synth-pop; pop music; electronic music,United States,American singer (born 1998)
|
Chappell Roan,Q110281146,female,solo,synth-pop; pop music; electronic music,United States,American singer (born 1998)
|
||||||
Charlie Puth,Q19810390,male,solo,pop music; contemporary R&B,United States,"American singer, songwriter, and record producer"
|
Charlie Puth,Q19810390,male,solo,pop music; contemporary R&B,United States,"American singer, songwriter, and record producer"
|
||||||
Chase Rice,Q5087189,male,solo,country music,United States,American singer-songwriter and football player
|
Chase Rice,Q5087189,male,solo,country music,United States,American singer-songwriter and football player
|
||||||
Cheat Codes,Q23978754,male,group,electronic music; electronic dance music; tropical house; dancehall,United States,electronic music DJ trio; gender derived from members: Q140937063 male; Q140937064 male; Q140937065 male
|
Cheat Codes,Q23978754,,group,electronic music; electronic dance music; tropical house; dancehall,United States,electronic music DJ trio
|
||||||
Chencho Corleone,Q113625582,male,solo,reggaeton,United States,Puerto Rican singer (born 1979)
|
Chencho Corleone,Q113625582,male,solo,reggaeton,United States,Puerto Rican singer (born 1979)
|
||||||
Childish Gambino,Q1239933,male,solo,hip-hop; funk; contemporary R&B; soul; psychedelic music; indie pop; comedy hip-hop,United States,"American actor, comedian, musician, and filmmaker (born 1983)"
|
Childish Gambino,Q1239933,male,solo,hip-hop; funk; contemporary R&B; soul; psychedelic music; indie pop; comedy hip-hop,United States,"American actor, comedian, musician, and filmmaker (born 1983)"
|
||||||
Chris Brown,Q155700,male,solo,contemporary R&B; pop music; hip-hop,United States,American singer and rapper (born 1989)
|
Chris Brown,Q155700,male,solo,contemporary R&B; pop music; hip-hop,United States,American singer and rapper (born 1989)
|
||||||
Chris Stapleton,Q5108148,male,solo,country music,United States,American country musician
|
Chris Stapleton,Q5108148,male,solo,country music,United States,American country musician
|
||||||
Chris Young,Q952176,male,solo,country music,United States,American country music artist
|
Chris Young,Q952176,male,solo,country music,United States,American country music artist
|
||||||
City Girls,Q60658858,female,group,hip-hop,United States,American musical duo; gender derived from members: Q106747932 female; Q97959266 female
|
City Girls,Q60658858,,group,hip-hop,United States,American musical duo
|
||||||
CJ,Q103868817,male,solo,drill; trap music; East Coast hip-hop; hip-hop,United States,American rapper
|
CJ,Q103868817,male,solo,drill; trap music; East Coast hip-hop; hip-hop,United States,American rapper
|
||||||
CKay,Q98312451,male,solo,Afrobeats,Nigeria,Nigerian singer-songwriter
|
CKay,Q98312451,male,solo,Afrobeats,Nigeria,Nigerian singer-songwriter
|
||||||
Clean Bandit,Q11838808,mixed,group,electropop,United Kingdom,English electronic music group; gender derived from members: Q29033349 female; Q64754197 male
|
Clean Bandit,Q11838808,,group,electropop,United Kingdom,English electronic music group
|
||||||
Cody Johnson,Q17916913,male,solo,country music; country rock,United States,American country singer and songwriter
|
Cody Johnson,Q17916913,male,solo,country music; country rock,United States,American country singer and songwriter
|
||||||
Coi Leray,Q106376206,female,solo,hip-hop; pop music,United States,American rapper and singer
|
Coi Leray,Q106376206,female,solo,hip-hop; pop music,United States,American rapper and singer
|
||||||
Coldplay,Q45188,male,group,alternative rock; pop music,United Kingdom,British rock band; gender derived from members: Q712860 male; Q822029 male; Q601617 male; Q822036 male
|
Coldplay,Q45188,,group,alternative rock; pop music,United Kingdom,British rock band
|
||||||
Cole Swindell,Q15101510,male,solo,country music,United States,American singer-songwriter
|
Cole Swindell,Q15101510,male,solo,country music,United States,American singer-songwriter
|
||||||
Corey Kent,Q113452679,male,solo,country music,United States,American singer
|
Corey Kent,Q113452679,male,solo,country music,United States,American singer
|
||||||
Cris MJ,Q111425015,male,solo,reggaeton,Chile,Chilean singer-songwriter
|
Cris MJ,Q111425015,male,solo,reggaeton,Chile,Chilean singer-songwriter
|
||||||
D.R.A.M.,Q25138504,male,solo,Southern hip-hop; contemporary R&B; trap music,United States,American rapper and singer (born 1988)
|
D.R.A.M.,Q25138504,male,solo,Southern hip-hop; contemporary R&B; trap music,United States,American rapper and singer (born 1988)
|
||||||
DaBaby,Q62107457,male,solo,hip-hop; trap music; pop rap; Southern hip-hop,United States,American rapper (born 1991)
|
DaBaby,Q62107457,male,solo,hip-hop; trap music; pop rap; Southern hip-hop,United States,American rapper (born 1991)
|
||||||
Daddy Yankee,Q272591,male,solo,reggaeton; Latin hip-hop,United States,Puerto Rican rapper and actor (born 1976)
|
Daddy Yankee,Q272591,male,solo,reggaeton; Latin hip-hop,United States,Puerto Rican rapper and actor (born 1976)
|
||||||
Daft Punk,Q185828,male,group,house music; electronic music; French house; synth-pop; electronic rock; electronica; nu-disco; dance music; leftfield house,France,French electronic music band; gender derived from members: Q471656 male; Q471650 male
|
Daft Punk,Q185828,,group,house music; electronic music; French house; synth-pop; electronic rock; electronica; nu-disco; dance music; leftfield house,France,French electronic music band
|
||||||
Dan Smyers,Q57630595,male,solo,country music,United States,songwriter and member of the duo Dan + Shay
|
Dan Smyers,Q57630595,male,solo,country music,United States,songwriter and member of the duo Dan + Shay
|
||||||
Daniel Caesar,Q29589083,male,solo,contemporary R&B; soul; neo soul,Canada,Canadian R&B singer
|
Daniel Caesar,Q29589083,male,solo,contemporary R&B; soul; neo soul,Canada,Canadian R&B singer
|
||||||
Danny Chung,Q140814119,male,solo,hip-hop; K-pop,United States,"Korean-American rapper, singer and songwriter"
|
Danny Chung,Q140814119,male,solo,hip-hop; K-pop,United States,"Korean-American rapper, singer and songwriter"
|
||||||
@@ -116,7 +116,7 @@ Diplo,Q533781,male,solo,electronic dance music; trap music; hip-hop; pop music;
|
|||||||
DJ Khaled,Q80805,male,solo,hip-hop; pop rap,United States,American DJ and rapper (born 1975)
|
DJ Khaled,Q80805,male,solo,hip-hop; pop rap,United States,American DJ and rapper (born 1975)
|
||||||
DJ Snake,Q16728588,male,solo,electronic dance music; EDM trap music,France,French record producer (born 1986)
|
DJ Snake,Q16728588,male,solo,electronic dance music; EDM trap music,France,French record producer (born 1986)
|
||||||
Djo,Q27064031,male,solo,synth-pop,United States,American actor and musician (born 1992)
|
Djo,Q27064031,male,solo,synth-pop,United States,American actor and musician (born 1992)
|
||||||
DNCE,Q21648421,mixed,group,pop rock,United States,American pop band; gender derived from members: Q191088 male; Q6113606 male; Q24287375 female; Q97570445 male
|
DNCE,Q21648421,,group,pop rock,United States,American pop band
|
||||||
Doechii,Q106629186,female,solo,hip-hop; contemporary R&B; pop music; alternative hip-hop; pop rap,United States,American rapper and singer
|
Doechii,Q106629186,female,solo,hip-hop; contemporary R&B; pop music; alternative hip-hop; pop rap,United States,American rapper and singer
|
||||||
Doja Cat,Q51120673,female,solo,contemporary R&B; pop music; electronic music; indie pop; hip-hop,United States,American singer and rapper (born 1995)
|
Doja Cat,Q51120673,female,solo,contemporary R&B; pop music; electronic music; indie pop; hip-hop,United States,American singer and rapper (born 1995)
|
||||||
Don Toliver,Q56513383,male,solo,hip-hop; trap music; contemporary R&B,United States,American singer and rapper (born 1994)
|
Don Toliver,Q56513383,male,solo,hip-hop; trap music; contemporary R&B,United States,American singer and rapper (born 1994)
|
||||||
@@ -138,32 +138,32 @@ Eminem,Q5608,male,solo,hip-hop; horrorcore; hardcore hip-hop; comedy hip-hop; Mi
|
|||||||
Encanto Cast,Q140814124,,,,United States,ensemble cast credited on songs from the 2021 Disney animated film Encanto
|
Encanto Cast,Q140814124,,,,United States,ensemble cast credited on songs from the 2021 Disney animated film Encanto
|
||||||
Eric Church,Q975911,male,solo,country music,United States,American country singer
|
Eric Church,Q975911,male,solo,country music,United States,American country singer
|
||||||
ERNEST,Q110442717,male,solo,country music,United States,American hip hop and country musician
|
ERNEST,Q110442717,male,solo,country music,United States,American hip hop and country musician
|
||||||
Eslabón Armado,Q112702265,male,group,regional Mexican,United States,American hispanic radio music group; gender derived from members: Q140937066 male; Q140937067 male; Q140937068 male; Q122998482 male
|
Eslabón Armado,Q112702265,,group,regional Mexican,United States,American hispanic radio music group
|
||||||
Fat Joe,Q309888,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop; boom bap; mafioso rap,United States,American rapper
|
Fat Joe,Q309888,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop; boom bap; mafioso rap,United States,American rapper
|
||||||
Fetty Wap,Q19361511,male,solo,hip-hop; trap music; pop rap,United States,American rapper and singer (born 1991)
|
Fetty Wap,Q19361511,male,solo,hip-hop; trap music; pop rap,United States,American rapper and singer (born 1991)
|
||||||
Fifth Harmony,Q3087893,female,group,pop music,United States,American girl group; gender derived from members: Q18810940 female; Q22965780 female; Q18921974 female; Q28148022 female; Q28065951 female
|
Fifth Harmony,Q3087893,,group,pop music,United States,American girl group
|
||||||
Fifty Fifty,Q116731010,female,group,K-pop; J-pop,South Korea,South Korean girl group; gender derived from members: Q117178583 female; Q129547871 female; Q129548065 female; Q129548220 female; Q129548317 female
|
Fifty Fifty,Q116731010,,group,K-pop; J-pop,South Korea,South Korean girl group
|
||||||
Flipp Dinero,Q57584556,male,solo,hip-hop,United States,American rapper
|
Flipp Dinero,Q57584556,male,solo,hip-hop,United States,American rapper
|
||||||
Flo Milli,Q89352069,female,solo,hip-hop,United States,American rapper
|
Flo Milli,Q89352069,female,solo,hip-hop,United States,American rapper
|
||||||
Flo Rida,Q213538,male,solo,hip-hop; pop music; dance music; electronic dance music; Southern hip-hop; contemporary R&B; house music; electro hop; electro house; electropop; electro; EDM trap music; trap music; bass music; crunk; pop rap; dirty south; dance-pop; hip house; Miami bass; electronic music; techno; trance,United States,American rapper and singer (born 1979)
|
Flo Rida,Q213538,male,solo,hip-hop; pop music; dance music; electronic dance music; Southern hip-hop; contemporary R&B; house music; electro hop; electro house; electropop; electro; EDM trap music; trap music; bass music; crunk; pop rap; dirty south; dance-pop; hip house; Miami bass; electronic music; techno; trance,United States,American rapper and singer (born 1979)
|
||||||
Florida Georgia Line,Q3644642,male,group,country music,United States,American country music duo; gender derived from members: Q20740966 male; Q20744476 male
|
Florida Georgia Line,Q3644642,,group,country music,United States,American country music duo
|
||||||
FloyyMenor,Q125819969,male,solo,reggaeton,Chile,Chilean singer-songwriter
|
FloyyMenor,Q125819969,male,solo,reggaeton,Chile,Chilean singer-songwriter
|
||||||
Flume,Q4038837,male,solo,electronica; trip hop; future bass,Australia,Australian music producer
|
Flume,Q4038837,male,solo,electronica; trip hop; future bass,Australia,Australian music producer
|
||||||
Frank Ocean,Q357645,male,solo,alternative R&B; psychedelic soul; progressive soul; contemporary R&B; pop music; soul; hip-hop; avant-pop,United States,"American singer, songwriter, and rapper"
|
Frank Ocean,Q357645,male,solo,alternative R&B; psychedelic soul; progressive soul; contemporary R&B; pop music; soul; hip-hop; avant-pop,United States,"American singer, songwriter, and rapper"
|
||||||
French Montana,Q1455261,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop,Morocco,Moroccan and American rapper
|
French Montana,Q1455261,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop,Morocco,Moroccan and American rapper
|
||||||
Fuerza Regida,Q118466501,male,group,regional Mexican; banda music; corrido; corridos tumbados; sierreña; norteño,United States,regional Mexican group; gender derived from members: Q140937069 male; Q140937070 male; Q140937071 male; Q140937072 male; Q63801293 male
|
Fuerza Regida,Q118466501,,group,regional Mexican; banda music; corrido; corridos tumbados; sierreña; norteño,United States,regional Mexican group
|
||||||
Future,Q3445057,male,solo,Southern hip-hop; trap music; mumble rap; contemporary R&B,United States,American rapper (born 1983)
|
Future,Q3445057,male,solo,Southern hip-hop; trap music; mumble rap; contemporary R&B,United States,American rapper (born 1983)
|
||||||
G-Eazy,Q5511893,male,solo,hip-hop,United States,American rapper
|
G-Eazy,Q5511893,male,solo,hip-hop,United States,American rapper
|
||||||
Gabby Barrett,Q53912835,female,solo,country pop,United States,American country singer
|
Gabby Barrett,Q53912835,female,solo,country pop,United States,American country singer
|
||||||
GAYLE,Q109768702,female,solo,pop-punk; pop rock; power pop; emo pop; alternative pop; alternative rock,United States,American singer-songwriter
|
GAYLE,Q109768702,female,solo,pop-punk; pop rock; power pop; emo pop; alternative pop; alternative rock,United States,American singer-songwriter
|
||||||
Gigi Perez,Q130235359,female,solo,indie folk,United States,American singer-songwriter
|
Gigi Perez,Q130235359,female,solo,indie folk,United States,American singer-songwriter
|
||||||
Giveon,Q96418479,male,solo,contemporary R&B,United States,American R&B singer
|
Giveon,Q96418479,male,solo,contemporary R&B,United States,American R&B singer
|
||||||
Glass Animals,Q16839267,male,group,indie rock; psychedelic pop; indietronica; alternative pop; electronic rock; psychedelic rock,United Kingdom,English indie rock band; gender derived from members: Q140937073 male; Q140937074 male; Q140937075 male; Q105007781 male
|
Glass Animals,Q16839267,,group,indie rock; psychedelic pop; indietronica; alternative pop; electronic rock; psychedelic rock,United Kingdom,English indie rock band
|
||||||
GloRilla,Q114132368,female,solo,hip-hop; trap music; crunk; Memphis rap; Southern hip-hop,United States,American rapper
|
GloRilla,Q114132368,female,solo,hip-hop; trap music; crunk; Memphis rap; Southern hip-hop,United States,American rapper
|
||||||
gnash,Q23978226,male,solo,pop music; hip-hop; alternative R&B; indie folk,United States,American musician
|
gnash,Q23978226,male,solo,pop music; hip-hop; alternative R&B; indie folk,United States,American musician
|
||||||
Gracie Abrams,Q106301562,female,solo,bedroom pop; pop music,United States,American singer-songwriter (born 1999)
|
Gracie Abrams,Q106301562,female,solo,bedroom pop; pop music,United States,American singer-songwriter (born 1999)
|
||||||
Grey,Q28451953,male,group,electronic music; pop music; future bass,United States,American electronic music group consisting of brothers Kyle and Michael Trewartha; gender derived from members: Q132418188 male; Q132419038 male
|
Grey,Q28451953,,group,electronic music; pop music; future bass,United States,American electronic music group consisting of brothers Kyle and Michael Trewartha
|
||||||
Grupo Frontera,Q118141487,male,group,regional Mexican; norteño; cumbia norteña mexicana,United States,Mexican-American musical band; gender derived from members: Q140937076 male; Q140937077 male; Q140937078 male; Q140937079 male; Q140937080 male
|
Grupo Frontera,Q118141487,,group,regional Mexican; norteño; cumbia norteña mexicana,United States,Mexican-American musical band
|
||||||
Gucci Mane,Q206032,male,solo,Southern hip-hop; trap music; gangsta rap; hardcore hip-hop; dirty south; Atlanta hip-hop; dirty rap,United States,American rapper and music executive (born 1980)
|
Gucci Mane,Q206032,male,solo,Southern hip-hop; trap music; gangsta rap; hardcore hip-hop; dirty south; Atlanta hip-hop; dirty rap,United States,American rapper and music executive (born 1980)
|
||||||
Gunna,Q55613105,male,solo,hip-hop; trap music; Southern hip-hop; contemporary R&B,United States,American rapper (born 1993)
|
Gunna,Q55613105,male,solo,hip-hop; trap music; Southern hip-hop; contemporary R&B,United States,American rapper (born 1993)
|
||||||
Gus Dapperton,Q51858412,male,solo,pop music,United States,American singer-songwriter
|
Gus Dapperton,Q51858412,male,solo,pop music,United States,American singer-songwriter
|
||||||
@@ -173,12 +173,11 @@ Hailee Steinfeld,Q231726,female,solo,pop music; dance-pop,United States,American
|
|||||||
Halsey,Q18534249,female,solo,pop music; electropop; synth-pop; art pop; alternative pop; alternative rock; alternative R&B; indie pop; contemporary R&B,United States,American singer-songwriter (born 1994)
|
Halsey,Q18534249,female,solo,pop music; electropop; synth-pop; art pop; alternative pop; alternative rock; alternative R&B; indie pop; contemporary R&B,United States,American singer-songwriter (born 1994)
|
||||||
HARDY,Q63341424,male,solo,country music,United States,American country singer
|
HARDY,Q63341424,male,solo,country music,United States,American country singer
|
||||||
Harry Styles,Q3626966,male,solo,soft rock; pop music; rock music; Britpop; traditional folk music,United Kingdom,"English singer, songwriter and actor"
|
Harry Styles,Q3626966,male,solo,soft rock; pop music; rock music; Britpop; traditional folk music,United Kingdom,"English singer, songwriter and actor"
|
||||||
Hope Segoine,Q140937470,female,solo,children's music,United States,"American singer and voice actress, vocalist on the Pinkfong song Baby Shark"
|
|
||||||
Hozier,Q16233232,male,solo,blues; blues rock; rhythm and blues; traditional folk music; soul; indie rock,Ireland,Irish musician and singer
|
Hozier,Q16233232,male,solo,blues; blues rock; rhythm and blues; traditional folk music; soul; indie rock,Ireland,Irish musician and singer
|
||||||
Hudson Westbrook,Q134125831,male,solo,country music,United States,American singer
|
Hudson Westbrook,Q134125831,male,solo,country music,United States,American singer
|
||||||
iann dior,Q65631841,male,solo,emo rap; pop rap; rap rock; pop rock,United States,American rapper and singer
|
iann dior,Q65631841,male,solo,emo rap; pop rap; rap rock; pop rock,United States,American rapper and singer
|
||||||
Ice Spice,Q114114977,female,solo,Bronx drill; hip-hop; East Coast hip-hop; Jersey club; pop rap,United States,American rapper (born 2000)
|
Ice Spice,Q114114977,female,solo,Bronx drill; hip-hop; East Coast hip-hop; Jersey club; pop rap,United States,American rapper (born 2000)
|
||||||
Imagine Dragons,Q391348,male,group,pop rock; electropop; alternative rock; new wave,United States,American pop rock band; gender derived from members: Q5214275 male; Q17403213 male; Q18637722 male; Q18719116 male
|
Imagine Dragons,Q391348,,group,pop rock; electropop; alternative rock; new wave,United States,American pop rock band
|
||||||
Infared,Q140814135,male,solo,hip-hop,,hip-hop songwriter and rapper featured on the 2016 single All the Way Up
|
Infared,Q140814135,male,solo,hip-hop,,hip-hop songwriter and rapper featured on the 2016 single All the Way Up
|
||||||
Internet Money,Q99691610,,,hip-hop,United States,American record label and record producer collective
|
Internet Money,Q99691610,,,hip-hop,United States,American record label and record producer collective
|
||||||
J Balvin,Q966845,male,solo,reggaeton; Latin pop; Latin trap,Colombia,Colombian singer
|
J Balvin,Q966845,male,solo,reggaeton; Latin pop; Latin trap,Colombia,Colombian singer
|
||||||
@@ -206,7 +205,7 @@ John Legend,Q44857,male,solo,soul; pop music; contemporary R&B,United States,Ame
|
|||||||
Joji,Q23826617,male,solo,contemporary R&B; alternative R&B; trip hop; lo-fi music; surreal humour; satirical music; satire; comedy hip-hop; black comedy; alternative rock; comedy music,Japan,Japanese-Australian entertainer (born 1992)
|
Joji,Q23826617,male,solo,contemporary R&B; alternative R&B; trip hop; lo-fi music; surreal humour; satirical music; satire; comedy hip-hop; black comedy; alternative rock; comedy music,Japan,Japanese-Australian entertainer (born 1992)
|
||||||
Jon Bellion,Q18044284,male,solo,pop music; contemporary R&B; hip-hop; indie rock; pop rap; alternative hip-hop; indie pop; alternative rock; dance-pop; soul,United States,"American singer, rapper, songwriter, and record producer"
|
Jon Bellion,Q18044284,male,solo,pop music; contemporary R&B; hip-hop; indie rock; pop rap; alternative hip-hop; indie pop; alternative rock; dance-pop; soul,United States,"American singer, rapper, songwriter, and record producer"
|
||||||
Jon Pardi,Q6271354,male,solo,country music,United States,American country singer
|
Jon Pardi,Q6271354,male,solo,country music,United States,American country singer
|
||||||
Jonas Brothers,Q134233,male,group,pop music; pop rock,United States,American pop rock band; gender derived from members: Q210172 male; Q191088 male; Q201656 male
|
Jonas Brothers,Q134233,,group,pop music; pop rock,United States,American pop rock band
|
||||||
Jordan Davis,Q44274417,male,solo,country pop; country music; pop music,United States,American country music singer and songwriter
|
Jordan Davis,Q44274417,male,solo,country pop; country music; pop music,United States,American country music singer and songwriter
|
||||||
JP Saxe,Q86009464,male,solo,pop music,Canada,Canadian singer and musician
|
JP Saxe,Q86009464,male,solo,pop music,Canada,Canadian singer and musician
|
||||||
Juice WRLD,Q52151598,male,solo,hip-hop; emo rap; alternative rock; trap music; pop rap; SoundCloud rap; contemporary R&B; alternative hip-hop; mumble rap,United States,American rapper and singer (1998–2019)
|
Juice WRLD,Q52151598,male,solo,hip-hop; emo rap; alternative rock; trap music; pop rap; SoundCloud rap; contemporary R&B; alternative hip-hop; mumble rap,United States,American rapper and singer (1998–2019)
|
||||||
@@ -270,18 +269,18 @@ Lizzo,Q16232225,female,solo,hip-hop; soul; contemporary R&B; gospel music,United
|
|||||||
Logic,Q6667429,male,solo,hip-hop; pop rap; conscious hip-hop; East Coast hip-hop,United States,American rapper from Maryland
|
Logic,Q6667429,male,solo,hip-hop; pop rap; conscious hip-hop; East Coast hip-hop,United States,American rapper from Maryland
|
||||||
Lola Young,Q115869427,female,solo,pop music; soul; contemporary R&B,United Kingdom,British singer-songwriter (born 2001)
|
Lola Young,Q115869427,female,solo,pop music; soul; contemporary R&B,United Kingdom,British singer-songwriter (born 2001)
|
||||||
Luis Fonsi,Q1387726,male,solo,pop music; Latin pop; ballad; reggaeton,United States,Puerto Rican singer
|
Luis Fonsi,Q1387726,male,solo,pop music; Latin pop; ballad; reggaeton,United States,Puerto Rican singer
|
||||||
Lukas Graham,Q300935,male,group,soul; pop music; pop rock; funk,Denmark,Danish band; gender derived from members: Q15125833 male; Q16324115 male; Q99730956 male; Q108604119 male
|
Lukas Graham,Q300935,,group,soul; pop music; pop rock; funk,Denmark,Danish band
|
||||||
Luke Bryan,Q166197,male,solo,country music,United States,American country music singer
|
Luke Bryan,Q166197,male,solo,country music,United States,American country music singer
|
||||||
Luke Combs,Q23884740,male,solo,country music,United States,American country singer
|
Luke Combs,Q23884740,male,solo,country music,United States,American country singer
|
||||||
Machine Gun Kelly,Q1354843,male,solo,hip-hop; pop rap; rap rock; pop-punk; alternative rock; alternative hip-hop,United States,American musician (born 1990)
|
Machine Gun Kelly,Q1354843,male,solo,hip-hop; pop rap; rap rock; pop-punk; alternative rock; alternative hip-hop,United States,American musician (born 1990)
|
||||||
Maddie,Q54607228,female,solo,country music,United States,"Singer, part of Maddie & Tae"
|
Maddie,Q54607228,female,solo,country music,United States,"Singer, part of Maddie & Tae"
|
||||||
Mae Muller,Q83696883,female,solo,pop music; rhythm and blues,United Kingdom,British singer
|
Mae Muller,Q83696883,female,solo,pop music; rhythm and blues,United Kingdom,British singer
|
||||||
Major Lazer,Q2604214,male,group,dancehall; moombahton; reggae fusion; trap music; electronic dance music; hip-hop; electro house; rocksteady,United States,Jamaican-American electronic music band; gender derived from members: Q533781 male; Q20684243 male; Q25344650 male
|
Major Lazer,Q2604214,,group,dancehall; moombahton; reggae fusion; trap music; electronic dance music; hip-hop; electro house; rocksteady,United States,Jamaican-American electronic music band
|
||||||
Maren Morris,Q21622122,female,solo,country music; country pop; folk rock; folk music,United States,American country singer
|
Maren Morris,Q21622122,female,solo,country music; country pop; folk rock; folk music,United States,American country singer
|
||||||
Mariah Carey,Q41076,female,solo,contemporary R&B; pop music; adult contemporary music; dance-pop; hip-hop,United States,American singer (born 1969)
|
Mariah Carey,Q41076,female,solo,contemporary R&B; pop music; adult contemporary music; dance-pop; hip-hop,United States,American singer (born 1969)
|
||||||
Mariah the Scientist,Q84356665,female,solo,alternative R&B,United States,American singer (born 1997)
|
Mariah the Scientist,Q84356665,female,solo,alternative R&B,United States,American singer (born 1997)
|
||||||
Marian Hill,Q20858093,mixed,group,electronic music,United States,American musical duo; gender derived from members: Q140937081 female; Q30189878 male
|
Marian Hill,Q20858093,,group,electronic music,United States,American musical duo
|
||||||
Maroon 5,Q182223,male,group,alternative rock; funk rock; pop rock; pop music,United States,American pop rock band; gender derived from members: Q219631 male; Q1200118 male; Q445136 male; Q1200152 male; Q5354186 male; Q1527502 male
|
Maroon 5,Q182223,,group,alternative rock; funk rock; pop rock; pop music,United States,American pop rock band
|
||||||
Marshmello,Q26334949,male,solo,electronic dance music,United States,American DJ and electronic music producer (born 1992)
|
Marshmello,Q26334949,male,solo,electronic dance music,United States,American DJ and electronic music producer (born 1992)
|
||||||
Masked Wolf,Q105490126,male,solo,hip-hop,Australia,Australian rapper
|
Masked Wolf,Q105490126,male,solo,hip-hop,Australia,Australian rapper
|
||||||
Mauro Castillo,Q16605580,male,solo,salsa,Colombia,"Colombian singer, composer, and actor"
|
Mauro Castillo,Q16605580,male,solo,salsa,Colombia,"Colombian singer, composer, and actor"
|
||||||
@@ -291,7 +290,7 @@ Megan Moroney,Q116786312,female,solo,country music; folk music,United States,Ame
|
|||||||
Megan Thee Stallion,Q59268408,female,solo,hip-hop; trap music; dirty rap; pop rap; pop music,United States,"American rapper, singer and songwriter"
|
Megan Thee Stallion,Q59268408,female,solo,hip-hop; trap music; dirty rap; pop rap; pop music,United States,"American rapper, singer and songwriter"
|
||||||
Meghan Trainor,Q17403494,female,solo,pop music; contemporary R&B; dance-pop; soul; doo-wop,United States,American singer-songwriter (born 1993)
|
Meghan Trainor,Q17403494,female,solo,pop music; contemporary R&B; dance-pop; soul; doo-wop,United States,American singer-songwriter (born 1993)
|
||||||
Metro Boomin,Q16235273,male,solo,hip-hop; trap music,United States,American record producer (born 1993)
|
Metro Boomin,Q16235273,male,solo,hip-hop; trap music,United States,American record producer (born 1993)
|
||||||
Migos,Q15777045,male,group,Southern hip-hop; trap music; mumble rap,United States,American hip hop group; gender derived from members: Q48719890 male; Q30072039 male; Q30612480 male; Q30072039 male; Q48719890 male; Q30612480 male
|
Migos,Q15777045,,group,Southern hip-hop; trap music; mumble rap,United States,American hip hop group
|
||||||
Miguel,Q73463,male,solo,contemporary R&B; alternative R&B; hip-hop; pop music; soul,United States,American R&B singer
|
Miguel,Q73463,male,solo,contemporary R&B; alternative R&B; hip-hop; pop music; soul,United States,American R&B singer
|
||||||
Mike Posner,Q268284,male,solo,pop music,United States,American musician
|
Mike Posner,Q268284,male,solo,pop music,United States,American musician
|
||||||
Miley Cyrus,Q4235,genderfluid,solo,pop music; country music; pop rock; dance-pop; electropop; rock music; hip-hop; teen pop; country pop,United States,"American singer, actress, and television personality (born 1992)"
|
Miley Cyrus,Q4235,genderfluid,solo,pop music; country music; pop rock; dance-pop; electropop; rock music; hip-hop; teen pop; country pop,United States,"American singer, actress, and television personality (born 1992)"
|
||||||
@@ -304,14 +303,14 @@ Muni Long,Q7245622,female,solo,contemporary R&B; pop music,United States,America
|
|||||||
Murda Beatz,Q27970613,male,solo,hip-hop,Canada,Canadian record producer (born 1994)
|
Murda Beatz,Q27970613,male,solo,hip-hop,Canada,Canadian record producer (born 1994)
|
||||||
Mustard,Q15941115,male,solo,hip-hop; ratchet music; West Coast hip-hop; contemporary R&B,United States,American record producer
|
Mustard,Q15941115,male,solo,hip-hop; ratchet music; West Coast hip-hop; contemporary R&B,United States,American record producer
|
||||||
Myles Smith,Q126076580,male,solo,folk-pop; folk music; pop music; folk rock,United Kingdom,British singer
|
Myles Smith,Q126076580,male,solo,folk-pop; folk music; pop music; folk rock,United Kingdom,British singer
|
||||||
Måneskin,Q56884561,mixed,group,pop rock; glam rock,Italy,Italian rock band; gender derived from members: Q57415344 male; Q106859392 female; Q106859395 male; Q106859398 male
|
Måneskin,Q56884561,,group,pop rock; glam rock,Italy,Italian rock band
|
||||||
MØ,Q10670047,female,solo,indie pop; electronic music,Kingdom of Denmark,Danish singer and songwriter
|
MØ,Q10670047,female,solo,indie pop; electronic music,Kingdom of Denmark,Danish singer and songwriter
|
||||||
N*E*R*D,Q941293,male,group,funk rock; bossa nova; orchestral pop; hip-hop; skate punk,United States,American rock and hip-hop band; gender derived from members: Q14313 male; Q706641 male; Q2584176 male
|
N*E*R*D,Q941293,,group,funk rock; bossa nova; orchestral pop; hip-hop; skate punk,United States,American rock and hip-hop band
|
||||||
Natanael Cano,Q104904549,male,solo,corridos tumbados; regional Mexican,Mexico,Mexican rapper and singer
|
Natanael Cano,Q104904549,male,solo,corridos tumbados; regional Mexican,Mexico,Mexican rapper and singer
|
||||||
Nate Smith,Q110707312,male,solo,country music; country rock,United States,"American country music singer, musician and songwriter"
|
Nate Smith,Q110707312,male,solo,country music; country rock,United States,"American country music singer, musician and songwriter"
|
||||||
NAV,Q28831246,male,solo,hip-hop; cloud rap; trap music; contemporary R&B,Canada,"Canadian rapper, singer, and record producer (born 1989)"
|
NAV,Q28831246,male,solo,hip-hop; cloud rap; trap music; contemporary R&B,Canada,"Canadian rapper, singer, and record producer (born 1989)"
|
||||||
Neckwav,Q140814188,male,solo,contemporary R&B,South Korea,South Korean R&B singer
|
Neckwav,Q140814188,male,solo,contemporary R&B,South Korea,South Korean R&B singer
|
||||||
NEIKED,Q26703294,male,group,,Sweden,Swedish artist collective; gender derived from members: Q140937096 male
|
NEIKED,Q26703294,,group,,Sweden,Swedish artist collective
|
||||||
Nelly,Q218992,male,solo,Midwest hip-hop; pop rap; contemporary R&B; pop music; country rap; country music,United States,"American rapper, singer and actor (born 1974)"
|
Nelly,Q218992,male,solo,Midwest hip-hop; pop rap; contemporary R&B; pop music; country rap; country music,United States,"American rapper, singer and actor (born 1974)"
|
||||||
Netón Vega,Q129208676,male,solo,regional Mexican; corridos tumbados,Mexico,Mexican singer-songwriter
|
Netón Vega,Q129208676,male,solo,regional Mexican; corridos tumbados,Mexico,Mexican singer-songwriter
|
||||||
NF,Q19571648,male,solo,hip-hop,United States,American rapper from Michigan
|
NF,Q19571648,male,solo,hip-hop,United States,American rapper from Michigan
|
||||||
@@ -327,39 +326,40 @@ Noah Kahan,Q53832755,male,solo,folk-pop,United States,American singer-songwriter
|
|||||||
Normani,Q28148022,female,solo,pop music; contemporary R&B,United States,American singer and dancer
|
Normani,Q28148022,female,solo,pop music; contemporary R&B,United States,American singer and dancer
|
||||||
O.T. Genasis,Q18623749,male,solo,hip-hop; trap music,United States,American rapper
|
O.T. Genasis,Q18623749,male,solo,hip-hop; trap music,United States,American rapper
|
||||||
Offset,Q30612480,male,solo,hip-hop; trap music; Southern hip-hop,United States,American rapper
|
Offset,Q30612480,male,solo,hip-hop; trap music; Southern hip-hop,United States,American rapper
|
||||||
Old Dominion,Q20685018,male,group,country pop,United States,American country pop music group (2007–); gender derived from members: Q140937082 male; Q140937083 male; Q140937084 male; Q22095817 male; Q22073693 male
|
Old Dominion,Q20685018,,group,country pop,United States,American country pop music group (2007–)
|
||||||
Oliver Anthony Music,Q121391237,male,solo,country music; folk music,United States,American singer-songwriter
|
Oliver Anthony Music,Q121391237,male,solo,country music; folk music,United States,American singer-songwriter
|
||||||
Olivia O'Brien,Q23978275,female,solo,dance-pop; pop music,United States,American singer
|
Olivia O'Brien,Q23978275,female,solo,dance-pop; pop music,United States,American singer
|
||||||
Olivia Rodrigo,Q63243883,female,solo,indie pop; pop music; rock music,United States,American singer and actress (born 2003)
|
Olivia Rodrigo,Q63243883,female,solo,indie pop; pop music; rock music,United States,American singer and actress (born 2003)
|
||||||
One Direction,Q146027,male,group,dance-pop; teen pop; pop rock,United Kingdom,English-Irish musical group; boy band; gender derived from members: Q2756349 male; Q3624971 male; Q3626966 male; Q775231 male
|
One Direction,Q146027,,group,dance-pop; teen pop; pop rock,United Kingdom,English-Irish musical group; boy band
|
||||||
OneRepublic,Q1438730,male,group,pop rock; alternative rock; cello rock,United States,American pop rock band; gender derived from members: Q351061 male; Q4484208 male; Q2617484 male; Q11694992 male; Q5336031 male; Q108109438 male
|
OneRepublic,Q1438730,,group,pop rock; alternative rock; cello rock,United States,American pop rock band
|
||||||
Ozuna,Q28739901,male,solo,reggaeton; Latin trap; Latin pop; dancehall,United States,Puerto Rican singer
|
Ozuna,Q28739901,male,solo,reggaeton; Latin trap; Latin pop; dancehall,United States,Puerto Rican singer
|
||||||
P!nk,Q160009,female,solo,pop music; pop rock; contemporary R&B,United States,"American singer, songwriter, and actress (born 1979)"
|
P!nk,Q160009,female,solo,pop music; pop rock; contemporary R&B,United States,"American singer, songwriter, and actress (born 1979)"
|
||||||
Panic! At The Disco,Q277551,male,group,pop rock; synth-pop; pop-punk; baroque pop; emo pop; alternative rock,United States,American musical group; rock solo project band; gender derived from members: Q1047474 male
|
Panic! At The Disco,Q277551,,group,pop rock; synth-pop; pop-punk; baroque pop; emo pop; alternative rock,United States,American musical group; rock solo project band
|
||||||
Parker McCollum,Q20684755,male,solo,Americana; country music,United States,American musician
|
Parker McCollum,Q20684755,male,solo,Americana; country music,United States,American musician
|
||||||
Parmalee,Q7139162,male,group,country music,United States,American country music band; gender derived from members: Q140937085 male; Q140937086 male; Q140937087 male; Q140937088 male
|
Parmalee,Q7139162,,group,country music,United States,American country music band
|
||||||
PARTYNEXTDOOR,Q15929398,male,solo,Canadian hip-hop; alternative R&B,Canada,Canadian singer (born 1993)
|
PARTYNEXTDOOR,Q15929398,male,solo,Canadian hip-hop; alternative R&B,Canada,Canadian singer (born 1993)
|
||||||
Paul Russell,Q122932071,male,solo,hip-hop; contemporary R&B; pop rap,United States,American singer
|
Paul Russell,Q122932071,male,solo,hip-hop; contemporary R&B; pop rap,United States,American singer
|
||||||
Peso Pluma,Q117242724,male,solo,regional Mexican; corridos tumbados; reggaeton; Latin trap; cumbia norteña mexicana,Mexico,Mexican singer (born 1999)
|
Peso Pluma,Q117242724,male,solo,regional Mexican; corridos tumbados; reggaeton; Latin trap; cumbia norteña mexicana,Mexico,Mexican singer (born 1999)
|
||||||
Pharrell Williams,Q14313,male,solo,contemporary R&B; hip-hop; pop music; funk; rock music; pop rap,United States,American record producer and songwriter
|
Pharrell Williams,Q14313,male,solo,contemporary R&B; hip-hop; pop music; funk; rock music; pop rap,United States,American record producer and songwriter
|
||||||
|
Pinkfong,Q55735607,,,children's music,South Korea,Korean children's entertainment brand
|
||||||
PinkPantheress,Q107570416,female,solo,pop music; bedroom pop; dance music; alternative pop; drum and bass; 2-step garage; jungle; hyperpop,United Kingdom,British singer-songwriter
|
PinkPantheress,Q107570416,female,solo,pop music; bedroom pop; dance music; alternative pop; drum and bass; 2-step garage; jungle; hyperpop,United Kingdom,British singer-songwriter
|
||||||
Playboi Carti,Q27671080,male,solo,Southern hip-hop; trap music; mumble rap; cloud rap; rage; punk rap; alternative hip-hop; plugg music; lo-fi music; SoundCloud rap,United States,American rapper
|
Playboi Carti,Q27671080,male,solo,Southern hip-hop; trap music; mumble rap; cloud rap; rage; punk rap; alternative hip-hop; plugg music; lo-fi music; SoundCloud rap,United States,American rapper
|
||||||
PnB Rock,Q28155029,male,solo,hip-hop; contemporary R&B; trap music; pop music; pop rap,United States,American rapper (1991–2022)
|
PnB Rock,Q28155029,male,solo,hip-hop; contemporary R&B; trap music; pop music; pop rap,United States,American rapper (1991–2022)
|
||||||
Polo G,Q62953486,male,solo,hip-hop; drill; trap music; conscious hip-hop; Midwest hip-hop; Chicago hip-hop,United States,American rapper
|
Polo G,Q62953486,male,solo,hip-hop; drill; trap music; conscious hip-hop; Midwest hip-hop; Chicago hip-hop,United States,American rapper
|
||||||
Pooh Shiesty,Q105105274,male,solo,trap music; Southern hip-hop; drill; hardcore hip-hop; gangsta rap; Memphis rap,United States,American rapper from Tennessee (born. 1999)
|
Pooh Shiesty,Q105105274,male,solo,trap music; Southern hip-hop; drill; hardcore hip-hop; gangsta rap; Memphis rap,United States,American rapper from Tennessee (born. 1999)
|
||||||
Pop Smoke,Q81698554,male,solo,East Coast hip-hop; Brooklyn drill; trap music; gangsta rap; drill; hip-hop,United States,American rapper (1999–2020)
|
Pop Smoke,Q81698554,male,solo,East Coast hip-hop; Brooklyn drill; trap music; gangsta rap; drill; hip-hop,United States,American rapper (1999–2020)
|
||||||
Portugal. The Man,Q606879,mixed,group,pop music; indie rock,United States,American rock band; gender derived from members: Q3192614 male; Q23901842 male; Q99693053 male; Q99690335 male; Q99731864 female; Q99695322 male
|
Portugal. The Man,Q606879,,group,pop music; indie rock,United States,American rock band
|
||||||
Post Malone,Q21621919,male,solo,hip-hop; pop music; country music,United States,American musician (born 1995)
|
Post Malone,Q21621919,male,solo,hip-hop; pop music; country music,United States,American musician (born 1995)
|
||||||
Powfu,Q89069821,male,solo,hip-hop; lo-fi music; power pop; rock music,Canada,Canadian rapper and singer
|
Powfu,Q89069821,male,solo,hip-hop; lo-fi music; power pop; rock music,Canada,Canadian rapper and singer
|
||||||
Project Pat,Q593741,male,solo,Memphis rap; gangsta rap; hardcore hip-hop; Southern hip-hop; crunk; dirty south; trap music; horrorcore,United States,American rapper
|
Project Pat,Q593741,male,solo,Memphis rap; gangsta rap; hardcore hip-hop; Southern hip-hop; crunk; dirty south; trap music; horrorcore,United States,American rapper
|
||||||
Quavo,Q30072039,male,solo,hip-hop; trap music,United States,American rapper
|
Quavo,Q30072039,male,solo,hip-hop; trap music,United States,American rapper
|
||||||
Rae Sremmurd,Q18123226,male,group,hip-hop; trap music; pop music; pop rap,United States,American hip hop duo; gender derived from members: Q31401627 male; Q30103025 male
|
Rae Sremmurd,Q18123226,,group,hip-hop; trap music; pop music; pop rap,United States,American hip hop duo
|
||||||
Rauw Alejandro,Q61586861,male,solo,contemporary R&B; urban contemporary; Latin R&B; reggaeton; Latin trap; Latin pop; salsa,United States,Puerto Rican singer and songwriter
|
Rauw Alejandro,Q61586861,male,solo,contemporary R&B; urban contemporary; Latin R&B; reggaeton; Latin trap; Latin pop; salsa,United States,Puerto Rican singer and songwriter
|
||||||
Ravyn Lenae,Q28962463,female,solo,contemporary R&B; alternative R&B; neo soul,United States,American singer
|
Ravyn Lenae,Q28962463,female,solo,contemporary R&B; alternative R&B; neo soul,United States,American singer
|
||||||
RAYE,Q28071144,female,solo,contemporary R&B,United Kingdom,British singer-songwriter
|
RAYE,Q28071144,female,solo,contemporary R&B,United Kingdom,British singer-songwriter
|
||||||
REI AMI,Q104842557,female,solo,K-pop; pop music; hip-hop; contemporary R&B,South Korea,South Korean singer and rapper
|
REI AMI,Q104842557,female,solo,K-pop; pop music; hip-hop; contemporary R&B,South Korea,South Korean singer and rapper
|
||||||
Rema,Q65071082,male,solo,Afrobeats,Nigeria,Nigerian singer-songwriter and rapper (2000–)
|
Rema,Q65071082,male,solo,Afrobeats,Nigeria,Nigerian singer-songwriter and rapper (2000–)
|
||||||
Remy Boyz,Q63405888,male,group,hip-hop,United States,musical group; gender derived from members: Q63405905 male; Q19361511 male
|
Remy Boyz,Q63405888,,group,hip-hop,United States,musical group
|
||||||
Remy Ma,Q275437,female,solo,East Coast hip-hop,United States,American rapper
|
Remy Ma,Q275437,female,solo,East Coast hip-hop,United States,American rapper
|
||||||
Rhenzy Feliz,Q34344805,male,solo,,United States,American actor
|
Rhenzy Feliz,Q34344805,male,solo,,United States,American actor
|
||||||
Rich The Kid,Q18637908,male,solo,hip-hop; trap music; mumble rap; plugg music; Southern hip-hop,United States,American rapper
|
Rich The Kid,Q18637908,male,solo,hip-hop; trap music; mumble rap; plugg music; Southern hip-hop,United States,American rapper
|
||||||
@@ -387,7 +387,7 @@ Sean Paul,Q200577,male,solo,dancehall; pop music,Jamaica,Jamaican dancehall sing
|
|||||||
Selena Gomez,Q83287,female,solo,pop music; dance-pop; electropop; pop rock; contemporary R&B; alternative R&B,United States,American singer and actress (born 1992)
|
Selena Gomez,Q83287,female,solo,pop music; dance-pop; electropop; pop rock; contemporary R&B; alternative R&B,United States,American singer and actress (born 1992)
|
||||||
Sexyy Red,Q119842023,female,solo,hip-hop; trap music; dirty rap; Midwest hip-hop,United States,American rapper (born 1998)
|
Sexyy Red,Q119842023,female,solo,hip-hop; trap music; dirty rap; Midwest hip-hop,United States,American rapper (born 1998)
|
||||||
Shaboozey,Q125295750,male,solo,alternative country; country music; hip-hop; Americana,United States,American singer (born 1995)
|
Shaboozey,Q125295750,male,solo,alternative country; country music; hip-hop; Americana,United States,American singer (born 1995)
|
||||||
SHAED,Q60643444,mixed,group,electropop; indie pop,United States,American musical group; gender derived from members: Q140937089 female; Q140937090 male; Q140937091 male
|
SHAED,Q60643444,,group,electropop; indie pop,United States,American musical group
|
||||||
Shakira,Q34424,female,solo,pop music; Latin pop; pop rock; Latin rock; dance music; folk music; world music; contemporary R&B; rock music,Spain,"Colombian singer, songwriter, and actress"
|
Shakira,Q34424,female,solo,pop music; Latin pop; pop rock; Latin rock; dance music; folk music; world music; contemporary R&B; rock music,Spain,"Colombian singer, songwriter, and actress"
|
||||||
Shawn Mendes,Q17198340,male,solo,folk-pop; pop music; pop rock,Canada,Canadian singer
|
Shawn Mendes,Q17198340,male,solo,folk-pop; pop music; pop rock,Canada,Canadian singer
|
||||||
Shay Mooney,Q116536996,male,solo,country music,United States,"American musician and songwriter, part of Dan + Shay"
|
Shay Mooney,Q116536996,male,solo,country music,United States,"American musician and songwriter, part of Dan + Shay"
|
||||||
@@ -396,7 +396,7 @@ Sia,Q181484,female,solo,electropop; indie pop,Australia,Australian singer and so
|
|||||||
Silentó,Q20354248,male,solo,hip-hop; pop rap; trap music; comedy hip-hop; snap music; pop music,United States,American rapper and singer (born 1998)
|
Silentó,Q20354248,male,solo,hip-hop; pop rap; trap music; comedy hip-hop; snap music; pop music,United States,American rapper and singer (born 1998)
|
||||||
Skip Marley,Q21621948,male,solo,reggae; pop music; hip-hop; rock music,Jamaica,Jamaican singer and songwriter
|
Skip Marley,Q21621948,male,solo,reggae; pop music; hip-hop; rock music,Jamaica,Jamaican singer and songwriter
|
||||||
Snow,Q94708,male,solo,dancehall; reggae; hip-hop; reggae fusion,Canada,Canadian dancehall rapper (born 1969)
|
Snow,Q94708,male,solo,dancehall; reggae; hip-hop; reggae fusion,Canada,Canadian dancehall rapper (born 1969)
|
||||||
Social House,Q65117469,male,group,pop music,United States,American pop duo; gender derived from members: Q140937092 male; Q59851247 male
|
Social House,Q65117469,,group,pop music,United States,American pop duo
|
||||||
sombr,Q133444448,male,solo,alternative pop; bedroom pop,United States,American singer-songwriter
|
sombr,Q133444448,male,solo,alternative pop; bedroom pop,United States,American singer-songwriter
|
||||||
SpotemGottem,Q105105325,male,solo,mumble rap; trap music; drill; Southern hip-hop,United States,American rapper
|
SpotemGottem,Q105105325,male,solo,mumble rap; trap music; drill; Southern hip-hop,United States,American rapper
|
||||||
StaySolidRocky,Q95918251,male,solo,hip-hop,United States,American rapper
|
StaySolidRocky,Q95918251,male,solo,hip-hop,United States,American rapper
|
||||||
@@ -405,7 +405,7 @@ Stephen Sanchez,Q113023532,male,solo,pop music,United States,American singer-son
|
|||||||
Steve Lacy,Q56733980,male,solo,alternative R&B,United States,"American singer, songwriter, guitarist, and record producer (born 1998)"
|
Steve Lacy,Q56733980,male,solo,alternative R&B,United States,"American singer, songwriter, guitarist, and record producer (born 1998)"
|
||||||
Summer Walker,Q61959478,female,solo,contemporary R&B,United States,American R&B singer
|
Summer Walker,Q61959478,female,solo,contemporary R&B,United States,American R&B singer
|
||||||
Surf Mesa,Q93771412,male,solo,tropical house,United States,American record producer and multi-instrumentalist
|
Surf Mesa,Q93771412,male,solo,tropical house,United States,American record producer and multi-instrumentalist
|
||||||
Surfaces,Q76330429,male,group,pop music,United States,American musical duo; gender derived from members: Q140937093 male; Q130538756 male
|
Surfaces,Q76330429,,group,pop music,United States,American musical duo
|
||||||
Swae Lee,Q30103025,male,solo,hip-hop; trap music,United States,American rapper and singer-songwriter (born 1993)
|
Swae Lee,Q30103025,male,solo,hip-hop; trap music,United States,American rapper and singer-songwriter (born 1993)
|
||||||
SZA,Q16210722,female,solo,contemporary R&B; alternative R&B; neo soul; pop music; hip-hop,United States,American singer
|
SZA,Q16210722,female,solo,contemporary R&B; alternative R&B; neo soul; pop music; hip-hop,United States,American singer
|
||||||
Tae,Q54607285,female,solo,country music,United States,"Singer, part of Maddie & Tae"
|
Tae,Q54607285,female,solo,country music,United States,"Singer, part of Maddie & Tae"
|
||||||
@@ -414,9 +414,9 @@ Taylor Swift,Q26876,female,solo,pop music; country music,United States,American
|
|||||||
Teddy Swims,Q105542333,male,solo,country music; pop music; rhythm and blues; soul,United States,American singer-songwriter
|
Teddy Swims,Q105542333,male,solo,country music; pop music; rhythm and blues; soul,United States,American singer-songwriter
|
||||||
Tems,Q72759173,female,solo,alternative R&B; Afrobeats,Nigeria,Nigerian singer-songwriter (born 1995)
|
Tems,Q72759173,female,solo,alternative R&B; Afrobeats,Nigeria,Nigerian singer-songwriter (born 1995)
|
||||||
Teo,Q55860035,male,solo,hip-hop,United States,American singer and dancer
|
Teo,Q55860035,male,solo,hip-hop,United States,American singer and dancer
|
||||||
The Chainsmokers,Q7721993,male,group,electronic dance music,United States,American electronic music duo; gender derived from members: Q48774228 male; Q48774469 male
|
The Chainsmokers,Q7721993,,group,electronic dance music,United States,American electronic music duo
|
||||||
The Kid LAROI,Q82890761,male,solo,Australian hip-hop; contemporary R&B; pop music; emo rap,Australia,Australian rapper and singer (born 2003)
|
The Kid LAROI,Q82890761,male,solo,Australian hip-hop; contemporary R&B; pop music; emo rap,Australia,Australian rapper and singer (born 2003)
|
||||||
The Marías,Q85807852,mixed,group,indie pop; psychedelic soul; dream pop; synth-pop,United States,American band; gender derived from members: Q136479092 female; Q140937094 male; Q140937095 male; Q140799579 male
|
The Marías,Q85807852,,group,indie pop; psychedelic soul; dream pop; synth-pop,United States,American band
|
||||||
The Weeknd,Q2121062,male,solo,alternative R&B; pop music; electropop,Canada,Canadian singer and songwriter (born 1990)
|
The Weeknd,Q2121062,male,solo,alternative R&B; pop music; electropop,Canada,Canadian singer and songwriter (born 1990)
|
||||||
Thomas Rhett,Q7793491,male,solo,country music,United States,American country singer
|
Thomas Rhett,Q7793491,male,solo,country music,United States,American country singer
|
||||||
Tim McGraw,Q356487,male,solo,country music,United States,American country singer and actor (born 1967)
|
Tim McGraw,Q356487,male,solo,country music,United States,American country singer and actor (born 1967)
|
||||||
@@ -428,7 +428,7 @@ Tove Lo,Q15948790,female,solo,pop music; indie pop; synth-pop; electropop,Sweden
|
|||||||
Travis Scott,Q13605596,male,solo,hip-hop; trap music; pop rap; psychedelic rap; rock music; Southern hip-hop; contemporary R&B; psychedelic music; pop rock; alternative rock; alternative hip-hop; alternative R&B; psychedelic rock; psychedelic hip-hop,United States,"American rapper, singer and record producer"
|
Travis Scott,Q13605596,male,solo,hip-hop; trap music; pop rap; psychedelic rap; rock music; Southern hip-hop; contemporary R&B; psychedelic music; pop rock; alternative rock; alternative hip-hop; alternative R&B; psychedelic rock; psychedelic hip-hop,United States,"American rapper, singer and record producer"
|
||||||
Trevor Daniel,Q81738417,male,solo,contemporary R&B; pop music,United States,American singer-songwriter
|
Trevor Daniel,Q81738417,male,solo,contemporary R&B; pop music,United States,American singer-songwriter
|
||||||
Tucker Wetmore,Q124754909,male,solo,country music,United States,American country music artist
|
Tucker Wetmore,Q124754909,male,solo,country music,United States,American country music artist
|
||||||
twenty one pilots,Q7857806,male,group,reggae; alternative rock; electropop; alternative hip-hop; rap rock; indie pop; pop rock,United States,American musical duo; gender derived from members: Q17306112 male; Q17305889 male
|
twenty one pilots,Q7857806,,group,reggae; alternative rock; electropop; alternative hip-hop; rap rock; indie pop; pop rock,United States,American musical duo
|
||||||
Ty Dolla $ign,Q7859785,male,solo,contemporary R&B; West Coast hip-hop; trap music; hip-hop,United States,American singer and rapper (born 1982)
|
Ty Dolla $ign,Q7859785,male,solo,contemporary R&B; West Coast hip-hop; trap music; hip-hop,United States,American singer and rapper (born 1982)
|
||||||
Tyga,Q358087,male,solo,West Coast hip-hop; pop rap,United States,American rapper
|
Tyga,Q358087,male,solo,West Coast hip-hop; pop rap,United States,American rapper
|
||||||
Tyla,Q118105408,female,solo,contemporary R&B; pop music; Amapiano; new jack swing,South Africa,South African singer-songwriter
|
Tyla,Q118105408,female,solo,contemporary R&B; pop music; Amapiano; new jack swing,South Africa,South African singer-songwriter
|
||||||
@@ -439,12 +439,12 @@ Usher,Q165911,male,solo,contemporary R&B; pop music; soul; hip-hop; dance music;
|
|||||||
Victoria Monét,Q19864989,female,solo,pop music; contemporary R&B; hip-hop,United States,American singer and songwriter (born 1989)
|
Victoria Monét,Q19864989,female,solo,pop music; contemporary R&B; hip-hop,United States,American singer and songwriter (born 1989)
|
||||||
Walker Hayes,Q7962267,male,solo,country music,United States,American musician
|
Walker Hayes,Q7962267,male,solo,country music,United States,American musician
|
||||||
Warren Zeiders,Q120986980,male,solo,country music,United States,American country musician
|
Warren Zeiders,Q120986980,male,solo,country music,United States,American country musician
|
||||||
Wham!,Q744087,male,group,pop music; new wave; blue-eyed soul,United Kingdom,British pop band; gender derived from members: Q130311 male; Q1195390 male
|
Wham!,Q744087,,group,pop music; new wave; blue-eyed soul,United Kingdom,British pop band
|
||||||
WILLOW,Q298209,female,solo,indie pop; alternative R&B; experimental pop; neo soul; hip-hop; electronic dance music; pop music; dream pop; contemporary R&B; rock music; indie rock; progressive rock; pop-punk; alternative rock; alternative pop; jazz,United States,American singer and actress (born 2000)
|
WILLOW,Q298209,female,solo,indie pop; alternative R&B; experimental pop; neo soul; hip-hop; electronic dance music; pop music; dream pop; contemporary R&B; rock music; indie rock; progressive rock; pop-punk; alternative rock; alternative pop; jazz,United States,American singer and actress (born 2000)
|
||||||
Willy William,Q17016749,male,solo,house music; reggaeton; zouk,France,"French DJ, record producer, and singer (born 1981)"
|
Willy William,Q17016749,male,solo,house music; reggaeton; zouk,France,"French DJ, record producer, and singer (born 1981)"
|
||||||
Wiz Khalifa,Q117139,male,solo,East Coast hip-hop; pop rap,United States,"American rapper, singer and actor (born 1987)"
|
Wiz Khalifa,Q117139,male,solo,East Coast hip-hop; pop rap,United States,"American rapper, singer and actor (born 1987)"
|
||||||
Wizkid,Q16233663,male,solo,Afrobeats; dancehall; rhythm and blues,Nigeria,Nigerian singer and songwriter (born 1990)
|
Wizkid,Q16233663,male,solo,Afrobeats; dancehall; rhythm and blues,Nigeria,Nigerian singer and songwriter (born 1990)
|
||||||
X Ambassadors,Q15963313,male,group,alternative rock,United States,"American rock band from Ithaca, New York; gender derived from members: Q107370454 male; Q107370536 male; Q107370879 male; Q107370898 male"
|
X Ambassadors,Q15963313,,group,alternative rock,United States,"American rock band from Ithaca, New York"
|
||||||
Xavi,Q124219723,male,solo,regional Mexican; corridos tumbados,United States,American singer
|
Xavi,Q124219723,male,solo,regional Mexican; corridos tumbados,United States,American singer
|
||||||
XXXTENTACION,Q28561969,male,solo,hip-hop; emo rap; SoundCloud rap; rap rock; lo-fi music; hardcore hip-hop; alternative rock; lofi hip-hop; indie rock; nu metal; cloud rap; trap music; hardcore punk; trap metal; punk rock; rock music; rap metal; alternative R&B; contemporary R&B; punk rap; heavy metal music,United States,American rapper (1998–2018)
|
XXXTENTACION,Q28561969,male,solo,hip-hop; emo rap; SoundCloud rap; rap rock; lo-fi music; hardcore hip-hop; alternative rock; lofi hip-hop; indie rock; nu metal; cloud rap; trap music; hardcore punk; trap metal; punk rock; rock music; rap metal; alternative R&B; contemporary R&B; punk rap; heavy metal music,United States,American rapper (1998–2018)
|
||||||
Yeat,Q108761978,male,solo,experimental hip-hop; rage; trap music,United States,"American rapper, singer-songwriter, and record producer (born 2000)"
|
Yeat,Q108761978,male,solo,experimental hip-hop; rage; trap music,United States,"American rapper, singer-songwriter, and record producer (born 2000)"
|
||||||
|
|||||||
|
+48
-48
@@ -5,7 +5,7 @@ Name,Wikidata QID,Gender,Type,Genre,Country,Songs
|
|||||||
24kGoldn,Q83751918,male,solo,pop rap,United States,Mood (2020#47/2021#4)
|
24kGoldn,Q83751918,male,solo,pop rap,United States,Mood (2020#47/2021#4)
|
||||||
42 Dugg,Q95694810,male,solo,Michigan rap; Midwest hip-hop; trap music; gangsta rap,United States,We Paid (2020#57)
|
42 Dugg,Q95694810,male,solo,Michigan rap; Midwest hip-hop; trap music; gangsta rap,United States,We Paid (2020#57)
|
||||||
4batz,Q124313062,male,solo,contemporary R&B,United States,Act II: Date @ 8 (2024#80)
|
4batz,Q124313062,male,solo,contemporary R&B,United States,Act II: Date @ 8 (2024#80)
|
||||||
5 Seconds of Summer,Q4641147,male,group,pop rock; pop-punk,Australia,Youngblood (2018#36/2019#33)
|
5 Seconds of Summer,Q4641147,,group,pop rock; pop-punk,Australia,Youngblood (2018#36/2019#33)
|
||||||
50 Cent,Q6060,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop,United States,The Woo (2020#78)
|
50 Cent,Q6060,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop,United States,The Woo (2020#78)
|
||||||
6ix9ine,Q44479972,male,solo,hip-hop; East Coast hip-hop; gangsta rap; trap metal; hardcore hip-hop; SoundCloud rap; punk rap; drill; trap music; urbano music; reggaeton; Brooklyn drill,United States,FEFE (2018#31)|Gummo (2018#56)|Swervin (2019#82)
|
6ix9ine,Q44479972,male,solo,hip-hop; East Coast hip-hop; gangsta rap; trap metal; hardcore hip-hop; SoundCloud rap; punk rap; drill; trap music; urbano music; reggaeton; Brooklyn drill,United States,FEFE (2018#31)|Gummo (2018#56)|Swervin (2019#82)
|
||||||
6LACK,Q27886640,male,solo,alternative R&B; contemporary R&B; trap music; cloud rap; industrial music; soul; hip-hop soul,United States,Calling My Phone (2021#33)
|
6LACK,Q27886640,male,solo,alternative R&B; contemporary R&B; trap music; cloud rap; industrial music; soul; hip-hop soul,United States,Calling My Phone (2021#33)
|
||||||
@@ -14,14 +14,14 @@ A$AP Ferg,Q15648254,male,solo,East Coast hip-hop; trap music,United States,Plain
|
|||||||
A$AP Rocky,Q129910,male,solo,East Coast hip-hop; psychedelic rap; experimental hip-hop; alternative hip-hop; cloud rap; trap music,United States,No Limit (2018#30)
|
A$AP Rocky,Q129910,male,solo,East Coast hip-hop; psychedelic rap; experimental hip-hop; alternative hip-hop; cloud rap; trap music,United States,No Limit (2018#30)
|
||||||
Adassa,Q576181,female,solo,reggaeton; urban contemporary; pop music,United States,We Don't Talk About Bruno (2022#24)
|
Adassa,Q576181,female,solo,reggaeton; urban contemporary; pop music,United States,We Don't Talk About Bruno (2022#24)
|
||||||
Adele,Q23215,female,solo,pop music; blue-eyed soul; rhythm and blues; soul; jazz; rock music,United Kingdom,Easy On Me (2022#4)|Hello (2016#7)|Oh My God (2022#72)|Send My Love (To Your New Lover) (2016#26)|Water Under The Bridge (2017#88)|When We Were Young (2016#83)
|
Adele,Q23215,female,solo,pop music; blue-eyed soul; rhythm and blues; soul; jazz; rock music,United Kingdom,Easy On Me (2022#4)|Hello (2016#7)|Oh My God (2022#72)|Send My Love (To Your New Lover) (2016#26)|Water Under The Bridge (2017#88)|When We Were Young (2016#83)
|
||||||
AJR,Q16154058,male,group,indie pop; alternative pop; electropop,United States,Bang! (2021#56)
|
AJR,Q16154058,,group,indie pop; alternative pop; electropop,United States,Bang! (2021#56)
|
||||||
Alessia Cara,Q20090091,female,solo,contemporary R&B; indie pop; pop music; soul; alternative R&B,Italy,1-800-273-8255 (2017#31/2018#84)|Here (2016#39)|Scars To Your Beautiful (2017#30)|Stay (2017#17)
|
Alessia Cara,Q20090091,female,solo,contemporary R&B; indie pop; pop music; soul; alternative R&B,Italy,1-800-273-8255 (2017#31/2018#84)|Here (2016#39)|Scars To Your Beautiful (2017#30)|Stay (2017#17)
|
||||||
Alex Warren,Q121842162,male,solo,pop music,United States,Ordinary (2025#7)
|
Alex Warren,Q121842162,male,solo,pop music,United States,Ordinary (2025#7)
|
||||||
Aminé,Q27830860,male,solo,West Coast hip-hop; alternative hip-hop; trap music; contemporary R&B,United States,Caroline (2017#60)
|
Aminé,Q27830860,male,solo,West Coast hip-hop; alternative hip-hop; trap music; contemporary R&B,United States,Caroline (2017#60)
|
||||||
Anderson .Paak,Q20810369,male,solo,contemporary R&B; hip-hop; soul; funk; pop music,United States,Leave The Door Open (2021#7)|Smokin Out The Window (2022#41)
|
Anderson .Paak,Q20810369,male,solo,contemporary R&B; hip-hop; soul; funk; pop music,United States,Leave The Door Open (2021#7)|Smokin Out The Window (2022#41)
|
||||||
Andrew Choi,Q15229870,male,solo,K-pop; pop music; contemporary R&B,South Korea,Free (2025#92)|Soda Pop (2025#61)|Your Idol (2025#54)
|
Andrew Choi,Q15229870,male,solo,K-pop; pop music; contemporary R&B,South Korea,Free (2025#92)|Soda Pop (2025#61)|Your Idol (2025#54)
|
||||||
Anne-Marie,Q25396976,female,solo,pop music; contemporary R&B,United Kingdom,Friends (2018#26)|Rockabye (2017#44)
|
Anne-Marie,Q25396976,female,solo,pop music; contemporary R&B,United Kingdom,Friends (2018#26)|Rockabye (2017#44)
|
||||||
Aqua,Q213388,mixed,group,pop music; bubblegum music; Eurodance,Denmark,Barbie World (2023#46)
|
Aqua,Q213388,,group,pop music; bubblegum music; Eurodance,Denmark,Barbie World (2023#46)
|
||||||
Ariana Grande,Q151892,female,solo,pop music; contemporary R&B; electronic dance music,United States,"34+35 (2021#21)|7 Rings (2019#7)|Boyfriend (2019#98)|Break Up With Your Girlfriend, I'm Bored (2019#36)|Breathin (2019#72)|Dangerous Woman (2016#36)|Die For You (2023#7)|God Is A Woman (2018#62)|Into You (2016#51)|No Tears Left To Cry (2018#20)|Positions (2021#14)|pov (2021#87)|Rain On Me (2020#48)|Save Your Tears (2021#2/2022#40)|Side To Side (2016#77/2017#43)|Stuck With U (2020#80)|Thank U, Next (2019#12)|We Can't Be Friends (Wait For Your Love) (2024#26)|Yes, And? (2024#92)"
|
Ariana Grande,Q151892,female,solo,pop music; contemporary R&B; electronic dance music,United States,"34+35 (2021#21)|7 Rings (2019#7)|Boyfriend (2019#98)|Break Up With Your Girlfriend, I'm Bored (2019#36)|Breathin (2019#72)|Dangerous Woman (2016#36)|Die For You (2023#7)|God Is A Woman (2018#62)|Into You (2016#51)|No Tears Left To Cry (2018#20)|Positions (2021#14)|pov (2021#87)|Rain On Me (2020#48)|Save Your Tears (2021#2/2022#40)|Side To Side (2016#77/2017#43)|Stuck With U (2020#80)|Thank U, Next (2019#12)|We Can't Be Friends (Wait For Your Love) (2024#26)|Yes, And? (2024#92)"
|
||||||
Arizona Zervas,Q75124792,male,solo,hip-hop; contemporary R&B; pop music,United States,Roxanne (2020#16)
|
Arizona Zervas,Q75124792,male,solo,hip-hop; contemporary R&B; pop music,United States,Roxanne (2020#16)
|
||||||
Artemas,Q125176874,male,solo,alternative pop,United Kingdom,I Like The Way You Kiss Me (2024#63)
|
Artemas,Q125176874,male,solo,alternative pop,United Kingdom,I Like The Way You Kiss Me (2024#63)
|
||||||
@@ -33,7 +33,7 @@ Ayo,Q55860029,male,solo,hip-hop,United States,Rolex (2017#61)
|
|||||||
AzChike,Q131417489,male,solo,hip-hop,United States,Peekaboo (2025#53)
|
AzChike,Q131417489,male,solo,hip-hop,United States,Peekaboo (2025#53)
|
||||||
Bad Bunny,Q44333953,male,solo,Latin trap; reggaeton,Puerto Rico,Baile Inolvidable (2025#70)|Dakiti (2021#28)|Despues de La Playa (2022#78)|DTMF (2025#51)|Efecto (2022#69)|EOO (2025#77)|I Like It (2018#7/2019#69)|Me Porto Bonito (2022#20)|MIA (2019#44)|Monaco (2024#82)|Moscow Mule (2022#44)|Nuevayol (2025#89)|Ojitos Lindos (2022#87)|Party (2022#77)|Te Bote (2018#81)|Titi Me Pregunto (2022#22)|Un x100to (2023#49)|Where She Goes (2023#72)|Yonaguni (2021#83)
|
Bad Bunny,Q44333953,male,solo,Latin trap; reggaeton,Puerto Rico,Baile Inolvidable (2025#70)|Dakiti (2021#28)|Despues de La Playa (2022#78)|DTMF (2025#51)|Efecto (2022#69)|EOO (2025#77)|I Like It (2018#7/2019#69)|Me Porto Bonito (2022#20)|MIA (2019#44)|Monaco (2024#82)|Moscow Mule (2022#44)|Nuevayol (2025#89)|Ojitos Lindos (2022#87)|Party (2022#77)|Te Bote (2018#81)|Titi Me Pregunto (2022#22)|Un x100to (2023#49)|Where She Goes (2023#72)|Yonaguni (2021#83)
|
||||||
Bailey Zimmerman,Q112581616,male,solo,country music,United States,All The Way (2025#33)|Backup Plan (2025#80)|Fall In Love (2022#54)|Religiously (2023#42)|Rock And A Hard Place (2022#70/2023#16)|Where It Ends (2024#87)
|
Bailey Zimmerman,Q112581616,male,solo,country music,United States,All The Way (2025#33)|Backup Plan (2025#80)|Fall In Love (2022#54)|Religiously (2023#42)|Rock And A Hard Place (2022#70/2023#16)|Where It Ends (2024#87)
|
||||||
Bastille,Q689,male,group,synth-pop,United Kingdom,Happier (2018#80/2019#6)
|
Bastille,Q689,,group,synth-pop,United Kingdom,Happier (2018#80/2019#6)
|
||||||
Bazzi,Q48720231,male,solo,pop music,United States,Beautiful (2019#95)|Mine (2018#21)
|
Bazzi,Q48720231,male,solo,pop music,United States,Beautiful (2019#95)|Mine (2018#21)
|
||||||
beabadoobee,Q66817366,female,solo,indie rock; space rock; alternative rock; slacker rock; indie pop; folk-pop; bedroom pop,Philippines,Death Bed (2020#43)
|
beabadoobee,Q66817366,female,solo,indie rock; space rock; alternative rock; slacker rock; indie pop; folk-pop; bedroom pop,Philippines,Death Bed (2020#43)
|
||||||
Bebe Rexha,Q16185856,female,solo,pop music; contemporary R&B,United States,"I'm Good (Blue) (2023#10)|Me, Myself & I (2016#19)|Meant To Be (2018#3)"
|
Bebe Rexha,Q16185856,female,solo,pop music; contemporary R&B,United States,"I'm Good (Blue) (2023#10)|Me, Myself & I (2016#19)|Meant To Be (2018#3)"
|
||||||
@@ -48,14 +48,14 @@ Billie Eilish,Q29564107,female,solo,electropop; indie pop; alternative pop,Unite
|
|||||||
Billy Ray Cyrus,Q231259,male,solo,country music; country pop; country rock; country blues,United States,Old Town Road (2019#1)
|
Billy Ray Cyrus,Q231259,male,solo,country music; country pop; country rock; country blues,United States,Old Town Road (2019#1)
|
||||||
Bipolar Sunshine,Q16727521,male,solo,pop music,United Kingdom,Middle (2016#80)
|
Bipolar Sunshine,Q16727521,male,solo,pop music,United Kingdom,Middle (2016#80)
|
||||||
Bizarrap,Q99937928,male,solo,Latin trap; reggaeton,Argentina,"Bzrp Music Sessions, Vol. 53 (2023#96)"
|
Bizarrap,Q99937928,male,solo,Latin trap; reggaeton,Argentina,"Bzrp Music Sessions, Vol. 53 (2023#96)"
|
||||||
Black Eyed Peas,Q134541,mixed,group,alternative hip-hop; pop rap; hip-hop; pop music; Latin hip-hop,United States,RITMO (Bad Boys For Life) (2020#50)
|
Black Eyed Peas,Q134541,,group,alternative hip-hop; pop rap; hip-hop; pop music; Latin hip-hop,United States,RITMO (Bad Boys For Life) (2020#50)
|
||||||
blackbear,Q22974007,male,solo,pop music; emo; contemporary R&B; hip-hop,United States,Do Re Mi (2017#98)|Hot Girl Bummer (2020#26)|My Ex's Best Friend (2021#23)
|
blackbear,Q22974007,male,solo,pop music; emo; contemporary R&B; hip-hop,United States,Do Re Mi (2017#98)|Hot Girl Bummer (2020#26)|My Ex's Best Friend (2021#23)
|
||||||
Blake Shelton,Q94831,male,solo,country music,United States,God's Country (2019#53)|Nobody But You (2020#52)|Pour Me A Drink (2024#76)
|
Blake Shelton,Q94831,male,solo,country music,United States,God's Country (2019#53)|Nobody But You (2020#52)|Pour Me A Drink (2024#76)
|
||||||
Blanco Brown,Q64736729,male,solo,country rap; trap music; hip-hop,United States,Just The Way (2021#88)|The Git Up (2019#56)
|
Blanco Brown,Q64736729,male,solo,country rap; trap music; hip-hop,United States,Just The Way (2021#88)|The Git Up (2019#56)
|
||||||
BlocBoy JB,Q49481016,male,solo,hip-hop; trap music,United States,Look Alive (2018#23)
|
BlocBoy JB,Q49481016,male,solo,hip-hop; trap music,United States,Look Alive (2018#23)
|
||||||
Blueface,Q60463134,male,solo,hip-hop; trap music; West Coast hip-hop; gangsta rap,United States,Thotiana (2019#47)
|
Blueface,Q60463134,male,solo,hip-hop; trap music; West Coast hip-hop; gangsta rap,United States,Thotiana (2019#47)
|
||||||
Bobby Helms,Q888554,male,solo,country music,United States,Jingle Bell Rock (2022#86/2023#68/2024#68/2025#81)
|
Bobby Helms,Q888554,male,solo,country music,United States,Jingle Bell Rock (2022#86/2023#68/2024#68/2025#81)
|
||||||
Bomba Estéreo,Q887911,mixed,group,cumbia,Colombia,Ojitos Lindos (2022#87)
|
Bomba Estéreo,Q887911,,group,cumbia,Colombia,Ojitos Lindos (2022#87)
|
||||||
Bradley Cooper,Q205707,male,solo,,United States,Shallow (2019#19)
|
Bradley Cooper,Q205707,male,solo,,United States,Shallow (2019#19)
|
||||||
Brandon Lake,Q100314823,male,solo,contemporary Christian music; Christian rock,United States,Hard Fought Hallelujah (2025#84)
|
Brandon Lake,Q100314823,male,solo,contemporary Christian music; Christian rock,United States,Hard Fought Hallelujah (2025#84)
|
||||||
Brenda Lee,Q230925,female,solo,rock and roll; country music; pop music; rockabilly,United States,Rockin' Around The Christmas Tree (2021#92/2022#80/2023#60/2024#59/2025#67)
|
Brenda Lee,Q230925,female,solo,rock and roll; country music; pop music; rockabilly,United States,Rockin' Around The Christmas Tree (2021#92/2022#80/2023#60/2024#59/2025#67)
|
||||||
@@ -64,7 +64,7 @@ Brett Young,Q25189679,male,solo,country music,United States,In Case You Didn't K
|
|||||||
BRS Kash,Q105409004,male,solo,hip-hop,United States,Throat Baby (Go Baby) (2021#97)
|
BRS Kash,Q105409004,male,solo,hip-hop,United States,Throat Baby (Go Baby) (2021#97)
|
||||||
Bruno Mars,Q1450,male,solo,pop music; contemporary R&B; hip-hop; new wave; reggae; funk,United States,24K Magic (2017#16)|APT. (2025#9)|Die With A Smile (2024#62/2025#1)|Finesse (2018#14)|Leave The Door Open (2021#7)|Please Me (2019#37)|Smokin Out The Window (2022#41)|That's What I Like (2017#3)|Wake Up In The Sky (2019#51)
|
Bruno Mars,Q1450,male,solo,pop music; contemporary R&B; hip-hop; new wave; reggae; funk,United States,24K Magic (2017#16)|APT. (2025#9)|Die With A Smile (2024#62/2025#1)|Finesse (2018#14)|Leave The Door Open (2021#7)|Please Me (2019#37)|Smokin Out The Window (2022#41)|That's What I Like (2017#3)|Wake Up In The Sky (2019#51)
|
||||||
Bryson Tiller,Q21066641,male,solo,contemporary R&B; hip-hop; trap music; soul,United States,Don't (2016#35)|Exchange (2016#53)|Whatever She Wants (2024#58)|Wild Thoughts (2017#18)
|
Bryson Tiller,Q21066641,male,solo,contemporary R&B; hip-hop; trap music; soul,United States,Don't (2016#35)|Exchange (2016#53)|Whatever She Wants (2024#58)|Wild Thoughts (2017#18)
|
||||||
BTS,Q13580495,male,group,K-pop; dance-pop; Korean hip-hop,South Korea,Butter (2021#11)|Dynamite (2020#38/2021#41)
|
BTS,Q13580495,,group,K-pop; dance-pop; Korean hip-hop,South Korea,Butter (2021#11)|Dynamite (2020#38/2021#41)
|
||||||
Burl Ives,Q315723,male,solo,folk music,United States,A Holly Jolly Christmas (2022#89/2023#71/2024#94)
|
Burl Ives,Q315723,male,solo,folk music,United States,A Holly Jolly Christmas (2022#89/2023#71/2024#94)
|
||||||
Calboy,Q66085272,male,solo,hip-hop,United States,Envy Me (2019#59)
|
Calboy,Q66085272,male,solo,hip-hop,United States,Envy Me (2019#59)
|
||||||
Calvin Harris,Q81637,male,solo,electronic dance music; electronic pop; acid house,United Kingdom,Feels (2017#74)|One Kiss (2018#68)|Slide (2017#71)|This Is What You Came For (2016#17)
|
Calvin Harris,Q81637,male,solo,electronic dance music; electronic pop; acid house,United Kingdom,Feels (2017#74)|One Kiss (2018#68)|Slide (2017#71)|This Is What You Came For (2016#17)
|
||||||
@@ -79,26 +79,26 @@ Chance the Rapper,Q12470060,male,solo,hip-hop; alternative hip-hop; contemporary
|
|||||||
Chappell Roan,Q110281146,female,solo,synth-pop; pop music; electronic music,United States,"Good Luck, Babe! (2024#18/2025#31)|Hot To Go! (2024#53)|Pink Pony Club (2025#10)"
|
Chappell Roan,Q110281146,female,solo,synth-pop; pop music; electronic music,United States,"Good Luck, Babe! (2024#18/2025#31)|Hot To Go! (2024#53)|Pink Pony Club (2025#10)"
|
||||||
Charlie Puth,Q19810390,male,solo,pop music; contemporary R&B,United States,Attention (2017#22)|How Long (2018#65)|I Hope (2020#12/2021#40)|One Call Away (2016#43)|See You Again (2016#99)|We Don't Talk Anymore (2016#50)
|
Charlie Puth,Q19810390,male,solo,pop music; contemporary R&B,United States,Attention (2017#22)|How Long (2018#65)|I Hope (2020#12/2021#40)|One Call Away (2016#43)|See You Again (2016#99)|We Don't Talk Anymore (2016#50)
|
||||||
Chase Rice,Q5087189,male,solo,country music,United States,Drinkin' Beer. Talkin' God. Amen. (2021#99)|Eyes On You (2019#96)
|
Chase Rice,Q5087189,male,solo,country music,United States,Drinkin' Beer. Talkin' God. Amen. (2021#99)|Eyes On You (2019#96)
|
||||||
Cheat Codes,Q23978754,male,group,electronic music; electronic dance music; tropical house; dancehall,United States,No Promises (2017#91)
|
Cheat Codes,Q23978754,,group,electronic music; electronic dance music; tropical house; dancehall,United States,No Promises (2017#91)
|
||||||
Chencho Corleone,Q113625582,male,solo,reggaeton,United States,Me Porto Bonito (2022#20)
|
Chencho Corleone,Q113625582,male,solo,reggaeton,United States,Me Porto Bonito (2022#20)
|
||||||
Childish Gambino,Q1239933,male,solo,hip-hop; funk; contemporary R&B; soul; psychedelic music; indie pop; comedy hip-hop,United States,Redbone (2017#25)|This Is America (2018#51)
|
Childish Gambino,Q1239933,male,solo,hip-hop; funk; contemporary R&B; soul; psychedelic music; indie pop; comedy hip-hop,United States,Redbone (2017#25)|This Is America (2018#51)
|
||||||
Chris Brown,Q155700,male,solo,contemporary R&B; pop music; hip-hop,United States,Back To Sleep (2016#89)|Freaky Friday (2018#55)|Go Crazy (2020#39/2021#19)|No Guidance (2019#21/2020#36)|Residuals (2025#63)|Superhero (Heroes & Villains) (2023#38)|Under The Influence (2023#17)
|
Chris Brown,Q155700,male,solo,contemporary R&B; pop music; hip-hop,United States,Back To Sleep (2016#89)|Freaky Friday (2018#55)|Go Crazy (2020#39/2021#19)|No Guidance (2019#21/2020#36)|Residuals (2025#63)|Superhero (Heroes & Villains) (2023#38)|Under The Influence (2023#17)
|
||||||
Chris Stapleton,Q5108148,male,solo,country music,United States,Say Something (2018#85)|Starting Over (2021#53)|White Horse (2024#77)|You Should Probably Leave (2022#79)
|
Chris Stapleton,Q5108148,male,solo,country music,United States,Say Something (2018#85)|Starting Over (2021#53)|White Horse (2024#77)|You Should Probably Leave (2022#79)
|
||||||
Chris Young,Q952176,male,solo,country music,United States,Famous Friends (2021#69)
|
Chris Young,Q952176,male,solo,country music,United States,Famous Friends (2021#69)
|
||||||
City Girls,Q60658858,female,group,hip-hop,United States,Act Up (2019#68)
|
City Girls,Q60658858,,group,hip-hop,United States,Act Up (2019#68)
|
||||||
CJ,Q103868817,male,solo,drill; trap music; East Coast hip-hop; hip-hop,United States,Whoopty (2021#50)
|
CJ,Q103868817,male,solo,drill; trap music; East Coast hip-hop; hip-hop,United States,Whoopty (2021#50)
|
||||||
CKay,Q98312451,male,solo,Afrobeats,Nigeria,Love Nwantiti (Ah Ah Ah) (2022#55)
|
CKay,Q98312451,male,solo,Afrobeats,Nigeria,Love Nwantiti (Ah Ah Ah) (2022#55)
|
||||||
Clean Bandit,Q11838808,mixed,group,electropop,United Kingdom,Rockabye (2017#44)
|
Clean Bandit,Q11838808,,group,electropop,United Kingdom,Rockabye (2017#44)
|
||||||
Cody Johnson,Q17916913,male,solo,country music; country rock,United States,'Til You Can't (2022#34)|I'm Gonna Love You (2025#78)|The Painter (2024#98)
|
Cody Johnson,Q17916913,male,solo,country music; country rock,United States,'Til You Can't (2022#34)|I'm Gonna Love You (2025#78)|The Painter (2024#98)
|
||||||
Coi Leray,Q106376206,female,solo,hip-hop; pop music,United States,No More Parties (2021#79)|Players (2023#33)
|
Coi Leray,Q106376206,female,solo,hip-hop; pop music,United States,No More Parties (2021#79)|Players (2023#33)
|
||||||
Coldplay,Q45188,male,group,alternative rock; pop music,United Kingdom,Adventure Of A Lifetime (2016#95)|Hymn For The Weekend (2016#73)|Something Just Like This (2017#5)
|
Coldplay,Q45188,,group,alternative rock; pop music,United Kingdom,Adventure Of A Lifetime (2016#95)|Hymn For The Weekend (2016#73)|Something Just Like This (2017#5)
|
||||||
Cole Swindell,Q15101510,male,solo,country music,United States,Never Say Never (2022#92)|She Had Me At Heads Carolina (2022#46)|Single Saturday Night (2021#95)
|
Cole Swindell,Q15101510,male,solo,country music,United States,Never Say Never (2022#92)|She Had Me At Heads Carolina (2022#46)|Single Saturday Night (2021#95)
|
||||||
Corey Kent,Q113452679,male,solo,country music,United States,Wild As Her (2023#93)
|
Corey Kent,Q113452679,male,solo,country music,United States,Wild As Her (2023#93)
|
||||||
Cris MJ,Q111425015,male,solo,reggaeton,Chile,Gata Only (2024#52)
|
Cris MJ,Q111425015,male,solo,reggaeton,Chile,Gata Only (2024#52)
|
||||||
D.R.A.M.,Q25138504,male,solo,Southern hip-hop; contemporary R&B; trap music,United States,Broccoli (2016#34/2017#70)
|
D.R.A.M.,Q25138504,male,solo,Southern hip-hop; contemporary R&B; trap music,United States,Broccoli (2016#34/2017#70)
|
||||||
DaBaby,Q62107457,male,solo,hip-hop; trap music; pop rap; Southern hip-hop,United States,Baby (2019#84)|Beat Box (2021#44)|BOP (2020#29)|Cash Shit (2019#90)|Cry Baby (2021#77)|For The Night (2020#49/2021#32)|My Oh My (2020#37)|Rockstar (2020#5)|Suge (2019#24)|Whats Poppin (2020#13)
|
DaBaby,Q62107457,male,solo,hip-hop; trap music; pop rap; Southern hip-hop,United States,Baby (2019#84)|Beat Box (2021#44)|BOP (2020#29)|Cash Shit (2019#90)|Cry Baby (2021#77)|For The Night (2020#49/2021#32)|My Oh My (2020#37)|Rockstar (2020#5)|Suge (2019#24)|Whats Poppin (2020#13)
|
||||||
Daddy Yankee,Q272591,male,solo,reggaeton; Latin hip-hop,United States,Con Calma (2019#65)|Despacito (2017#2)|Dura (2018#93)
|
Daddy Yankee,Q272591,male,solo,reggaeton; Latin hip-hop,United States,Con Calma (2019#65)|Despacito (2017#2)|Dura (2018#93)
|
||||||
Daft Punk,Q185828,male,group,house music; electronic music; French house; synth-pop; electronic rock; electronica; nu-disco; dance music; leftfield house,France,I Feel It Coming (2017#34)|Starboy (2016#58/2017#20)
|
Daft Punk,Q185828,,group,house music; electronic music; French house; synth-pop; electronic rock; electronica; nu-disco; dance music; leftfield house,France,I Feel It Coming (2017#34)|Starboy (2016#58/2017#20)
|
||||||
Dan Smyers,Q57630595,male,solo,country music,United States,"10,000 Hours (2020#23)|All To Myself (2019#97)|Glad You Exist (2021#64)|Speechless (2019#35)|Tequila (2018#32/2019#91)"
|
Dan Smyers,Q57630595,male,solo,country music,United States,"10,000 Hours (2020#23)|All To Myself (2019#97)|Glad You Exist (2021#64)|Speechless (2019#35)|Tequila (2018#32/2019#91)"
|
||||||
Daniel Caesar,Q29589083,male,solo,contemporary R&B; soul; neo soul,Canada,Peaches (2021#10)
|
Daniel Caesar,Q29589083,male,solo,contemporary R&B; soul; neo soul,Canada,Peaches (2021#10)
|
||||||
Danny Chung,Q140814119,male,solo,hip-hop; K-pop,United States,Soda Pop (2025#61)|Your Idol (2025#54)
|
Danny Chung,Q140814119,male,solo,hip-hop; K-pop,United States,Soda Pop (2025#61)|Your Idol (2025#54)
|
||||||
@@ -116,7 +116,7 @@ Diplo,Q533781,male,solo,electronic dance music; trap music; hip-hop; pop music;
|
|||||||
DJ Khaled,Q80805,male,solo,hip-hop; pop rap,United States,Every Chance I Get (2021#59)|For Free (2016#59)|I'm The One (2017#12)|No Brainer (2018#73)|Popstar (2020#66)|Wild Thoughts (2017#18)
|
DJ Khaled,Q80805,male,solo,hip-hop; pop rap,United States,Every Chance I Get (2021#59)|For Free (2016#59)|I'm The One (2017#12)|No Brainer (2018#73)|Popstar (2020#66)|Wild Thoughts (2017#18)
|
||||||
DJ Snake,Q16728588,male,solo,electronic dance music; EDM trap music,France,Lean On (2016#85)|Let Me Love You (2016#47/2017#46)|Middle (2016#80)|Taki Taki (2019#57)
|
DJ Snake,Q16728588,male,solo,electronic dance music; EDM trap music,France,Lean On (2016#85)|Let Me Love You (2016#47/2017#46)|Middle (2016#80)|Taki Taki (2019#57)
|
||||||
Djo,Q27064031,male,solo,synth-pop,United States,End Of Beginning (2024#47)
|
Djo,Q27064031,male,solo,synth-pop,United States,End Of Beginning (2024#47)
|
||||||
DNCE,Q21648421,mixed,group,pop rock,United States,Cake By The Ocean (2016#18)
|
DNCE,Q21648421,,group,pop rock,United States,Cake By The Ocean (2016#18)
|
||||||
Doechii,Q106629186,female,solo,hip-hop; contemporary R&B; pop music; alternative hip-hop; pop rap,United States,Anxiety (2025#39)|Denial Is A River (2025#75)|What It Is (Block Boy) (2023#76)
|
Doechii,Q106629186,female,solo,hip-hop; contemporary R&B; pop music; alternative hip-hop; pop rap,United States,Anxiety (2025#39)|Denial Is A River (2025#75)|What It Is (Block Boy) (2023#76)
|
||||||
Doja Cat,Q51120673,female,solo,contemporary R&B; pop music; electronic music; indie pop; hip-hop,United States,34+35 (2021#21)|Agora Hills (2024#17)|Best Friend (2021#29)|Get Into It (Yuh) (2022#68)|I Like You (A Happier Song) (2022#26/2023#75)|Juicy (2020#87)|Kiss Me More (2021#6/2022#90)|Need To Know (2021#46/2022#18)|Paint The Town Red (2023#52/2024#21)|Say So (2020#11)|Streets (2021#67)|Vegas (2022#47)|Woman (2022#21)|You Right (2021#43/2022#45)
|
Doja Cat,Q51120673,female,solo,contemporary R&B; pop music; electronic music; indie pop; hip-hop,United States,34+35 (2021#21)|Agora Hills (2024#17)|Best Friend (2021#29)|Get Into It (Yuh) (2022#68)|I Like You (A Happier Song) (2022#26/2023#75)|Juicy (2020#87)|Kiss Me More (2021#6/2022#90)|Need To Know (2021#46/2022#18)|Paint The Town Red (2023#52/2024#21)|Say So (2020#11)|Streets (2021#67)|Vegas (2022#47)|Woman (2022#21)|You Right (2021#43/2022#45)
|
||||||
Don Toliver,Q56513383,male,solo,hip-hop; trap music; contemporary R&B,United States,Lemonade (2021#51)|No Pole (2025#97)
|
Don Toliver,Q56513383,male,solo,hip-hop; trap music; contemporary R&B,United States,Lemonade (2021#51)|No Pole (2025#97)
|
||||||
@@ -138,32 +138,32 @@ Eminem,Q5608,male,solo,hip-hop; horrorcore; hardcore hip-hop; comedy hip-hop; Mi
|
|||||||
Encanto Cast,Q140814124,,,,United States,We Don't Talk About Bruno (2022#24)
|
Encanto Cast,Q140814124,,,,United States,We Don't Talk About Bruno (2022#24)
|
||||||
Eric Church,Q975911,male,solo,country music,United States,Does To Me (2020#93)|Hell Of A View (2021#91)
|
Eric Church,Q975911,male,solo,country music,United States,Does To Me (2020#93)|Hell Of A View (2021#91)
|
||||||
ERNEST,Q110442717,male,solo,country music,United States,Cowgirls (2024#29)|Flower Shops (2022#96)
|
ERNEST,Q110442717,male,solo,country music,United States,Cowgirls (2024#29)|Flower Shops (2022#96)
|
||||||
Eslabón Armado,Q112702265,male,group,regional Mexican,United States,Ella Baila Sola (2023#26)
|
Eslabón Armado,Q112702265,,group,regional Mexican,United States,Ella Baila Sola (2023#26)
|
||||||
Fat Joe,Q309888,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop; boom bap; mafioso rap,United States,All The Way Up (2016#87)
|
Fat Joe,Q309888,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop; boom bap; mafioso rap,United States,All The Way Up (2016#87)
|
||||||
Fetty Wap,Q19361511,male,solo,hip-hop; trap music; pop rap,United States,679 (2016#54)|All In My Head (Flex) (2016#93)
|
Fetty Wap,Q19361511,male,solo,hip-hop; trap music; pop rap,United States,679 (2016#54)|All In My Head (Flex) (2016#93)
|
||||||
Fifth Harmony,Q3087893,female,group,pop music,United States,All In My Head (Flex) (2016#93)|Work From Home (2016#16)
|
Fifth Harmony,Q3087893,,group,pop music,United States,All In My Head (Flex) (2016#93)|Work From Home (2016#16)
|
||||||
Fifty Fifty,Q116731010,female,group,K-pop; J-pop,South Korea,Cupid (2023#44)
|
Fifty Fifty,Q116731010,,group,K-pop; J-pop,South Korea,Cupid (2023#44)
|
||||||
Flipp Dinero,Q57584556,male,solo,hip-hop,United States,Leave Me Alone (2019#71)
|
Flipp Dinero,Q57584556,male,solo,hip-hop,United States,Leave Me Alone (2019#71)
|
||||||
Flo Milli,Q89352069,female,solo,hip-hop,United States,Never Lose Me (2024#49)
|
Flo Milli,Q89352069,female,solo,hip-hop,United States,Never Lose Me (2024#49)
|
||||||
Flo Rida,Q213538,male,solo,hip-hop; pop music; dance music; electronic dance music; Southern hip-hop; contemporary R&B; house music; electro hop; electro house; electropop; electro; EDM trap music; trap music; bass music; crunk; pop rap; dirty south; dance-pop; hip house; Miami bass; electronic music; techno; trance,United States,My House (2016#14)
|
Flo Rida,Q213538,male,solo,hip-hop; pop music; dance music; electronic dance music; Southern hip-hop; contemporary R&B; house music; electro hop; electro house; electropop; electro; EDM trap music; trap music; bass music; crunk; pop rap; dirty south; dance-pop; hip house; Miami bass; electronic music; techno; trance,United States,My House (2016#14)
|
||||||
Florida Georgia Line,Q3644642,male,group,country music,United States,Drinkin' Beer. Talkin' God. Amen. (2021#99)|H.O.L.Y. (2016#49)|Lil Bit (2021#70)|Meant To Be (2018#3)|Simple (2018#82)|Talk You Out Of It (2019#94)
|
Florida Georgia Line,Q3644642,,group,country music,United States,Drinkin' Beer. Talkin' God. Amen. (2021#99)|H.O.L.Y. (2016#49)|Lil Bit (2021#70)|Meant To Be (2018#3)|Simple (2018#82)|Talk You Out Of It (2019#94)
|
||||||
FloyyMenor,Q125819969,male,solo,reggaeton,Chile,Gata Only (2024#52)
|
FloyyMenor,Q125819969,male,solo,reggaeton,Chile,Gata Only (2024#52)
|
||||||
Flume,Q4038837,male,solo,electronica; trip hop; future bass,Australia,Never Be Like You (2016#60)
|
Flume,Q4038837,male,solo,electronica; trip hop; future bass,Australia,Never Be Like You (2016#60)
|
||||||
Frank Ocean,Q357645,male,solo,alternative R&B; psychedelic soul; progressive soul; contemporary R&B; pop music; soul; hip-hop; avant-pop,United States,Slide (2017#71)
|
Frank Ocean,Q357645,male,solo,alternative R&B; psychedelic soul; progressive soul; contemporary R&B; pop music; soul; hip-hop; avant-pop,United States,Slide (2017#71)
|
||||||
French Montana,Q1455261,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop,Morocco,All The Way Up (2016#87)|Unforgettable (2017#15)
|
French Montana,Q1455261,male,solo,East Coast hip-hop; gangsta rap; hardcore hip-hop,Morocco,All The Way Up (2016#87)|Unforgettable (2017#15)
|
||||||
Fuerza Regida,Q118466501,male,group,regional Mexican; banda music; corrido; corridos tumbados; sierreña; norteño,United States,Bebe Dame (2023#73)|Tu Boda (2025#87)
|
Fuerza Regida,Q118466501,,group,regional Mexican; banda music; corrido; corridos tumbados; sierreña; norteño,United States,Bebe Dame (2023#73)|Tu Boda (2025#87)
|
||||||
Future,Q3445057,male,solo,Southern hip-hop; trap music; mumble rap; contemporary R&B,United States,Cold (2017#69)|Jumpman (2016#37)|King's Dead (2018#79)|Life Is Good (2020#7)|Like That (2024#14)|Low Life (2016#30)|Mask Off (2017#14)|Puffin On Zootiez (2022#84)|Pushin P (2022#48)|Superhero (Heroes & Villains) (2023#38)|Type Shit (2024#51)|Wait For U (2022#11/2023#83)|Way 2 Sexy (2021#48)|Wicked (2016#97)
|
Future,Q3445057,male,solo,Southern hip-hop; trap music; mumble rap; contemporary R&B,United States,Cold (2017#69)|Jumpman (2016#37)|King's Dead (2018#79)|Life Is Good (2020#7)|Like That (2024#14)|Low Life (2016#30)|Mask Off (2017#14)|Puffin On Zootiez (2022#84)|Pushin P (2022#48)|Superhero (Heroes & Villains) (2023#38)|Type Shit (2024#51)|Wait For U (2022#11/2023#83)|Way 2 Sexy (2021#48)|Wicked (2016#97)
|
||||||
G-Eazy,Q5511893,male,solo,hip-hop,United States,"Him & I (2018#45)|Me, Myself & I (2016#19)|No Limit (2018#30)"
|
G-Eazy,Q5511893,male,solo,hip-hop,United States,"Him & I (2018#45)|Me, Myself & I (2016#19)|No Limit (2018#30)"
|
||||||
Gabby Barrett,Q53912835,female,solo,country pop,United States,I Hope (2020#12/2021#40)|The Good Ones (2021#62)
|
Gabby Barrett,Q53912835,female,solo,country pop,United States,I Hope (2020#12/2021#40)|The Good Ones (2021#62)
|
||||||
GAYLE,Q109768702,female,solo,pop-punk; pop rock; power pop; emo pop; alternative pop; alternative rock,United States,abcdefu (2022#17)
|
GAYLE,Q109768702,female,solo,pop-punk; pop rock; power pop; emo pop; alternative pop; alternative rock,United States,abcdefu (2022#17)
|
||||||
Gigi Perez,Q130235359,female,solo,indie folk,United States,Sailor Song (2025#36)
|
Gigi Perez,Q130235359,female,solo,indie folk,United States,Sailor Song (2025#36)
|
||||||
Giveon,Q96418479,male,solo,contemporary R&B,United States,Heartbreak Anniversary (2021#31)|Peaches (2021#10)
|
Giveon,Q96418479,male,solo,contemporary R&B,United States,Heartbreak Anniversary (2021#31)|Peaches (2021#10)
|
||||||
Glass Animals,Q16839267,male,group,indie rock; psychedelic pop; indietronica; alternative pop; electronic rock; psychedelic rock,United Kingdom,Heat Waves (2021#16/2022#1)
|
Glass Animals,Q16839267,,group,indie rock; psychedelic pop; indietronica; alternative pop; electronic rock; psychedelic rock,United Kingdom,Heat Waves (2021#16/2022#1)
|
||||||
GloRilla,Q114132368,female,solo,hip-hop; trap music; crunk; Memphis rap; Southern hip-hop,United States,Sticky (2025#41)|Tomorrow 2 (2023#70)|Wanna Be (2024#40)|Whatchu Kno About Me (2025#48)|Yeah Glo! (2024#44)
|
GloRilla,Q114132368,female,solo,hip-hop; trap music; crunk; Memphis rap; Southern hip-hop,United States,Sticky (2025#41)|Tomorrow 2 (2023#70)|Wanna Be (2024#40)|Whatchu Kno About Me (2025#48)|Yeah Glo! (2024#44)
|
||||||
gnash,Q23978226,male,solo,pop music; hip-hop; alternative R&B; indie folk,United States,I Hate U I Love U (2016#38)|Lights Down Low (2018#66)
|
gnash,Q23978226,male,solo,pop music; hip-hop; alternative R&B; indie folk,United States,I Hate U I Love U (2016#38)|Lights Down Low (2018#66)
|
||||||
Gracie Abrams,Q106301562,female,solo,bedroom pop; pop music,United States,That's So True (2025#14)
|
Gracie Abrams,Q106301562,female,solo,bedroom pop; pop music,United States,That's So True (2025#14)
|
||||||
Grey,Q28451953,male,group,electronic music; pop music; future bass,United States,Starving (2016#94/2017#82)|The Middle (2018#8)
|
Grey,Q28451953,,group,electronic music; pop music; future bass,United States,Starving (2016#94/2017#82)|The Middle (2018#8)
|
||||||
Grupo Frontera,Q118141487,male,group,regional Mexican; norteño; cumbia norteña mexicana,United States,Bebe Dame (2023#73)|Un x100to (2023#49)
|
Grupo Frontera,Q118141487,,group,regional Mexican; norteño; cumbia norteña mexicana,United States,Bebe Dame (2023#73)|Un x100to (2023#49)
|
||||||
Gucci Mane,Q206032,male,solo,Southern hip-hop; trap music; gangsta rap; hardcore hip-hop; dirty south; Atlanta hip-hop; dirty rap,United States,Black Beatles (2017#19)|Both (2017#83)|I Get The Bag (2017#93/2018#72)|Slippery (2017#86)|Wake Up In The Sky (2019#51)
|
Gucci Mane,Q206032,male,solo,Southern hip-hop; trap music; gangsta rap; hardcore hip-hop; dirty south; Atlanta hip-hop; dirty rap,United States,Black Beatles (2017#19)|Both (2017#83)|I Get The Bag (2017#93/2018#72)|Slippery (2017#86)|Wake Up In The Sky (2019#51)
|
||||||
Gunna,Q55613105,male,solo,hip-hop; trap music; Southern hip-hop; contemporary R&B,United States,Drip Too Hard (2019#26)|Fukumean (2023#31/2024#85)|Hot (2020#72)|Lemonade (2021#51)|Pushin P (2022#48)|What Happened To Virgil (2022#83)
|
Gunna,Q55613105,male,solo,hip-hop; trap music; Southern hip-hop; contemporary R&B,United States,Drip Too Hard (2019#26)|Fukumean (2023#31/2024#85)|Hot (2020#72)|Lemonade (2021#51)|Pushin P (2022#48)|What Happened To Virgil (2022#83)
|
||||||
Gus Dapperton,Q51858412,male,solo,pop music,United States,Supalonely (2020#84)
|
Gus Dapperton,Q51858412,male,solo,pop music,United States,Supalonely (2020#84)
|
||||||
@@ -173,12 +173,11 @@ Hailee Steinfeld,Q231726,female,solo,pop music; dance-pop,United States,Starving
|
|||||||
Halsey,Q18534249,female,solo,pop music; electropop; synth-pop; art pop; alternative pop; alternative rock; alternative R&B; indie pop; contemporary R&B,United States,Bad At Love (2018#27)|Closer (2016#10/2017#7)|Eastside (2018#77/2019#17)|Him & I (2018#45)|Now Or Never (2017#59)|Without Me (2019#3)|You Should Be Sad (2020#82)
|
Halsey,Q18534249,female,solo,pop music; electropop; synth-pop; art pop; alternative pop; alternative rock; alternative R&B; indie pop; contemporary R&B,United States,Bad At Love (2018#27)|Closer (2016#10/2017#7)|Eastside (2018#77/2019#17)|Him & I (2018#45)|Now Or Never (2017#59)|Without Me (2019#3)|You Should Be Sad (2020#82)
|
||||||
HARDY,Q63341424,male,solo,country music,United States,Truck Bed (2024#67)|Wait In The Truck (2023#54)
|
HARDY,Q63341424,male,solo,country music,United States,Truck Bed (2024#67)|Wait In The Truck (2023#54)
|
||||||
Harry Styles,Q3626966,male,solo,soft rock; pop music; rock music; Britpop; traditional folk music,United Kingdom,Adore You (2020#6)|As It Was (2022#2/2023#15)|Late Night Talking (2022#25)|Sign Of The Times (2017#87)|Watermelon Sugar (2020#20)
|
Harry Styles,Q3626966,male,solo,soft rock; pop music; rock music; Britpop; traditional folk music,United Kingdom,Adore You (2020#6)|As It Was (2022#2/2023#15)|Late Night Talking (2022#25)|Sign Of The Times (2017#87)|Watermelon Sugar (2020#20)
|
||||||
Hope Segoine,Q140937470,female,solo,children's music,United States,Baby Shark (2019#75)
|
|
||||||
Hozier,Q16233232,male,solo,blues; blues rock; rhythm and blues; traditional folk music; soul; indie rock,Ireland,Too Sweet (2024#10/2025#34)
|
Hozier,Q16233232,male,solo,blues; blues rock; rhythm and blues; traditional folk music; soul; indie rock,Ireland,Too Sweet (2024#10/2025#34)
|
||||||
Hudson Westbrook,Q134125831,male,solo,country music,United States,House Again (2025#95)
|
Hudson Westbrook,Q134125831,male,solo,country music,United States,House Again (2025#95)
|
||||||
iann dior,Q65631841,male,solo,emo rap; pop rap; rap rock; pop rock,United States,Mood (2020#47/2021#4)
|
iann dior,Q65631841,male,solo,emo rap; pop rap; rap rock; pop rock,United States,Mood (2020#47/2021#4)
|
||||||
Ice Spice,Q114114977,female,solo,Bronx drill; hip-hop; East Coast hip-hop; Jersey club; pop rap,United States,"Barbie World (2023#46)|Boy's A Liar, Pt. 2 (2023#20)|Karma (2023#27)|Princess Diana (2023#69)"
|
Ice Spice,Q114114977,female,solo,Bronx drill; hip-hop; East Coast hip-hop; Jersey club; pop rap,United States,"Barbie World (2023#46)|Boy's A Liar, Pt. 2 (2023#20)|Karma (2023#27)|Princess Diana (2023#69)"
|
||||||
Imagine Dragons,Q391348,male,group,pop rock; electropop; alternative rock; new wave,United States,Believer (2017#9/2018#100)|Enemy (2022#15)|Natural (2018#69)|Sucker For Pain (2016#68)|Thunder (2017#51/2018#22)|Whatever It Takes (2018#37)
|
Imagine Dragons,Q391348,,group,pop rock; electropop; alternative rock; new wave,United States,Believer (2017#9/2018#100)|Enemy (2022#15)|Natural (2018#69)|Sucker For Pain (2016#68)|Thunder (2017#51/2018#22)|Whatever It Takes (2018#37)
|
||||||
Infared,Q140814135,male,solo,hip-hop,,All The Way Up (2016#87)
|
Infared,Q140814135,male,solo,hip-hop,,All The Way Up (2016#87)
|
||||||
Internet Money,Q99691610,,,hip-hop,United States,Lemonade (2021#51)
|
Internet Money,Q99691610,,,hip-hop,United States,Lemonade (2021#51)
|
||||||
J Balvin,Q966845,male,solo,reggaeton; Latin pop; Latin trap,Colombia,I Like It (2018#7/2019#69)|Mi Gente (2017#50/2018#99)|RITMO (Bad Boys For Life) (2020#50)|X (2018#90)
|
J Balvin,Q966845,male,solo,reggaeton; Latin pop; Latin trap,Colombia,I Like It (2018#7/2019#69)|Mi Gente (2017#50/2018#99)|RITMO (Bad Boys For Life) (2020#50)|X (2018#90)
|
||||||
@@ -206,7 +205,7 @@ John Legend,Q44857,male,solo,soul; pop music; contemporary R&B,United States,Lik
|
|||||||
Joji,Q23826617,male,solo,contemporary R&B; alternative R&B; trip hop; lo-fi music; surreal humour; satirical music; satire; comedy hip-hop; black comedy; alternative rock; comedy music,Japan,Glimpse Of Us (2022#52)
|
Joji,Q23826617,male,solo,contemporary R&B; alternative R&B; trip hop; lo-fi music; surreal humour; satirical music; satire; comedy hip-hop; black comedy; alternative rock; comedy music,Japan,Glimpse Of Us (2022#52)
|
||||||
Jon Bellion,Q18044284,male,solo,pop music; contemporary R&B; hip-hop; indie rock; pop rap; alternative hip-hop; indie pop; alternative rock; dance-pop; soul,United States,All Time Low (2017#75)
|
Jon Bellion,Q18044284,male,solo,pop music; contemporary R&B; hip-hop; indie rock; pop rap; alternative hip-hop; indie pop; alternative rock; dance-pop; soul,United States,All Time Low (2017#75)
|
||||||
Jon Pardi,Q6271354,male,solo,country music,United States,Last Night Lonely (2022#95)
|
Jon Pardi,Q6271354,male,solo,country music,United States,Last Night Lonely (2022#95)
|
||||||
Jonas Brothers,Q134233,male,group,pop music; pop rock,United States,Leave Before You Love Me (2021#63)|Only Human (2019#78/2020#77)|Sucker (2019#10)
|
Jonas Brothers,Q134233,,group,pop music; pop rock,United States,Leave Before You Love Me (2021#63)|Only Human (2019#78/2020#77)|Sucker (2019#10)
|
||||||
Jordan Davis,Q44274417,male,solo,country pop; country music; pop music,United States,Buy Dirt (2022#49)|Next Thing You Know (2023#47)|What My World Spins Around (2023#91)
|
Jordan Davis,Q44274417,male,solo,country pop; country music; pop music,United States,Buy Dirt (2022#49)|Next Thing You Know (2023#47)|What My World Spins Around (2023#91)
|
||||||
JP Saxe,Q86009464,male,solo,pop music,Canada,If The World Was Ending (2020#56)
|
JP Saxe,Q86009464,male,solo,pop music,Canada,If The World Was Ending (2020#56)
|
||||||
Juice WRLD,Q52151598,male,solo,hip-hop; emo rap; alternative rock; trap music; pop rap; SoundCloud rap; contemporary R&B; alternative hip-hop; mumble rap,United States,Bandit (2020#63)|Come & Go (2020#54)|Godzilla (2020#62)|Lucid Dreams (2018#12/2019#48)|Robbery (2019#100)|Suicidal (2020#75)|Wishing Well (2020#92)
|
Juice WRLD,Q52151598,male,solo,hip-hop; emo rap; alternative rock; trap music; pop rap; SoundCloud rap; contemporary R&B; alternative hip-hop; mumble rap,United States,Bandit (2020#63)|Come & Go (2020#54)|Godzilla (2020#62)|Lucid Dreams (2018#12/2019#48)|Robbery (2019#100)|Suicidal (2020#75)|Wishing Well (2020#92)
|
||||||
@@ -270,18 +269,18 @@ Lizzo,Q16232225,female,solo,hip-hop; soul; contemporary R&B; gospel music,United
|
|||||||
Logic,Q6667429,male,solo,hip-hop; pop rap; conscious hip-hop; East Coast hip-hop,United States,1-800-273-8255 (2017#31/2018#84)|Sucker For Pain (2016#68)
|
Logic,Q6667429,male,solo,hip-hop; pop rap; conscious hip-hop; East Coast hip-hop,United States,1-800-273-8255 (2017#31/2018#84)|Sucker For Pain (2016#68)
|
||||||
Lola Young,Q115869427,female,solo,pop music; soul; contemporary R&B,United Kingdom,Like Him (2025#62)|Messy (2025#28)
|
Lola Young,Q115869427,female,solo,pop music; soul; contemporary R&B,United Kingdom,Like Him (2025#62)|Messy (2025#28)
|
||||||
Luis Fonsi,Q1387726,male,solo,pop music; Latin pop; ballad; reggaeton,United States,Despacito (2017#2)
|
Luis Fonsi,Q1387726,male,solo,pop music; Latin pop; ballad; reggaeton,United States,Despacito (2017#2)
|
||||||
Lukas Graham,Q300935,male,group,soul; pop music; pop rock; funk,Denmark,7 Years (2016#12)
|
Lukas Graham,Q300935,,group,soul; pop music; pop rock; funk,Denmark,7 Years (2016#12)
|
||||||
Luke Bryan,Q166197,male,solo,country music,United States,Buy Dirt (2022#49)|Knockin' Boots (2019#79)|One Margarita (2020#70)
|
Luke Bryan,Q166197,male,solo,country music,United States,Buy Dirt (2022#49)|Knockin' Boots (2019#79)|One Margarita (2020#70)
|
||||||
Luke Combs,Q23884740,male,solo,country music,United States,"Ain't No Love In Oklahoma (2024#37)|Backup Plan (2025#80)|Beautiful Crazy (2019#46)|Beer Never Broke My Heart (2019#63)|Better Together (2021#57)|Does To Me (2020#93)|Doin' This (2022#71)|Even Though I'm Leaving (2020#85)|Fast Car (2023#8/2024#23)|Forever After All (2021#18)|Going, Going, Gone (2023#59)|Hurricane (2017#76)|Love You Anyway (2023#36)|Lovin' On You (2020#97)|One Number Away (2018#96)|The Kind Of Love We Make (2022#36)|Where The Wild Things Are (2024#70)"
|
Luke Combs,Q23884740,male,solo,country music,United States,"Ain't No Love In Oklahoma (2024#37)|Backup Plan (2025#80)|Beautiful Crazy (2019#46)|Beer Never Broke My Heart (2019#63)|Better Together (2021#57)|Does To Me (2020#93)|Doin' This (2022#71)|Even Though I'm Leaving (2020#85)|Fast Car (2023#8/2024#23)|Forever After All (2021#18)|Going, Going, Gone (2023#59)|Hurricane (2017#76)|Love You Anyway (2023#36)|Lovin' On You (2020#97)|One Number Away (2018#96)|The Kind Of Love We Make (2022#36)|Where The Wild Things Are (2024#70)"
|
||||||
Machine Gun Kelly,Q1354843,male,solo,hip-hop; pop rap; rap rock; pop-punk; alternative rock; alternative hip-hop,United States,Bad Things (2017#41)|My Ex's Best Friend (2021#23)
|
Machine Gun Kelly,Q1354843,male,solo,hip-hop; pop rap; rap rock; pop-punk; alternative rock; alternative hip-hop,United States,Bad Things (2017#41)|My Ex's Best Friend (2021#23)
|
||||||
Maddie,Q54607228,female,solo,country music,United States,Die From A Broken Heart (2020#65)
|
Maddie,Q54607228,female,solo,country music,United States,Die From A Broken Heart (2020#65)
|
||||||
Mae Muller,Q83696883,female,solo,pop music; rhythm and blues,United Kingdom,Better Days (2022#73)
|
Mae Muller,Q83696883,female,solo,pop music; rhythm and blues,United Kingdom,Better Days (2022#73)
|
||||||
Major Lazer,Q2604214,male,group,dancehall; moombahton; reggae fusion; trap music; electronic dance music; hip-hop; electro house; rocksteady,United States,Cold Water (2016#25)|Lean On (2016#85)
|
Major Lazer,Q2604214,,group,dancehall; moombahton; reggae fusion; trap music; electronic dance music; hip-hop; electro house; rocksteady,United States,Cold Water (2016#25)|Lean On (2016#85)
|
||||||
Maren Morris,Q21622122,female,solo,country music; country pop; folk rock; folk music,United States,Chasing After You (2021#61)|Circles Around This Town (2022#100)|The Bones (2020#9)|The Middle (2018#8)
|
Maren Morris,Q21622122,female,solo,country music; country pop; folk rock; folk music,United States,Chasing After You (2021#61)|Circles Around This Town (2022#100)|The Bones (2020#9)|The Middle (2018#8)
|
||||||
Mariah Carey,Q41076,female,solo,contemporary R&B; pop music; adult contemporary music; dance-pop; hip-hop,United States,All I Want For Christmas Is You (2020#67/2021#78/2022#65/2023#55/2024#54/2025#59)
|
Mariah Carey,Q41076,female,solo,contemporary R&B; pop music; adult contemporary music; dance-pop; hip-hop,United States,All I Want For Christmas Is You (2020#67/2021#78/2022#65/2023#55/2024#54/2025#59)
|
||||||
Mariah the Scientist,Q84356665,female,solo,alternative R&B,United States,Burning Blue (2025#58)
|
Mariah the Scientist,Q84356665,female,solo,alternative R&B,United States,Burning Blue (2025#58)
|
||||||
Marian Hill,Q20858093,mixed,group,electronic music,United States,Down (2017#90)
|
Marian Hill,Q20858093,,group,electronic music,United States,Down (2017#90)
|
||||||
Maroon 5,Q182223,male,group,alternative rock; funk rock; pop rock; pop music,United States,Beautiful Mistakes (2021#34)|Cold (2017#69)|Don't Wanna Know (2017#38)|Girls Like You (2018#10/2019#22)|Memories (2020#8)|Wait (2018#58)|What Lovers Do (2017#97/2018#89)
|
Maroon 5,Q182223,,group,alternative rock; funk rock; pop rock; pop music,United States,Beautiful Mistakes (2021#34)|Cold (2017#69)|Don't Wanna Know (2017#38)|Girls Like You (2018#10/2019#22)|Memories (2020#8)|Wait (2018#58)|What Lovers Do (2017#97/2018#89)
|
||||||
Marshmello,Q26334949,male,solo,electronic dance music,United States,Come & Go (2020#54)|Friends (2018#26)|Happier (2018#80/2019#6)|Leave Before You Love Me (2021#63)|Miles On It (2024#34)|One Thing Right (2019#89)|Wolves (2018#60)
|
Marshmello,Q26334949,male,solo,electronic dance music,United States,Come & Go (2020#54)|Friends (2018#26)|Happier (2018#80/2019#6)|Leave Before You Love Me (2021#63)|Miles On It (2024#34)|One Thing Right (2019#89)|Wolves (2018#60)
|
||||||
Masked Wolf,Q105490126,male,solo,hip-hop,Australia,Astronaut In The Ocean (2021#20)
|
Masked Wolf,Q105490126,male,solo,hip-hop,Australia,Astronaut In The Ocean (2021#20)
|
||||||
Mauro Castillo,Q16605580,male,solo,salsa,Colombia,We Don't Talk About Bruno (2022#24)
|
Mauro Castillo,Q16605580,male,solo,salsa,Colombia,We Don't Talk About Bruno (2022#24)
|
||||||
@@ -291,7 +290,7 @@ Megan Moroney,Q116786312,female,solo,country music; folk music,United States,Am
|
|||||||
Megan Thee Stallion,Q59268408,female,solo,hip-hop; trap music; dirty rap; pop rap; pop music,United States,34+35 (2021#21)|Beautiful Mistakes (2021#34)|Body (2021#54)|Cash Shit (2019#90)|Cry Baby (2021#77)|Hot Girl Summer (2019#93)|Savage (2020#15)|Sweetest Pie (2022#62)|Thot Shit (2021#71)|Wanna Be (2024#40)|WAP (2020#24)
|
Megan Thee Stallion,Q59268408,female,solo,hip-hop; trap music; dirty rap; pop rap; pop music,United States,34+35 (2021#21)|Beautiful Mistakes (2021#34)|Body (2021#54)|Cash Shit (2019#90)|Cry Baby (2021#77)|Hot Girl Summer (2019#93)|Savage (2020#15)|Sweetest Pie (2022#62)|Thot Shit (2021#71)|Wanna Be (2024#40)|WAP (2020#24)
|
||||||
Meghan Trainor,Q17403494,female,solo,pop music; contemporary R&B; dance-pop; soul; doo-wop,United States,Like I'm Gonna Lose You (2016#42)|Made You Look (2023#53)|Me Too (2016#62)|No (2016#45)
|
Meghan Trainor,Q17403494,female,solo,pop music; contemporary R&B; dance-pop; soul; doo-wop,United States,Like I'm Gonna Lose You (2016#42)|Made You Look (2023#53)|Me Too (2016#62)|No (2016#45)
|
||||||
Metro Boomin,Q16235273,male,solo,hip-hop; trap music,United States,Creepin' (2023#5)|Like That (2024#14)|Ric Flair Drip (2018#38)|Superhero (Heroes & Villains) (2023#38)|Type Shit (2024#51)
|
Metro Boomin,Q16235273,male,solo,hip-hop; trap music,United States,Creepin' (2023#5)|Like That (2024#14)|Ric Flair Drip (2018#38)|Superhero (Heroes & Villains) (2023#38)|Type Shit (2024#51)
|
||||||
Migos,Q15777045,male,group,Southern hip-hop; trap music; mumble rap,United States,Bad And Boujee (2017#6)|I Get The Bag (2017#93/2018#72)|MotorSport (2018#34)|Pure Water (2019#55)|Slide (2017#71)|Slippery (2017#86)|Stir Fry (2018#48)|T-Shirt (2017#52)|Walk It Talk It (2018#43)
|
Migos,Q15777045,,group,Southern hip-hop; trap music; mumble rap,United States,Bad And Boujee (2017#6)|I Get The Bag (2017#93/2018#72)|MotorSport (2018#34)|Pure Water (2019#55)|Slide (2017#71)|Slippery (2017#86)|Stir Fry (2018#48)|T-Shirt (2017#52)|Walk It Talk It (2018#43)
|
||||||
Miguel,Q73463,male,solo,contemporary R&B; alternative R&B; hip-hop; pop music; soul,United States,Sky Walker (2018#75)|Sure Thing (2023#24)
|
Miguel,Q73463,male,solo,contemporary R&B; alternative R&B; hip-hop; pop music; soul,United States,Sky Walker (2018#75)|Sure Thing (2023#24)
|
||||||
Mike Posner,Q268284,male,solo,pop music,United States,I Took A Pill In Ibiza (2016#15)
|
Mike Posner,Q268284,male,solo,pop music,United States,I Took A Pill In Ibiza (2016#15)
|
||||||
Miley Cyrus,Q4235,genderfluid,solo,pop music; country music; pop rock; dance-pop; electropop; rock music; hip-hop; teen pop; country pop,United States,Flowers (2023#2/2024#69)|Malibu (2017#89)
|
Miley Cyrus,Q4235,genderfluid,solo,pop music; country music; pop rock; dance-pop; electropop; rock music; hip-hop; teen pop; country pop,United States,Flowers (2023#2/2024#69)|Malibu (2017#89)
|
||||||
@@ -304,14 +303,14 @@ Muni Long,Q7245622,female,solo,contemporary R&B; pop music,United States,Hrs And
|
|||||||
Murda Beatz,Q27970613,male,solo,hip-hop,Canada,FEFE (2018#31)
|
Murda Beatz,Q27970613,male,solo,hip-hop,Canada,FEFE (2018#31)
|
||||||
Mustard,Q15941115,male,solo,hip-hop; ratchet music; West Coast hip-hop; contemporary R&B,United States,Ballin' (2020#25)|High Fashion (2020#40)|Pure Water (2019#55)
|
Mustard,Q15941115,male,solo,hip-hop; ratchet music; West Coast hip-hop; contemporary R&B,United States,Ballin' (2020#25)|High Fashion (2020#40)|Pure Water (2019#55)
|
||||||
Myles Smith,Q126076580,male,solo,folk-pop; folk music; pop music; folk rock,United Kingdom,Stargazing (2024#73/2025#29)
|
Myles Smith,Q126076580,male,solo,folk-pop; folk music; pop music; folk rock,United Kingdom,Stargazing (2024#73/2025#29)
|
||||||
Måneskin,Q56884561,mixed,group,pop rock; glam rock,Italy,Beggin' (2021#66)
|
Måneskin,Q56884561,,group,pop rock; glam rock,Italy,Beggin' (2021#66)
|
||||||
MØ,Q10670047,female,solo,indie pop; electronic music,Kingdom of Denmark,Cold Water (2016#25)|Lean On (2016#85)
|
MØ,Q10670047,female,solo,indie pop; electronic music,Kingdom of Denmark,Cold Water (2016#25)|Lean On (2016#85)
|
||||||
N*E*R*D,Q941293,male,group,funk rock; bossa nova; orchestral pop; hip-hop; skate punk,United States,Lemon (2018#83)
|
N*E*R*D,Q941293,,group,funk rock; bossa nova; orchestral pop; hip-hop; skate punk,United States,Lemon (2018#83)
|
||||||
Natanael Cano,Q104904549,male,solo,corridos tumbados; regional Mexican,Mexico,PRC (2023#90)
|
Natanael Cano,Q104904549,male,solo,corridos tumbados; regional Mexican,Mexico,PRC (2023#90)
|
||||||
Nate Smith,Q110707312,male,solo,country music; country rock,United States,Bulletproof (2024#96)|World On Fire (2024#90)
|
Nate Smith,Q110707312,male,solo,country music; country rock,United States,Bulletproof (2024#96)|World On Fire (2024#90)
|
||||||
NAV,Q28831246,male,solo,hip-hop; cloud rap; trap music; contemporary R&B,Canada,Lemonade (2021#51)
|
NAV,Q28831246,male,solo,hip-hop; cloud rap; trap music; contemporary R&B,Canada,Lemonade (2021#51)
|
||||||
Neckwav,Q140814188,male,solo,contemporary R&B,South Korea,Soda Pop (2025#61)|Your Idol (2025#54)
|
Neckwav,Q140814188,male,solo,contemporary R&B,South Korea,Soda Pop (2025#61)|Your Idol (2025#54)
|
||||||
NEIKED,Q26703294,male,group,,Sweden,Better Days (2022#73)
|
NEIKED,Q26703294,,group,,Sweden,Better Days (2022#73)
|
||||||
Nelly,Q218992,male,solo,Midwest hip-hop; pop rap; contemporary R&B; pop music; country rap; country music,United States,Lil Bit (2021#70)
|
Nelly,Q218992,male,solo,Midwest hip-hop; pop rap; contemporary R&B; pop music; country rap; country music,United States,Lil Bit (2021#70)
|
||||||
Netón Vega,Q129208676,male,solo,regional Mexican; corridos tumbados,Mexico,Loco (2025#100)
|
Netón Vega,Q129208676,male,solo,regional Mexican; corridos tumbados,Mexico,Loco (2025#100)
|
||||||
NF,Q19571648,male,solo,hip-hop,United States,Let You Down (2018#29)
|
NF,Q19571648,male,solo,hip-hop,United States,Let You Down (2018#29)
|
||||||
@@ -327,39 +326,40 @@ Noah Kahan,Q53832755,male,solo,folk-pop,United States,Dial Drunk (2023#80)|Stick
|
|||||||
Normani,Q28148022,female,solo,pop music; contemporary R&B,United States,Dancing With A Stranger (2019#14)|Love Lies (2018#19/2019#88)
|
Normani,Q28148022,female,solo,pop music; contemporary R&B,United States,Dancing With A Stranger (2019#14)|Love Lies (2018#19/2019#88)
|
||||||
O.T. Genasis,Q18623749,male,solo,hip-hop; trap music,United States,Cut It (2016#91)
|
O.T. Genasis,Q18623749,male,solo,hip-hop; trap music,United States,Cut It (2016#91)
|
||||||
Offset,Q30612480,male,solo,hip-hop; trap music; Southern hip-hop,United States,Clout (2019#87)|Ric Flair Drip (2018#38)|Taste (2018#28)|ZEZE (2019#31)
|
Offset,Q30612480,male,solo,hip-hop; trap music; Southern hip-hop,United States,Clout (2019#87)|Ric Flair Drip (2018#38)|Taste (2018#28)|ZEZE (2019#31)
|
||||||
Old Dominion,Q20685018,male,group,country pop,United States,Memory Lane (2023#87)|One Man Band (2020#59)
|
Old Dominion,Q20685018,,group,country pop,United States,Memory Lane (2023#87)|One Man Band (2020#59)
|
||||||
Oliver Anthony Music,Q121391237,male,solo,country music; folk music,United States,Rich Men North Of Richmond (2023#78)
|
Oliver Anthony Music,Q121391237,male,solo,country music; folk music,United States,Rich Men North Of Richmond (2023#78)
|
||||||
Olivia O'Brien,Q23978275,female,solo,dance-pop; pop music,United States,I Hate U I Love U (2016#38)
|
Olivia O'Brien,Q23978275,female,solo,dance-pop; pop music,United States,I Hate U I Love U (2016#38)
|
||||||
Olivia Rodrigo,Q63243883,female,solo,indie pop; pop music; rock music,United States,Deja Vu (2021#13)|Drivers License (2021#8)|Good 4 U (2021#5/2022#31)|Traitor (2021#38)|Vampire (2023#30/2024#57)
|
Olivia Rodrigo,Q63243883,female,solo,indie pop; pop music; rock music,United States,Deja Vu (2021#13)|Drivers License (2021#8)|Good 4 U (2021#5/2022#31)|Traitor (2021#38)|Vampire (2023#30/2024#57)
|
||||||
One Direction,Q146027,male,group,dance-pop; teen pop; pop rock,United Kingdom,Perfect (2016#100)
|
One Direction,Q146027,,group,dance-pop; teen pop; pop rock,United Kingdom,Perfect (2016#100)
|
||||||
OneRepublic,Q1438730,male,group,pop rock; alternative rock; cello rock,United States,I Ain't Worried (2022#37)
|
OneRepublic,Q1438730,,group,pop rock; alternative rock; cello rock,United States,I Ain't Worried (2022#37)
|
||||||
Ozuna,Q28739901,male,solo,reggaeton; Latin trap; Latin pop; dancehall,United States,Taki Taki (2019#57)|Te Bote (2018#81)
|
Ozuna,Q28739901,male,solo,reggaeton; Latin trap; Latin pop; dancehall,United States,Taki Taki (2019#57)|Te Bote (2018#81)
|
||||||
P!nk,Q160009,female,solo,pop music; pop rock; contemporary R&B,United States,Just Like Fire (2016#33)|One Too Many (2021#81)|Walk Me Home (2019#99)|What About Us (2017#84)
|
P!nk,Q160009,female,solo,pop music; pop rock; contemporary R&B,United States,Just Like Fire (2016#33)|One Too Many (2021#81)|Walk Me Home (2019#99)|What About Us (2017#84)
|
||||||
Panic! At The Disco,Q277551,male,group,pop rock; synth-pop; pop-punk; baroque pop; emo pop; alternative rock,United States,"Hey Look Ma, I Made It (2019#61)|High Hopes (2019#11)"
|
Panic! At The Disco,Q277551,,group,pop rock; synth-pop; pop-punk; baroque pop; emo pop; alternative rock,United States,"Hey Look Ma, I Made It (2019#61)|High Hopes (2019#11)"
|
||||||
Parker McCollum,Q20684755,male,solo,Americana; country music,United States,Burn It Down (2024#84)|Handle On You (2023#85)
|
Parker McCollum,Q20684755,male,solo,Americana; country music,United States,Burn It Down (2024#84)|Handle On You (2023#85)
|
||||||
Parmalee,Q7139162,male,group,country music,United States,Just The Way (2021#88)|Take My Name (2022#82)
|
Parmalee,Q7139162,,group,country music,United States,Just The Way (2021#88)|Take My Name (2022#82)
|
||||||
PARTYNEXTDOOR,Q15929398,male,solo,Canadian hip-hop; alternative R&B,Canada,Somebody Loves Me (2025#85)
|
PARTYNEXTDOOR,Q15929398,male,solo,Canadian hip-hop; alternative R&B,Canada,Somebody Loves Me (2025#85)
|
||||||
Paul Russell,Q122932071,male,solo,hip-hop; contemporary R&B; pop rap,United States,Lil Boo Thang (2024#78)
|
Paul Russell,Q122932071,male,solo,hip-hop; contemporary R&B; pop rap,United States,Lil Boo Thang (2024#78)
|
||||||
Peso Pluma,Q117242724,male,solo,regional Mexican; corridos tumbados; reggaeton; Latin trap; cumbia norteña mexicana,Mexico,Ella Baila Sola (2023#26)|La Bebe (2023#40)|Por Las Noches (2023#86)|PRC (2023#90)
|
Peso Pluma,Q117242724,male,solo,regional Mexican; corridos tumbados; reggaeton; Latin trap; cumbia norteña mexicana,Mexico,Ella Baila Sola (2023#26)|La Bebe (2023#40)|Por Las Noches (2023#86)|PRC (2023#90)
|
||||||
Pharrell Williams,Q14313,male,solo,contemporary R&B; hip-hop; pop music; funk; rock music; pop rap,United States,Feels (2017#74)
|
Pharrell Williams,Q14313,male,solo,contemporary R&B; hip-hop; pop music; funk; rock music; pop rap,United States,Feels (2017#74)
|
||||||
|
Pinkfong,Q55735607,,,children's music,South Korea,Baby Shark (2019#75)
|
||||||
PinkPantheress,Q107570416,female,solo,pop music; bedroom pop; dance music; alternative pop; drum and bass; 2-step garage; jungle; hyperpop,United Kingdom,"Boy's A Liar, Pt. 2 (2023#20)"
|
PinkPantheress,Q107570416,female,solo,pop music; bedroom pop; dance music; alternative pop; drum and bass; 2-step garage; jungle; hyperpop,United Kingdom,"Boy's A Liar, Pt. 2 (2023#20)"
|
||||||
Playboi Carti,Q27671080,male,solo,Southern hip-hop; trap music; mumble rap; cloud rap; rage; punk rap; alternative hip-hop; plugg music; lo-fi music; SoundCloud rap,United States,Carnival (2024#38)|FE!N (2024#97)|Magnolia (2017#79)|Rather Lie (2025#91)|Timeless (2025#16)|Type Shit (2024#51)
|
Playboi Carti,Q27671080,male,solo,Southern hip-hop; trap music; mumble rap; cloud rap; rage; punk rap; alternative hip-hop; plugg music; lo-fi music; SoundCloud rap,United States,Carnival (2024#38)|FE!N (2024#97)|Magnolia (2017#79)|Rather Lie (2025#91)|Timeless (2025#16)|Type Shit (2024#51)
|
||||||
PnB Rock,Q28155029,male,solo,hip-hop; contemporary R&B; trap music; pop music; pop rap,United States,Everyday We Lit (2017#95)
|
PnB Rock,Q28155029,male,solo,hip-hop; contemporary R&B; trap music; pop music; pop rap,United States,Everyday We Lit (2017#95)
|
||||||
Polo G,Q62953486,male,solo,hip-hop; drill; trap music; conscious hip-hop; Midwest hip-hop; Chicago hip-hop,United States,Better Days (2022#73)|Pop Out (2019#45)|Rapstar (2021#30)
|
Polo G,Q62953486,male,solo,hip-hop; drill; trap music; conscious hip-hop; Midwest hip-hop; Chicago hip-hop,United States,Better Days (2022#73)|Pop Out (2019#45)|Rapstar (2021#30)
|
||||||
Pooh Shiesty,Q105105274,male,solo,trap music; Southern hip-hop; drill; hardcore hip-hop; gangsta rap; Memphis rap,United States,Back In Blood (2021#39)|Beat Box (2021#44)
|
Pooh Shiesty,Q105105274,male,solo,trap music; Southern hip-hop; drill; hardcore hip-hop; gangsta rap; Memphis rap,United States,Back In Blood (2021#39)|Beat Box (2021#44)
|
||||||
Pop Smoke,Q81698554,male,solo,East Coast hip-hop; Brooklyn drill; trap music; gangsta rap; drill; hip-hop,United States,Dior (2020#83)|For The Night (2020#49/2021#32)|Mood Swings (2020#81)|The Woo (2020#78)|What You Know Bout Love (2021#22)
|
Pop Smoke,Q81698554,male,solo,East Coast hip-hop; Brooklyn drill; trap music; gangsta rap; drill; hip-hop,United States,Dior (2020#83)|For The Night (2020#49/2021#32)|Mood Swings (2020#81)|The Woo (2020#78)|What You Know Bout Love (2021#22)
|
||||||
Portugal. The Man,Q606879,mixed,group,pop music; indie rock,United States,Feel It Still (2017#45/2018#33)
|
Portugal. The Man,Q606879,,group,pop music; indie rock,United States,Feel It Still (2017#45/2018#33)
|
||||||
Post Malone,Q21621919,male,solo,hip-hop; pop music; country music,United States,Better Now (2018#13/2019#32)|Chemical (2023#57)|Circles (2019#62/2020#2)|Congratulations (2017#10)|Dial Drunk (2023#80)|Fortnight (2024#22)|Goodbyes (2019#30)|I Ain't Coming Back (2025#72)|I Fall Apart (2018#39)|I Had Some Help (2024#4/2025#8)|I Like You (A Happier Song) (2022#26/2023#75)|One Right Now (2022#30)|Pour Me A Drink (2024#76)|Psycho (2018#6)|Rockstar (2017#56/2018#5)|Sunflower (Spider-Man: Into The Spider-Verse) (2019#2)|White Iverson (2016#65)|Wow. (2019#5)
|
Post Malone,Q21621919,male,solo,hip-hop; pop music; country music,United States,Better Now (2018#13/2019#32)|Chemical (2023#57)|Circles (2019#62/2020#2)|Congratulations (2017#10)|Dial Drunk (2023#80)|Fortnight (2024#22)|Goodbyes (2019#30)|I Ain't Coming Back (2025#72)|I Fall Apart (2018#39)|I Had Some Help (2024#4/2025#8)|I Like You (A Happier Song) (2022#26/2023#75)|One Right Now (2022#30)|Pour Me A Drink (2024#76)|Psycho (2018#6)|Rockstar (2017#56/2018#5)|Sunflower (Spider-Man: Into The Spider-Verse) (2019#2)|White Iverson (2016#65)|Wow. (2019#5)
|
||||||
Powfu,Q89069821,male,solo,hip-hop; lo-fi music; power pop; rock music,Canada,Death Bed (2020#43)
|
Powfu,Q89069821,male,solo,hip-hop; lo-fi music; power pop; rock music,Canada,Death Bed (2020#43)
|
||||||
Project Pat,Q593741,male,solo,Memphis rap; gangsta rap; hardcore hip-hop; Southern hip-hop; crunk; dirty south; trap music; horrorcore,United States,Knife Talk (2021#86/2022#60)
|
Project Pat,Q593741,male,solo,Memphis rap; gangsta rap; hardcore hip-hop; Southern hip-hop; crunk; dirty south; trap music; horrorcore,United States,Knife Talk (2021#86/2022#60)
|
||||||
Quavo,Q30072039,male,solo,hip-hop; trap music,United States,Congratulations (2017#10)|I'm The One (2017#12)|Intentions (2020#17)|No Brainer (2018#73)|Strip That Down (2017#36)
|
Quavo,Q30072039,male,solo,hip-hop; trap music,United States,Congratulations (2017#10)|I'm The One (2017#12)|Intentions (2020#17)|No Brainer (2018#73)|Strip That Down (2017#36)
|
||||||
Rae Sremmurd,Q18123226,male,group,hip-hop; trap music; pop music; pop rap,United States,Black Beatles (2017#19)|Powerglide (2018#97)|Swang (2017#64)
|
Rae Sremmurd,Q18123226,,group,hip-hop; trap music; pop music; pop rap,United States,Black Beatles (2017#19)|Powerglide (2018#97)|Swang (2017#64)
|
||||||
Rauw Alejandro,Q61586861,male,solo,contemporary R&B; urban contemporary; Latin R&B; reggaeton; Latin trap; Latin pop; salsa,United States,Party (2022#77)|Todo de Ti (2021#100)
|
Rauw Alejandro,Q61586861,male,solo,contemporary R&B; urban contemporary; Latin R&B; reggaeton; Latin trap; Latin pop; salsa,United States,Party (2022#77)|Todo de Ti (2021#100)
|
||||||
Ravyn Lenae,Q28962463,female,solo,contemporary R&B; alternative R&B; neo soul,United States,Love Me Not (2025#30)
|
Ravyn Lenae,Q28962463,female,solo,contemporary R&B; alternative R&B; neo soul,United States,Love Me Not (2025#30)
|
||||||
RAYE,Q28071144,female,solo,contemporary R&B,United Kingdom,Escapism (2023#48)
|
RAYE,Q28071144,female,solo,contemporary R&B,United Kingdom,Escapism (2023#48)
|
||||||
REI AMI,Q104842557,female,solo,K-pop; pop music; hip-hop; contemporary R&B,South Korea,Golden (2025#25)|How It's Done (2025#68)|Takedown (2025#93)|What It Sounds Like (2025#83)
|
REI AMI,Q104842557,female,solo,K-pop; pop music; hip-hop; contemporary R&B,South Korea,Golden (2025#25)|How It's Done (2025#68)|Takedown (2025#93)|What It Sounds Like (2025#83)
|
||||||
Rema,Q65071082,male,solo,Afrobeats,Nigeria,Calm Down (2023#6)
|
Rema,Q65071082,male,solo,Afrobeats,Nigeria,Calm Down (2023#6)
|
||||||
Remy Boyz,Q63405888,male,group,hip-hop,United States,679 (2016#54)
|
Remy Boyz,Q63405888,,group,hip-hop,United States,679 (2016#54)
|
||||||
Remy Ma,Q275437,female,solo,East Coast hip-hop,United States,All The Way Up (2016#87)
|
Remy Ma,Q275437,female,solo,East Coast hip-hop,United States,All The Way Up (2016#87)
|
||||||
Rhenzy Feliz,Q34344805,male,solo,,United States,We Don't Talk About Bruno (2022#24)
|
Rhenzy Feliz,Q34344805,male,solo,,United States,We Don't Talk About Bruno (2022#24)
|
||||||
Rich The Kid,Q18637908,male,solo,hip-hop; trap music; mumble rap; plugg music; Southern hip-hop,United States,Carnival (2024#38)|Plug Walk (2018#57)
|
Rich The Kid,Q18637908,male,solo,hip-hop; trap music; mumble rap; plugg music; Southern hip-hop,United States,Carnival (2024#38)|Plug Walk (2018#57)
|
||||||
@@ -387,7 +387,7 @@ Sean Paul,Q200577,male,solo,dancehall; pop music,Jamaica,Cheap Thrills (2016#11)
|
|||||||
Selena Gomez,Q83287,female,solo,pop music; dance-pop; electropop; pop rock; contemporary R&B; alternative R&B,United States,Back To You (2018#41)|Calm Down (2023#6)|Hands To Myself (2016#56)|It Ain't Me (2017#27)|Lose You To Love Me (2020#30)|Same Old Love (2016#40)|Taki Taki (2019#57)|We Don't Talk Anymore (2016#50)|Wolves (2018#60)
|
Selena Gomez,Q83287,female,solo,pop music; dance-pop; electropop; pop rock; contemporary R&B; alternative R&B,United States,Back To You (2018#41)|Calm Down (2023#6)|Hands To Myself (2016#56)|It Ain't Me (2017#27)|Lose You To Love Me (2020#30)|Same Old Love (2016#40)|Taki Taki (2019#57)|We Don't Talk Anymore (2016#50)|Wolves (2018#60)
|
||||||
Sexyy Red,Q119842023,female,solo,hip-hop; trap music; dirty rap; Midwest hip-hop,United States,Get It Sexyy (2024#55)|Rich Baby Daddy (2024#45)|Sticky (2025#41)|Whatchu Kno About Me (2025#48)
|
Sexyy Red,Q119842023,female,solo,hip-hop; trap music; dirty rap; Midwest hip-hop,United States,Get It Sexyy (2024#55)|Rich Baby Daddy (2024#45)|Sticky (2025#41)|Whatchu Kno About Me (2025#48)
|
||||||
Shaboozey,Q125295750,male,solo,alternative country; country music; hip-hop; Americana,United States,A Bar Song (Tipsy) (2024#2/2025#3)|Good News (2025#23)
|
Shaboozey,Q125295750,male,solo,alternative country; country music; hip-hop; Americana,United States,A Bar Song (Tipsy) (2024#2/2025#3)|Good News (2025#23)
|
||||||
SHAED,Q60643444,mixed,group,electropop; indie pop,United States,Trampoline (2019#70/2020#53)
|
SHAED,Q60643444,,group,electropop; indie pop,United States,Trampoline (2019#70/2020#53)
|
||||||
Shakira,Q34424,female,solo,pop music; Latin pop; pop rock; Latin rock; dance music; folk music; world music; contemporary R&B; rock music,Spain,"Bzrp Music Sessions, Vol. 53 (2023#96)|TQG (2023#65)"
|
Shakira,Q34424,female,solo,pop music; Latin pop; pop rock; Latin rock; dance music; folk music; world music; contemporary R&B; rock music,Spain,"Bzrp Music Sessions, Vol. 53 (2023#96)|TQG (2023#65)"
|
||||||
Shawn Mendes,Q17198340,male,solo,folk-pop; pop music; pop rock,Canada,I Know What You Did Last Summer (2016#86)|If I Can't Have You (2019#29)|In My Blood (2018#46)|Mercy (2017#54)|Senorita (2019#15/2020#44)|Stitches (2016#23)|There's Nothing Holdin' Me Back (2017#23)|Treat You Better (2016#28/2017#92)
|
Shawn Mendes,Q17198340,male,solo,folk-pop; pop music; pop rock,Canada,I Know What You Did Last Summer (2016#86)|If I Can't Have You (2019#29)|In My Blood (2018#46)|Mercy (2017#54)|Senorita (2019#15/2020#44)|Stitches (2016#23)|There's Nothing Holdin' Me Back (2017#23)|Treat You Better (2016#28/2017#92)
|
||||||
Shay Mooney,Q116536996,male,solo,country music,United States,"10,000 Hours (2020#23)|All To Myself (2019#97)|Glad You Exist (2021#64)|Speechless (2019#35)|Tequila (2018#32/2019#91)"
|
Shay Mooney,Q116536996,male,solo,country music,United States,"10,000 Hours (2020#23)|All To Myself (2019#97)|Glad You Exist (2021#64)|Speechless (2019#35)|Tequila (2018#32/2019#91)"
|
||||||
@@ -396,7 +396,7 @@ Sia,Q181484,female,solo,electropop; indie pop,Australia,Cheap Thrills (2016#11)
|
|||||||
Silentó,Q20354248,male,solo,hip-hop; pop rap; trap music; comedy hip-hop; snap music; pop music,United States,Watch Me (2016#88)
|
Silentó,Q20354248,male,solo,hip-hop; pop rap; trap music; comedy hip-hop; snap music; pop music,United States,Watch Me (2016#88)
|
||||||
Skip Marley,Q21621948,male,solo,reggae; pop music; hip-hop; rock music,Jamaica,Chained To The Rhythm (2017#73)
|
Skip Marley,Q21621948,male,solo,reggae; pop music; hip-hop; rock music,Jamaica,Chained To The Rhythm (2017#73)
|
||||||
Snow,Q94708,male,solo,dancehall; reggae; hip-hop; reggae fusion,Canada,Con Calma (2019#65)
|
Snow,Q94708,male,solo,dancehall; reggae; hip-hop; reggae fusion,Canada,Con Calma (2019#65)
|
||||||
Social House,Q65117469,male,group,pop music,United States,Boyfriend (2019#98)
|
Social House,Q65117469,,group,pop music,United States,Boyfriend (2019#98)
|
||||||
sombr,Q133444448,male,solo,alternative pop; bedroom pop,United States,Back To Friends (2025#44)|Undressed (2025#42)
|
sombr,Q133444448,male,solo,alternative pop; bedroom pop,United States,Back To Friends (2025#44)|Undressed (2025#42)
|
||||||
SpotemGottem,Q105105325,male,solo,mumble rap; trap music; drill; Southern hip-hop,United States,Beat Box (2021#44)
|
SpotemGottem,Q105105325,male,solo,mumble rap; trap music; drill; Southern hip-hop,United States,Beat Box (2021#44)
|
||||||
StaySolidRocky,Q95918251,male,solo,hip-hop,United States,Party Girl (2020#64)
|
StaySolidRocky,Q95918251,male,solo,hip-hop,United States,Party Girl (2020#64)
|
||||||
@@ -405,7 +405,7 @@ Stephen Sanchez,Q113023532,male,solo,pop music,United States,Until I Found You (
|
|||||||
Steve Lacy,Q56733980,male,solo,alternative R&B,United States,Bad Habit (2022#28/2023#39)
|
Steve Lacy,Q56733980,male,solo,alternative R&B,United States,Bad Habit (2022#28/2023#39)
|
||||||
Summer Walker,Q61959478,female,solo,contemporary R&B,United States,Good Good (2024#79)|Heart Of A Woman (2025#94)
|
Summer Walker,Q61959478,female,solo,contemporary R&B,United States,Good Good (2024#79)|Heart Of A Woman (2025#94)
|
||||||
Surf Mesa,Q93771412,male,solo,tropical house,United States,ily (2020#95)
|
Surf Mesa,Q93771412,male,solo,tropical house,United States,ily (2020#95)
|
||||||
Surfaces,Q76330429,male,group,pop music,United States,Sunday Best (2020#61)
|
Surfaces,Q76330429,,group,pop music,United States,Sunday Best (2020#61)
|
||||||
Swae Lee,Q30103025,male,solo,hip-hop; trap music,United States,Be Like That (2020#88)|Close To Me (2019#58)|Sunflower (Spider-Man: Into The Spider-Verse) (2019#2)|Unforgettable (2017#15)
|
Swae Lee,Q30103025,male,solo,hip-hop; trap music,United States,Be Like That (2020#88)|Close To Me (2019#58)|Sunflower (Spider-Man: Into The Spider-Verse) (2019#2)|Unforgettable (2017#15)
|
||||||
SZA,Q16210722,female,solo,contemporary R&B; alternative R&B; neo soul; pop music; hip-hop,United States,30 For 30 (2025#21)|All The Stars (2018#47)|BMF (2025#76)|Good Days (2021#52)|I Hate U (2022#50)|Kill Bill (2023#3)|Kiss Me More (2021#6/2022#90)|Love Galore (2017#80)|Luther (2025#2)|Nobody Gets Me (2023#77)|Rich Baby Daddy (2024#45)|Saturn (2024#19)|Shirt (2023#51)|Snooze (2023#9/2024#20)|What Lovers Do (2017#97/2018#89)
|
SZA,Q16210722,female,solo,contemporary R&B; alternative R&B; neo soul; pop music; hip-hop,United States,30 For 30 (2025#21)|All The Stars (2018#47)|BMF (2025#76)|Good Days (2021#52)|I Hate U (2022#50)|Kill Bill (2023#3)|Kiss Me More (2021#6/2022#90)|Love Galore (2017#80)|Luther (2025#2)|Nobody Gets Me (2023#77)|Rich Baby Daddy (2024#45)|Saturn (2024#19)|Shirt (2023#51)|Snooze (2023#9/2024#20)|What Lovers Do (2017#97/2018#89)
|
||||||
Tae,Q54607285,female,solo,country music,United States,Die From A Broken Heart (2020#65)
|
Tae,Q54607285,female,solo,country music,United States,Die From A Broken Heart (2020#65)
|
||||||
@@ -414,9 +414,9 @@ Taylor Swift,Q26876,female,solo,pop music; country music,United States,All Too W
|
|||||||
Teddy Swims,Q105542333,male,solo,country music; pop music; rhythm and blues; soul,United States,Bad Dreams (2025#74)|Lose Control (2024#1/2025#4)
|
Teddy Swims,Q105542333,male,solo,country music; pop music; rhythm and blues; soul,United States,Bad Dreams (2025#74)|Lose Control (2024#1/2025#4)
|
||||||
Tems,Q72759173,female,solo,alternative R&B; Afrobeats,Nigeria,Essence (2021#60/2022#64)|Wait For U (2022#11/2023#83)
|
Tems,Q72759173,female,solo,alternative R&B; Afrobeats,Nigeria,Essence (2021#60/2022#64)|Wait For U (2022#11/2023#83)
|
||||||
Teo,Q55860035,male,solo,hip-hop,United States,Rolex (2017#61)
|
Teo,Q55860035,male,solo,hip-hop,United States,Rolex (2017#61)
|
||||||
The Chainsmokers,Q7721993,male,group,electronic dance music,United States,Closer (2016#10/2017#7)|Don't Let Me Down (2016#8)|Paris (2017#42)|Roses (2016#27)|Something Just Like This (2017#5)
|
The Chainsmokers,Q7721993,,group,electronic dance music,United States,Closer (2016#10/2017#7)|Don't Let Me Down (2016#8)|Paris (2017#42)|Roses (2016#27)|Something Just Like This (2017#5)
|
||||||
The Kid LAROI,Q82890761,male,solo,Australian hip-hop; contemporary R&B; pop music; emo rap,Australia,Stay (2021#12/2022#3)|Without You (2021#17)
|
The Kid LAROI,Q82890761,male,solo,Australian hip-hop; contemporary R&B; pop music; emo rap,Australia,Stay (2021#12/2022#3)|Without You (2021#17)
|
||||||
The Marías,Q85807852,mixed,group,indie pop; psychedelic soul; dream pop; synth-pop,United States,No One Noticed (2025#32)
|
The Marías,Q85807852,,group,indie pop; psychedelic soul; dream pop; synth-pop,United States,No One Noticed (2025#32)
|
||||||
The Weeknd,Q2121062,male,solo,alternative R&B; pop music; electropop,Canada,Blinding Lights (2020#1/2021#3)|Call Out My Name (2018#78)|Can't Feel My Face (2016#72)|Creepin' (2023#5)|Cry For Me (2025#73)|Die For You (2023#7)|Heartless (2020#28)|I Feel It Coming (2017#34)|In The Night (2016#61)|Low Life (2016#30)|One Right Now (2022#30)|Pray For Me (2018#40)|Rather Lie (2025#91)|Save Your Tears (2021#2/2022#40)|Starboy (2016#58/2017#20)|Take My Breath (2021#89)|The Hills (2016#32)|Timeless (2025#16)|You Right (2021#43/2022#45)
|
The Weeknd,Q2121062,male,solo,alternative R&B; pop music; electropop,Canada,Blinding Lights (2020#1/2021#3)|Call Out My Name (2018#78)|Can't Feel My Face (2016#72)|Creepin' (2023#5)|Cry For Me (2025#73)|Die For You (2023#7)|Heartless (2020#28)|I Feel It Coming (2017#34)|In The Night (2016#61)|Low Life (2016#30)|One Right Now (2022#30)|Pray For Me (2018#40)|Rather Lie (2025#91)|Save Your Tears (2021#2/2022#40)|Starboy (2016#58/2017#20)|Take My Breath (2021#89)|The Hills (2016#32)|Timeless (2025#16)|You Right (2021#43/2022#45)
|
||||||
Thomas Rhett,Q7793491,male,solo,country music,United States,After All The Bars Are Closed (2025#88)|Die A Happy Man (2016#64)|Look What God Gave Her (2019#85)|Marry Me (2018#76)|What's Your Country Song (2021#80)
|
Thomas Rhett,Q7793491,male,solo,country music,United States,After All The Bars Are Closed (2025#88)|Die A Happy Man (2016#64)|Look What God Gave Her (2019#85)|Marry Me (2018#76)|What's Your Country Song (2021#80)
|
||||||
Tim McGraw,Q356487,male,solo,country music,United States,Humble And Kind (2016#96)
|
Tim McGraw,Q356487,male,solo,country music,United States,Humble And Kind (2016#96)
|
||||||
@@ -428,7 +428,7 @@ Tove Lo,Q15948790,female,solo,pop music; indie pop; synth-pop; electropop,Sweden
|
|||||||
Travis Scott,Q13605596,male,solo,hip-hop; trap music; pop rap; psychedelic rap; rock music; Southern hip-hop; contemporary R&B; psychedelic music; pop rock; alternative rock; alternative hip-hop; alternative R&B; psychedelic rock; psychedelic hip-hop,United States,Antidote (2016#75)|FE!N (2024#97)|Goosebumps (2017#68)|HIGHEST IN THE ROOM (2020#45)|Love Galore (2017#80)|Meltdown (2023#97)|Sicko Mode (2018#42/2019#9)|Sky Walker (2018#75)|The London (2019#64)|The Scotts (2020#86)|Type Shit (2024#51)|ZEZE (2019#31)
|
Travis Scott,Q13605596,male,solo,hip-hop; trap music; pop rap; psychedelic rap; rock music; Southern hip-hop; contemporary R&B; psychedelic music; pop rock; alternative rock; alternative hip-hop; alternative R&B; psychedelic rock; psychedelic hip-hop,United States,Antidote (2016#75)|FE!N (2024#97)|Goosebumps (2017#68)|HIGHEST IN THE ROOM (2020#45)|Love Galore (2017#80)|Meltdown (2023#97)|Sicko Mode (2018#42/2019#9)|Sky Walker (2018#75)|The London (2019#64)|The Scotts (2020#86)|Type Shit (2024#51)|ZEZE (2019#31)
|
||||||
Trevor Daniel,Q81738417,male,solo,contemporary R&B; pop music,United States,Falling (2020#22)
|
Trevor Daniel,Q81738417,male,solo,contemporary R&B; pop music,United States,Falling (2020#22)
|
||||||
Tucker Wetmore,Q124754909,male,solo,country music,United States,Wind Up Missin' You (2024#95)
|
Tucker Wetmore,Q124754909,male,solo,country music,United States,Wind Up Missin' You (2024#95)
|
||||||
twenty one pilots,Q7857806,male,group,reggae; alternative rock; electropop; alternative hip-hop; rap rock; indie pop; pop rock,United States,Heathens (2016#21/2017#58)|Ride (2016#20)|Stressed Out (2016#5)
|
twenty one pilots,Q7857806,,group,reggae; alternative rock; electropop; alternative hip-hop; rap rock; indie pop; pop rock,United States,Heathens (2016#21/2017#58)|Ride (2016#20)|Stressed Out (2016#5)
|
||||||
Ty Dolla $ign,Q7859785,male,solo,contemporary R&B; West Coast hip-hop; trap music; hip-hop,United States,Carnival (2024#38)|Hot Girl Summer (2019#93)|Psycho (2018#6)|Sucker For Pain (2016#68)|Swalla (2017#85)|Work From Home (2016#16)
|
Ty Dolla $ign,Q7859785,male,solo,contemporary R&B; West Coast hip-hop; trap music; hip-hop,United States,Carnival (2024#38)|Hot Girl Summer (2019#93)|Psycho (2018#6)|Sucker For Pain (2016#68)|Swalla (2017#85)|Work From Home (2016#16)
|
||||||
Tyga,Q358087,male,solo,West Coast hip-hop; pop rap,United States,Juicy (2020#87)|Taste (2018#28)
|
Tyga,Q358087,male,solo,West Coast hip-hop; pop rap,United States,Juicy (2020#87)|Taste (2018#28)
|
||||||
Tyla,Q118105408,female,solo,contemporary R&B; pop music; Amapiano; new jack swing,South Africa,Water (2024#24)
|
Tyla,Q118105408,female,solo,contemporary R&B; pop music; Amapiano; new jack swing,South Africa,Water (2024#24)
|
||||||
@@ -439,12 +439,12 @@ Usher,Q165911,male,solo,contemporary R&B; pop music; soul; hip-hop; dance music;
|
|||||||
Victoria Monét,Q19864989,female,solo,pop music; contemporary R&B; hip-hop,United States,On My Mama (2024#91)
|
Victoria Monét,Q19864989,female,solo,pop music; contemporary R&B; hip-hop,United States,On My Mama (2024#91)
|
||||||
Walker Hayes,Q7962267,male,solo,country music,United States,AA (2022#61)|Fancy Like (2021#27/2022#35)
|
Walker Hayes,Q7962267,male,solo,country music,United States,AA (2022#61)|Fancy Like (2021#27/2022#35)
|
||||||
Warren Zeiders,Q120986980,male,solo,country music,United States,Pretty Little Poison (2024#60)
|
Warren Zeiders,Q120986980,male,solo,country music,United States,Pretty Little Poison (2024#60)
|
||||||
Wham!,Q744087,male,group,pop music; new wave; blue-eyed soul,United Kingdom,Last Christmas (2023#84/2024#74/2025#65)
|
Wham!,Q744087,,group,pop music; new wave; blue-eyed soul,United Kingdom,Last Christmas (2023#84/2024#74/2025#65)
|
||||||
WILLOW,Q298209,female,solo,indie pop; alternative R&B; experimental pop; neo soul; hip-hop; electronic dance music; pop music; dream pop; contemporary R&B; rock music; indie rock; progressive rock; pop-punk; alternative rock; alternative pop; jazz,United States,Meet Me At Our Spot (2022#74)
|
WILLOW,Q298209,female,solo,indie pop; alternative R&B; experimental pop; neo soul; hip-hop; electronic dance music; pop music; dream pop; contemporary R&B; rock music; indie rock; progressive rock; pop-punk; alternative rock; alternative pop; jazz,United States,Meet Me At Our Spot (2022#74)
|
||||||
Willy William,Q17016749,male,solo,house music; reggaeton; zouk,France,Mi Gente (2017#50/2018#99)
|
Willy William,Q17016749,male,solo,house music; reggaeton; zouk,France,Mi Gente (2017#50/2018#99)
|
||||||
Wiz Khalifa,Q117139,male,solo,East Coast hip-hop; pop rap,United States,See You Again (2016#99)|Sucker For Pain (2016#68)
|
Wiz Khalifa,Q117139,male,solo,East Coast hip-hop; pop rap,United States,See You Again (2016#99)|Sucker For Pain (2016#68)
|
||||||
Wizkid,Q16233663,male,solo,Afrobeats; dancehall; rhythm and blues,Nigeria,Essence (2021#60/2022#64)|One Dance (2016#3)
|
Wizkid,Q16233663,male,solo,Afrobeats; dancehall; rhythm and blues,Nigeria,Essence (2021#60/2022#64)|One Dance (2016#3)
|
||||||
X Ambassadors,Q15963313,male,group,alternative rock,United States,Sucker For Pain (2016#68)|Unsteady (2016#67)
|
X Ambassadors,Q15963313,,group,alternative rock,United States,Sucker For Pain (2016#68)|Unsteady (2016#67)
|
||||||
Xavi,Q124219723,male,solo,regional Mexican; corridos tumbados,United States,La Diabla (2024#72)
|
Xavi,Q124219723,male,solo,regional Mexican; corridos tumbados,United States,La Diabla (2024#72)
|
||||||
XXXTENTACION,Q28561969,male,solo,hip-hop; emo rap; SoundCloud rap; rap rock; lo-fi music; hardcore hip-hop; alternative rock; lofi hip-hop; indie rock; nu metal; cloud rap; trap music; hardcore punk; trap metal; punk rock; rock music; rap metal; alternative R&B; contemporary R&B; punk rap; heavy metal music,United States,Changes (2018#94)|Look At Me! (2017#99)|Moonlight (2018#88)|Sad! (2018#17)
|
XXXTENTACION,Q28561969,male,solo,hip-hop; emo rap; SoundCloud rap; rap rock; lo-fi music; hardcore hip-hop; alternative rock; lofi hip-hop; indie rock; nu metal; cloud rap; trap music; hardcore punk; trap metal; punk rock; rock music; rap metal; alternative R&B; contemporary R&B; punk rap; heavy metal music,United States,Changes (2018#94)|Look At Me! (2017#99)|Moonlight (2018#88)|Sad! (2018#17)
|
||||||
Yeat,Q108761978,male,solo,experimental hip-hop; rage; trap music,United States,IDGAF (2024#83)
|
Yeat,Q108761978,male,solo,experimental hip-hop; rage; trap music,United States,IDGAF (2024#83)
|
||||||
|
|||||||
|
+884
-884
File diff suppressed because it is too large
Load Diff
+5
-117
@@ -99,8 +99,8 @@
|
|||||||
|
|
||||||
## 2026-08-02
|
## 2026-08-02
|
||||||
|
|
||||||
- **`import-lyrics` 不設為子命令,pilot 歌詞改以私人腳本
|
- **`import-lyrics` 不設為子命令,pilot 歌詞改以 `excludes/`
|
||||||
匯入**。理由:pilot 捕捉檔不隨論文發布,子命令
|
私人腳本匯入**。理由:pilot 捕捉檔不隨論文發布,子命令
|
||||||
形式會在發布的 CLI 裡留下讀者無法執行的死命令——要交待的
|
形式會在發布的 CLI 裡留下讀者無法執行的死命令——要交待的
|
||||||
是「沿用 pilot 捕捉」的事實(記於 lyrics-provenance.csv 與
|
是「沿用 pilot 捕捉」的事實(記於 lyrics-provenance.csv 與
|
||||||
論文方法節),不是工具本身;工具移出專案,發布管線即
|
論文方法節),不是工具本身;工具移出專案,發布管線即
|
||||||
@@ -178,8 +178,8 @@
|
|||||||
來源公開可稽核,快照乾淨、overrides 縮小;論文方法節揭露
|
來源公開可稽核,快照乾淨、overrides 縮小;論文方法節揭露
|
||||||
「捕捉前經研究者查證補完」。性別以公開自我認同為準,
|
「捕捉前經研究者查證補完」。性別以公開自我認同為準,
|
||||||
推測不確定且無佐證者列疑慮清單;查證屬資料策展而非
|
推測不確定且無佐證者列疑慮清單;查證屬資料策展而非
|
||||||
分析,以 Claude Code 輔助、不走分析 API;QS 批次以
|
分析,以 Claude Code 輔助、不走分析 API;QS 批次存
|
||||||
私人工作檔留存,不隨論文發布。
|
`excludes/`(私人工作檔,不隨論文發布)。
|
||||||
|
|
||||||
## 2026-08-04
|
## 2026-08-04
|
||||||
|
|
||||||
@@ -227,7 +227,7 @@
|
|||||||
- **Markdown 檔名一律以 dash 連接**(decision-log.md、
|
- **Markdown 檔名一律以 dash 連接**(decision-log.md、
|
||||||
research-plan.md、project-structure.md 等;與 data/ 層
|
research-plan.md、project-structure.md 等;與 data/ 層
|
||||||
CSV 檔名慣例一致),定義檔命名慣例同步改為
|
CSV 檔名慣例一致),定義檔命名慣例同步改為
|
||||||
`prompts/<task>-v<N>.md`(如 screen-v1.md),版本庫外的
|
`prompts/<task>-v<N>.md`(如 screen-v1.md),`excludes/`
|
||||||
私人工作檔一併改名;`conference_abstract.md` 改名並搬入
|
私人工作檔一併改名;`conference_abstract.md` 改名並搬入
|
||||||
`paper/`——它是本次年會實際送出的摘要,與全文同屬投稿
|
`paper/`——它是本次年會實際送出的摘要,與全文同屬投稿
|
||||||
血脈,不是 `docs/` 的內部工作文件。全 repo 指涉同步更新。
|
血脈,不是 `docs/` 的內部工作文件。全 repo 指涉同步更新。
|
||||||
@@ -576,115 +576,3 @@
|
|||||||
更正而合流),逐字可對回的引述由 43,098 升至 44,122。
|
更正而合流),逐字可對回的引述由 43,098 升至 44,122。
|
||||||
更正表為外部參數而非寫死於程式——研究者的介入因此
|
更正表為外部參數而非寫死於程式——研究者的介入因此
|
||||||
出現在重現命令上,且逐列可審、可 diff。
|
出現在重現命令上,且逐列可審、可 diff。
|
||||||
|
|
||||||
## 2026-08-08
|
|
||||||
|
|
||||||
- **署名 Pinkfong 的演出者實體指認為 Hope Segoine**:
|
|
||||||
Billboard 署名 Pinkfong 為品牌(Wikidata Q55735607,型態
|
|
||||||
brand),非演唱者;其唯一上榜曲 Baby Shark(2019#75)
|
|
||||||
的實際演唱者為 Hope Segoine(KTVB 2019-03-06 報導、
|
|
||||||
Songfacts、經紀簡介,出處詳私人留存的
|
|
||||||
QuickStatements 草稿)。藉既有的
|
|
||||||
署名正規化機制(`ArtistImporter.CANONICAL_ARTIST_NAMES`)
|
|
||||||
指認:歌曲的署名字串維持榜單所印的 "Pinkfong",解析出
|
|
||||||
的演出者實體為 Hope Segoine。品牌無性別可言,人有;
|
|
||||||
本表記錄的其他項目為拼寫正規化,此筆為實體指認,屬
|
|
||||||
研究者裁定。
|
|
||||||
|
|
||||||
- **歌曲層演出者性別的推導規則**:`build-db` 於套用
|
|
||||||
Wikidata 快照後,為每首歌自全體署名者(primary 與
|
|
||||||
featured 一律計入)的性別推導 `performer_gender`:已知
|
|
||||||
性別有兩種以上相異值即 `mixed`——未知者不可能翻案;
|
|
||||||
已知者全部同值且無未知,取該值;其餘(已知同值但有
|
|
||||||
未知,或全未知)留空。值域不折疊:non-binary、
|
|
||||||
genderfluid、trans woman 依快照原值參與比較,與 male/
|
|
||||||
female 相異即計入 `mixed`。此欄同步鏡射於
|
|
||||||
`data/derived/songs.csv` 的 `Performer Gender` 欄。
|
|
||||||
|
|
||||||
- **演唱團體的性別自成員推導**:Wikidata 的團體項目本身
|
|
||||||
無 P21;`fetch-artists` 於團體自身無性別陳述時,讀其
|
|
||||||
P527 成員推導:成員的任期若於 2016 年(語料起年)前
|
|
||||||
確定結束——最晚的 P582 早於 2016 且最晚的 P580 不晚於
|
|
||||||
它(同一筆陳述以多個起訖時間記錄退團與回歸)——則
|
|
||||||
排除;非人項目(P31 無 Q5,如 Black Eyed Peas 所列的
|
|
||||||
前身樂團)排除;餘者的 P21 全員同值取該值、相異取
|
|
||||||
`mixed`、任一成員無 P21 或無成員可計則留空。推導依據
|
|
||||||
(成員 QID 與各自性別)記於快照 note 欄,逐列可查。
|
|
||||||
快照中性別空白的列視為未定,重跑時重抓替換;store 中
|
|
||||||
已不存在的名字於重寫時剔除並出聲。成員資料於推導前
|
|
||||||
已補齊並上傳 Wikidata(46/47 團成員完備;Encanto Cast
|
|
||||||
為 original cast、Internet Money 為廠牌集體,非樂團,
|
|
||||||
據實留空)。
|
|
||||||
|
|
||||||
## 2026-08-09
|
|
||||||
|
|
||||||
- **無型態的署名者不參與歌曲層性別彙總**:署名者的型態
|
|
||||||
由型態閘(human/musical ensemble/original cast)解出;
|
|
||||||
解不出者(廠牌、品牌、製作集體)不是演唱主體,其性別
|
|
||||||
屬不適用而非未知,不得以「未知」之姿擋住全員一致。
|
|
||||||
全語料型態空白者恰二:Internet Money(廠牌集體,
|
|
||||||
Lemonade 實際開口者為三位男性,研究者聽驗)與
|
|
||||||
Encanto Cast。後者確為演唱者,被本規則跳過在概念上
|
|
||||||
偏粗,惟其具名成員(4 女 2 男)已足撐 mixed,結論
|
|
||||||
無損,據實記之。效果:883 首全數有值。
|
|
||||||
|
|
||||||
## 2026-08-13
|
|
||||||
|
|
||||||
- **為論文補算分群組數 k 的完整比較表**:定分群組數時
|
|
||||||
(2026-08-05 前後)僅粗算——當時記錄了 k=30 的最大組
|
|
||||||
491 詞與平均組內一致性約 0.41、k=50 的雜物櫃組實例;
|
|
||||||
撰寫論文需要完整數表,故於本日以同一釘定嵌入模型
|
|
||||||
(sentence-transformers/all-mpnet-base-v2, revision
|
|
||||||
e8c3b32e)對 `runs/02-cluster/source-keywords.txt` 的
|
|
||||||
5,999 個關鍵字重新計算。組內一致性定義為組內成員兩兩
|
|
||||||
餘弦相似度之平均。k=50 直接取自私人留存的分群結果;
|
|
||||||
k=30 以同參數重跑(確定性演算法),重算所得最大組恰為
|
|
||||||
491 詞,與當時粗算紀錄吻合,佐證重算與原實驗一致。數表:
|
|
||||||
|
|
||||||
| | k=30 | k=50 | k=100 |
|
|
||||||
|---|---|---|---|
|
|
||||||
| 最大組(詞數) | 491 | 253 | 148 |
|
|
||||||
| 組內一致性(各組平均) | 0.402 | 0.434 | 0.485 |
|
|
||||||
| 組內一致性(最低組) | 0.166 | 0.170 | 0.200 |
|
|
||||||
|
|
||||||
論文方法節所引 k 值比較數字以本條為據。
|
|
||||||
|
|
||||||
## 2026-08-14
|
|
||||||
|
|
||||||
- **語意編碼群:四群由隔離的 LLM 盲選、研究者審定**:論文
|
|
||||||
研究結果需要語意層的編碼群,以與統計層的關聯檢定互為
|
|
||||||
獨立的對照。程序:四個彼此隔離的 Claude Code subagent
|
|
||||||
(輔助判讀層,非 API 儀器),各自僅收到群名與 101 碼的
|
|
||||||
字母序清單——無研究脈絡、無預期數量、不知其他群與其他
|
|
||||||
subagent 存在——依編碼字面語意挑選。盲選結果經研究者
|
|
||||||
審閱後照案採用:女性力量群(women-power group)2 碼
|
|
||||||
(female-empowerment、women-power);反女性力量/厭女群
|
|
||||||
(misogyny group)4 碼(idealized-beauty、
|
|
||||||
possessiveness-and-exclusivity、predatory-threat、
|
|
||||||
rejection-of-women);陽剛男性氣質群(masculine group)
|
|
||||||
13 碼(criminal-secrecy、dominance-and-power、
|
|
||||||
family-and-fatherhood、hustle-and-money、predatory-threat、
|
|
||||||
rejection-of-women、rivalry-and-superiority、
|
|
||||||
self-confidence-and-braggadocio、showing-off-and-impressing、
|
|
||||||
street-loyalty-and-danger、violence-and-street-danger、
|
|
||||||
wealth-and-flexing、wealth-and-material-success);脆弱群
|
|
||||||
(vulnerable group)24 碼(addiction-and-obsession、
|
|
||||||
alcohol-and-substance-abuse、clinging-to-love、
|
|
||||||
denial-and-self-deception、disappointment-and-failure、
|
|
||||||
fear-of-losing-love、guilt-and-apology、heartbreak-and-grief、
|
|
||||||
hidden-emotional-struggle、inner-mental-turmoil、
|
|
||||||
jealousy-and-bitterness、lingering-memories、
|
|
||||||
loneliness-and-isolation、longing-and-loss、
|
|
||||||
longing-for-clarity、longing-for-reconciliation、
|
|
||||||
nostalgia-and-longing、past-trauma-and-healing、
|
|
||||||
regret-and-reflection、reluctance-to-let-go、
|
|
||||||
self-worth-and-insecurity、societal-pressure、
|
|
||||||
toxic-relationship、vulnerability-and-betrayal)。
|
|
||||||
rejection-of-women 與 predatory-threat 同屬厭女與陽剛
|
|
||||||
兩群,據實保留雙重隸屬。本分群取代題庫時期的臨時
|
|
||||||
ANTI/MASC 清單(彼時 ANTI 含 partner-inadequacy;
|
|
||||||
盲選認其字面不帶性別而未入厭女群)。時序聲明:分群
|
|
||||||
先於群層次關聯檢定定案,非依統計結果回溯挑群;群層次
|
|
||||||
檢定(women-power/female-empowerment 對三群之 2×2,
|
|
||||||
Fisher 精確檢定,6 檢定一族之 BH-FDR 校正 q)之數字
|
|
||||||
以本條所載分群為據,論文之編碼群表與群關聯表同此。
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ pop-fem-audit/
|
|||||||
│ └── methodology.md # 方法細節(全文方法節底稿;
|
│ └── methodology.md # 方法細節(全文方法節底稿;
|
||||||
│ # 映射分析方法須在看結果前寫定)
|
│ # 映射分析方法須在看結果前寫定)
|
||||||
└── paper/
|
└── paper/
|
||||||
├── abstract.md # 摘要
|
├── conference-abstract.md # pilot 摘要(投稿版)
|
||||||
└── full-paper.md # 全文
|
└── full-paper.md # 全文
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
- **研究敘事**:全文為獨立完整的正式研究(2016–2025 十年語料
|
- **研究敘事**:全文為獨立完整的正式研究(2016–2025 十年語料
|
||||||
共 1000 筆榜單紀錄,凍結程序後全量執行),**不與先導研究
|
共 1000 筆榜單紀錄,凍結程序後全量執行),**不與先導研究
|
||||||
做比較**;全文數字一律以正式研究
|
(paper/conference-abstract.md)做比較**;全文數字一律以正式研究
|
||||||
結果為準。先導研究僅作為 codebook v0 與假說的內部來源,
|
結果為準。先導研究僅作為 codebook v0 與假說的內部來源,
|
||||||
記於決策日誌,不進入論文敘事。
|
記於決策日誌,不進入論文敘事。
|
||||||
- **執行原則**:主會話只做討論;所有分析由 deterministic script
|
- **執行原則**:主會話只做討論;所有分析由 deterministic script
|
||||||
@@ -75,8 +75,8 @@
|
|||||||
候選歌曲的歌手另做深度背景(族裔以公開自我認同為準、音樂
|
候選歌曲的歌手另做深度背景(族裔以公開自我認同為準、音樂
|
||||||
場景),script 輔助、人工核定。
|
場景),script 輔助、人工核定。
|
||||||
- **Pilot 歌詞沿用(私人匯入,不進發布管線)**:先導研究
|
- **Pilot 歌詞沿用(私人匯入,不進發布管線)**:先導研究
|
||||||
捕捉檔(lyrics.json,684 首,2018–2025)以私人腳本
|
捕捉檔(lyrics.json,684 首,2018–2025)以 `excludes/` 的
|
||||||
匯入歌詞快取——只取識別欄位與歌詞本文,以
|
私人腳本匯入歌詞快取——只取識別欄位與歌詞本文,以
|
||||||
(year, rank) 精確匹配 song_id。匯入工具不屬於專案交付物
|
(year, rank) 精確匹配 song_id。匯入工具不屬於專案交付物
|
||||||
(讀者拿不到其輸入),讀者的重現路徑純粹是 `fetch-lyrics`;
|
(讀者拿不到其輸入),讀者的重現路徑純粹是 `fetch-lyrics`;
|
||||||
沿用之**事實**記於 `data/captures/lyrics-provenance.csv`(進 git):
|
沿用之**事實**記於 `data/captures/lyrics-provenance.csv`(進 git):
|
||||||
@@ -164,11 +164,15 @@
|
|||||||
與「貶低其他女性/以男性指標定義權力」。
|
與「貶低其他女性/以男性指標定義權力」。
|
||||||
- 流程:v0 → 校準樣本試編 → 修訂 → 凍結 v1 → 全量編碼;
|
- 流程:v0 → 校準樣本試編 → 修訂 → 凍結 v1 → 全量編碼;
|
||||||
中途修訂須記決策日誌並回檢已編歌曲。
|
中途修訂須記決策日誌並回檢已編歌曲。
|
||||||
|
- Positionality statement 寫入論文(53 歲、長年婦運者、資深
|
||||||
|
工程師、離開學術圈多年、因整理榜單而起)。
|
||||||
|
|
||||||
## 其他已定案事項
|
## 其他已定案事項
|
||||||
|
|
||||||
- 歌詞受版權保護:完整歌詞不進 git(`data/captures/lyrics/` gitignored),
|
- 歌詞受版權保護:完整歌詞不進 git(`data/captures/lyrics/` gitignored),
|
||||||
論文與 repo 只留分類所引摘錄。
|
論文與 repo 只留分類所引摘錄。
|
||||||
|
- 工程支援(寫 script、style check、審稿)用公司訂閱的
|
||||||
|
Claude Code;進論文的分析 token 由個人 API 帳號支付。
|
||||||
- Fable 5 不用於 pipeline:成本高、thinking 無法關閉且不可稽核、
|
- Fable 5 不用於 pipeline:成本高、thinking 無法關閉且不可稽核、
|
||||||
無 temperature 控制,且會混淆「盲點是提示問題」的核心主張。
|
無 temperature 控制,且會混淆「盲點是提示問題」的核心主張。
|
||||||
(2026-08-05 實測確認:Claude 5 系模型拒收 temperature
|
(2026-08-05 實測確認:Claude 5 系模型拒收 temperature
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ $3/$15、opus-4-6 $5/$25、opus-5 與 fable-5 $10/$50)
|
|||||||
| 2026-08-06 | 03-01-code | run2 | claude-sonnet-4-6 | msgbatch_01CxnwNLWzZbRpZK7UAdpb8i | 5 分 22 秒 | 1,625,458 | 364,098 | $5.17 | 現行(101 碼;883 首全數有效,零攔阻) |
|
| 2026-08-06 | 03-01-code | run2 | claude-sonnet-4-6 | msgbatch_01CxnwNLWzZbRpZK7UAdpb8i | 5 分 22 秒 | 1,625,458 | 364,098 | $5.17 | 現行(101 碼;883 首全數有效,零攔阻) |
|
||||||
| 2026-08-06 | 03-02-arbitration | — | claude-sonnet-4-6 | msgbatch_019xcQXwrbwDGFc9nE5M8AjE | 4 分 0 秒 | 763,193 | 42,389 | $1.46 | 已取代(2 首遭內容過濾攔阻、13 首輸出夾帶散文;定義檔修訂後重跑) |
|
| 2026-08-06 | 03-02-arbitration | — | claude-sonnet-4-6 | msgbatch_019xcQXwrbwDGFc9nE5M8AjE | 4 分 0 秒 | 763,193 | 42,389 | $1.46 | 已取代(2 首遭內容過濾攔阻、13 首輸出夾帶散文;定義檔修訂後重跑) |
|
||||||
| 2026-08-06 | 03-02-arbitration | — | claude-sonnet-4-6 | msgbatch_01N7bDbXRSfAVUzzaj2thKeR | 4 分 20 秒 | 781,037 | 39,315 | $1.47 | 現行(644 首全數有效,零攔阻;保留 1,481/送裁 1,699) |
|
| 2026-08-06 | 03-02-arbitration | — | claude-sonnet-4-6 | msgbatch_01N7bDbXRSfAVUzzaj2thKeR | 4 分 20 秒 | 781,037 | 39,315 | $1.47 | 現行(644 首全數有效,零攔阻;保留 1,481/送裁 1,699) |
|
||||||
|
|
||||||
| 2026-08-06 | 03-code | run3 | claude-sonnet-4-6 | msgbatch_01KnkCaGETnFJrPddrxZTYHA | 6 分 26 秒 | 1,625,458 | 363,840 | $5.17 | 現行(101 碼;883 首全數有效,零攔阻) |
|
| 2026-08-06 | 03-code | run3 | claude-sonnet-4-6 | msgbatch_01KnkCaGETnFJrPddrxZTYHA | 6 分 26 秒 | 1,625,458 | 363,840 | $5.17 | 現行(101 碼;883 首全數有效,零攔阻) |
|
||||||
|
|
||||||
累計支出:$63.22。
|
累計支出:$63.22。
|
||||||
|
|||||||
Binary file not shown.
@@ -40,14 +40,6 @@ spelling, except for the names listed in
|
|||||||
``ArtistImporter.CANONICAL_ARTIST_NAMES``, which always store the
|
``ArtistImporter.CANONICAL_ARTIST_NAMES``, which always store the
|
||||||
canonical spelling regardless of which variant is seen first.
|
canonical spelling regardless of which variant is seen first.
|
||||||
|
|
||||||
Once the artists carry their captured attributes, every song
|
|
||||||
takes a performer gender derived from the genders of the
|
|
||||||
performing artists credited on it, primary and featured alike. A
|
|
||||||
credited artist without an artist type -- a label, a brand, or a
|
|
||||||
producer collective -- is not a performing act: it has no voice,
|
|
||||||
so its gender is inapplicable, and it takes no part in the
|
|
||||||
derivation. See `PerformerGenderDeriver.performer_gender`.
|
|
||||||
|
|
||||||
On a successful build, two review CSV files, ``songs.csv`` and
|
On a successful build, two review CSV files, ``songs.csv`` and
|
||||||
``artists.csv``, are (re)written under the given output directory,
|
``artists.csv``, are (re)written under the given output directory,
|
||||||
mirroring the stored songs and artists without their IDs; see
|
mirroring the stored songs and artists without their IDs; see
|
||||||
@@ -319,7 +311,6 @@ class ArtistImporter:
|
|||||||
"cris mj": "Cris MJ",
|
"cris mj": "Cris MJ",
|
||||||
"mariah the scientist": "Mariah the Scientist",
|
"mariah the scientist": "Mariah the Scientist",
|
||||||
"surf mesa": "Surf Mesa",
|
"surf mesa": "Surf Mesa",
|
||||||
"pinkfong": "Hope Segoine",
|
|
||||||
}
|
}
|
||||||
"""The canonical artist spellings, keyed by the case-folded
|
"""The canonical artist spellings, keyed by the case-folded
|
||||||
identity."""
|
identity."""
|
||||||
@@ -618,71 +609,6 @@ class CaptureImporter:
|
|||||||
setattr(artist, attribute, row[column])
|
setattr(artist, attribute, row[column])
|
||||||
|
|
||||||
|
|
||||||
class PerformerGenderDeriver:
|
|
||||||
"""The performer-gender job: derives the song-level performer
|
|
||||||
gender from the genders of the credited artists that are
|
|
||||||
performing acts, a credited artist without an artist type
|
|
||||||
taking no part."""
|
|
||||||
|
|
||||||
MIXED: str = "mixed"
|
|
||||||
"""The performer gender of a song whose performing credited
|
|
||||||
artists do not all share one gender."""
|
|
||||||
|
|
||||||
def __init__(self, session: Session) -> None:
|
|
||||||
"""Initialize the deriver.
|
|
||||||
|
|
||||||
:param session: The database session.
|
|
||||||
"""
|
|
||||||
self.__session: Session = session
|
|
||||||
|
|
||||||
def derive_performer_genders(self) -> None:
|
|
||||||
"""Set the performer gender of every stored song.
|
|
||||||
|
|
||||||
Reads the songs back from the database, including any songs
|
|
||||||
pending in the same session, and sets
|
|
||||||
``Song.performer_gender`` from the genders of the artists
|
|
||||||
credited on the song, primary and featured alike, that have
|
|
||||||
an artist type (see `performer_gender`). A credited artist
|
|
||||||
without an artist type is not a performing act and takes no
|
|
||||||
part. When the method returns, the derived performer
|
|
||||||
genders are queryable in the session.
|
|
||||||
|
|
||||||
:return: None.
|
|
||||||
"""
|
|
||||||
song: Song
|
|
||||||
for song in self.__session.scalars(sa.select(Song)):
|
|
||||||
song.performer_gender = self.performer_gender(
|
|
||||||
[x.artist.gender for x in song.song_artists
|
|
||||||
if x.artist.type])
|
|
||||||
self.__session.flush()
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def performer_gender(
|
|
||||||
cls, genders: Iterable[str | None]) -> str | None:
|
|
||||||
"""Combine the performing artists' genders into one value.
|
|
||||||
|
|
||||||
A gender that is None or empty counts as unknown. Two or
|
|
||||||
more distinct known genders give ``MIXED``, an unknown one
|
|
||||||
notwithstanding, as an unknown cannot undo a disagreement.
|
|
||||||
A single known gender shared by every given artist gives
|
|
||||||
that gender. Anything else -- a single known gender
|
|
||||||
alongside an unknown one, no known gender at all, or no
|
|
||||||
gender given at all -- gives None.
|
|
||||||
|
|
||||||
:param genders: The genders of the performing artists
|
|
||||||
credited on one song, in any order.
|
|
||||||
:return: The performer gender of the song, or None when it
|
|
||||||
is undetermined.
|
|
||||||
"""
|
|
||||||
values: list[str | None] = list(genders)
|
|
||||||
known: set[str] = {x for x in values if x}
|
|
||||||
if len(known) > 1:
|
|
||||||
return cls.MIXED
|
|
||||||
if len(known) == 1 and all(x for x in values):
|
|
||||||
return known.pop()
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
class CodingImporter:
|
class CodingImporter:
|
||||||
"""The coding-import job: loads the settled coding table onto
|
"""The coding-import job: loads the settled coding table onto
|
||||||
the stored songs."""
|
the stored songs."""
|
||||||
@@ -834,8 +760,7 @@ def reset_store(session: Session) -> None:
|
|||||||
class CSVExporter:
|
class CSVExporter:
|
||||||
"""Writes the review CSV files mirroring the working store."""
|
"""Writes the review CSV files mirroring the working store."""
|
||||||
|
|
||||||
__SONGS_HEADER: tuple[str, ...] = (
|
__SONGS_HEADER: tuple[str, ...] = ("Title", "Artists", "Positions")
|
||||||
"Title", "Artists", "Positions", "Performer Gender")
|
|
||||||
"""The header row of ``songs.csv``, for human readers."""
|
"""The header row of ``songs.csv``, for human readers."""
|
||||||
__ARTISTS_HEADER: tuple[str, ...] = (
|
__ARTISTS_HEADER: tuple[str, ...] = (
|
||||||
"Name", "Wikidata QID", "Gender", "Type", "Genre", "Country",
|
"Name", "Wikidata QID", "Gender", "Type", "Genre", "Country",
|
||||||
@@ -927,8 +852,7 @@ class CSVExporter:
|
|||||||
for song in songs:
|
for song in songs:
|
||||||
row: list[str] = [
|
row: list[str] = [
|
||||||
song.title, song.artist_credit,
|
song.title, song.artist_credit,
|
||||||
self.__song_positions(song),
|
self.__song_positions(song)]
|
||||||
song.performer_gender or ""]
|
|
||||||
rows.append(row)
|
rows.append(row)
|
||||||
return rows
|
return rows
|
||||||
|
|
||||||
@@ -988,7 +912,6 @@ def main(argv: list[str] | None = None) -> int:
|
|||||||
ArtistImporter(session).import_artists()
|
ArtistImporter(session).import_artists()
|
||||||
CaptureImporter(session).import_captures(
|
CaptureImporter(session).import_captures(
|
||||||
args.lyrics_dir, args.wikidata_csv)
|
args.lyrics_dir, args.wikidata_csv)
|
||||||
PerformerGenderDeriver(session).derive_performer_genders()
|
|
||||||
CodingImporter(session).import_codings(args.codings)
|
CodingImporter(session).import_codings(args.codings)
|
||||||
counts = StoreCounts.get_instance(session)
|
counts = StoreCounts.get_instance(session)
|
||||||
CSVExporter(session, args.derived_dir).write()
|
CSVExporter(session, args.derived_dir).write()
|
||||||
|
|||||||
@@ -4,33 +4,29 @@
|
|||||||
# imacat@mail.imacat.idv.tw (imacat), 2026/7/31
|
# imacat@mail.imacat.idv.tw (imacat), 2026/7/31
|
||||||
"""The fetcher of the artist metadata.
|
"""The fetcher of the artist metadata.
|
||||||
|
|
||||||
Fetches the metadata of the artists that the Wikidata artist
|
Fetches the metadata of the artists without a snapshot row from
|
||||||
snapshot CSV, given as the positional command-line argument, does
|
Wikidata into the capture layer: the Wikidata artist snapshot
|
||||||
not resolve yet -- the artists without a row, and the artists
|
CSV, given as the positional command-line argument. The working
|
||||||
whose row has a blank gender -- from Wikidata into the capture
|
store is only read, never written; the ``build-db`` subcommand
|
||||||
layer. The working store is only read, never written; the
|
assembles the captured files into the store on the next rebuild.
|
||||||
``build-db`` subcommand assembles the captured files into the
|
|
||||||
store on the next rebuild.
|
|
||||||
|
|
||||||
Every fetched row is meant for later human verification: the
|
Every fetched row is meant for later human verification: the
|
||||||
description of the resolved item is recorded in the note column
|
description of the resolved item is recorded in the note column
|
||||||
so that a bad match can be spotted. An unresolved artist or an
|
so that a bad match can be spotted. An unresolved artist or an
|
||||||
error on one artist is noted on its row and does not fail the
|
error on one artist is noted on its row and does not fail the
|
||||||
run. A row whose name is no longer an artist of the store is
|
run.
|
||||||
dropped from the snapshot and reported on the standard error.
|
|
||||||
"""
|
"""
|
||||||
import argparse
|
import argparse
|
||||||
import csv
|
import csv
|
||||||
import enum
|
import enum
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import re
|
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import urllib.error
|
import urllib.error
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
import urllib.request
|
import urllib.request
|
||||||
from collections.abc import Container, Sequence
|
from collections.abc import Sequence
|
||||||
from dataclasses import asdict, dataclass, field, fields
|
from dataclasses import asdict, dataclass, field, fields
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Literal, TextIO
|
from typing import Any, Literal, TextIO
|
||||||
@@ -87,23 +83,18 @@ NOTE_NOT_FOUND: str = "not found"
|
|||||||
"""The note sentinel of an artist without a resolved Wikidata
|
"""The note sentinel of an artist without a resolved Wikidata
|
||||||
item, written to the snapshot and read back for the
|
item, written to the snapshot and read back for the
|
||||||
classification."""
|
classification."""
|
||||||
CORPUS_START_YEAR: int = 2016
|
PINNED_QIDS: dict[str, str] = {
|
||||||
"""The first year of the corpus window: a member who left a group
|
"Pinkfong": "Q55735607",
|
||||||
before it never performed a corpus song."""
|
}
|
||||||
MIXED_GENDER: str = "mixed"
|
|
||||||
"""The gender recorded for a group whose members do not share one
|
|
||||||
gender."""
|
|
||||||
TIME_YEAR_PATTERN: re.Pattern[str] = re.compile(r"^[+-]?\d+")
|
|
||||||
"""The leading year of a Wikidata time value."""
|
|
||||||
PINNED_QIDS: dict[str, str] = {}
|
|
||||||
"""The last-resort pinned item IDs, keyed by the artist name.
|
"""The last-resort pinned item IDs, keyed by the artist name.
|
||||||
|
|
||||||
An entry is for an artist the algorithm documented on
|
Each entry is for an artist the algorithm documented on
|
||||||
``ArtistFetcher`` is structurally unable to resolve, with its
|
``ArtistFetcher`` is structurally unable to resolve, with its
|
||||||
justification recorded here. Currently empty: the only pin ever
|
justification recorded here:
|
||||||
needed, "Pinkfong" (typed as a brand, which the type gate
|
|
||||||
excludes by design), became moot when the store's artist entity
|
- "Pinkfong": the only charting act whose item is typed as a
|
||||||
behind that credit was identified as Hope Segoine.
|
brand (P31 = Q431289), which the type gate (human / musical
|
||||||
|
ensemble / original cast) excludes by design.
|
||||||
|
|
||||||
A pinned name skips the candidate retrieval and corroboration
|
A pinned name skips the candidate retrieval and corroboration
|
||||||
steps; its item ID is used directly."""
|
steps; its item ID is used directly."""
|
||||||
@@ -152,53 +143,6 @@ SNAPSHOT_FIELDS: Sequence[str] = tuple(
|
|||||||
"""The header columns of the Wikidata artist snapshot CSV file."""
|
"""The header columns of the Wikidata artist snapshot CSV file."""
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class GroupMember:
|
|
||||||
"""One has-part member of a Wikidata group item."""
|
|
||||||
|
|
||||||
qid: str
|
|
||||||
"""The item ID of the member."""
|
|
||||||
start_years: list[int] = field(default_factory=list)
|
|
||||||
"""The years the membership started, from the start-time
|
|
||||||
qualifiers of the statement."""
|
|
||||||
end_years: list[int] = field(default_factory=list)
|
|
||||||
"""The years the membership ended, from the end-time
|
|
||||||
qualifiers of the statement."""
|
|
||||||
|
|
||||||
def performed(self) -> bool:
|
|
||||||
"""Return whether the member was in the group within the
|
|
||||||
corpus window.
|
|
||||||
|
|
||||||
A membership that ended before the first year of the
|
|
||||||
corpus window is taken up again when a later start time
|
|
||||||
says so: Wikidata models a departure and a re-join as
|
|
||||||
several start times on one membership statement.
|
|
||||||
|
|
||||||
:return: False when the membership ended before the first
|
|
||||||
year of the corpus window and did not start again
|
|
||||||
afterwards, True otherwise.
|
|
||||||
"""
|
|
||||||
if len(self.end_years) == 0:
|
|
||||||
return True
|
|
||||||
last_end: int = max(self.end_years)
|
|
||||||
if last_end >= CORPUS_START_YEAR:
|
|
||||||
return True
|
|
||||||
if len(self.start_years) == 0:
|
|
||||||
return False
|
|
||||||
return max(self.start_years) > last_end
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class MemberClaims:
|
|
||||||
"""The item-ID claim targets of a Wikidata group member item
|
|
||||||
that decide the gender of its group."""
|
|
||||||
|
|
||||||
instance_of_ids: list[str] = field(default_factory=list)
|
|
||||||
"""The item IDs of the instance-of targets."""
|
|
||||||
gender_ids: list[str] = field(default_factory=list)
|
|
||||||
"""The item IDs of the gender targets."""
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ArtistClaims:
|
class ArtistClaims:
|
||||||
"""The item-ID claim targets and description of a Wikidata
|
"""The item-ID claim targets and description of a Wikidata
|
||||||
@@ -214,8 +158,6 @@ class ArtistClaims:
|
|||||||
"""The item IDs of the country-of-citizenship targets."""
|
"""The item IDs of the country-of-citizenship targets."""
|
||||||
origin_country_ids: list[str] = field(default_factory=list)
|
origin_country_ids: list[str] = field(default_factory=list)
|
||||||
"""The item IDs of the country-of-origin targets."""
|
"""The item IDs of the country-of-origin targets."""
|
||||||
members: list[GroupMember] = field(default_factory=list)
|
|
||||||
"""The has-part members, in the statement order."""
|
|
||||||
description: str = ""
|
description: str = ""
|
||||||
"""The English description of the item, or empty when
|
"""The English description of the item, or empty when
|
||||||
absent."""
|
absent."""
|
||||||
@@ -278,17 +220,6 @@ class ArtistFetcher:
|
|||||||
|
|
||||||
As a last resort, a name listed in ``PINNED_QIDS`` uses its
|
As a last resort, a name listed in ``PINNED_QIDS`` uses its
|
||||||
pinned item ID directly, skipping every step above.
|
pinned item ID directly, skipping every step above.
|
||||||
|
|
||||||
A resolved item with no gender of its own that is typed as a
|
|
||||||
group takes the gender of its has-part members: the parts
|
|
||||||
that left the group before the first year of the corpus
|
|
||||||
window without re-joining it afterwards and the parts that
|
|
||||||
are not human are dropped, and the genders of the remaining
|
|
||||||
members decide -- one shared gender becomes the group's,
|
|
||||||
differing genders make it ``mixed``, and a member with no
|
|
||||||
gender of its own, or no member left, leaves the group's
|
|
||||||
gender unresolved. The basis of a derived gender is recorded
|
|
||||||
in the note.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
@@ -469,10 +400,6 @@ class ArtistFetcher:
|
|||||||
def __resolve(self, snapshot: ArtistSnapshot) -> None:
|
def __resolve(self, snapshot: ArtistSnapshot) -> None:
|
||||||
"""Resolve the claims of an artist into the snapshot.
|
"""Resolve the claims of an artist into the snapshot.
|
||||||
|
|
||||||
A group with no gender of its own takes the gender
|
|
||||||
derived from its members, with the basis appended to the
|
|
||||||
note.
|
|
||||||
|
|
||||||
:param snapshot: The snapshot, with the QID set.
|
:param snapshot: The snapshot, with the QID set.
|
||||||
:return: None.
|
:return: None.
|
||||||
:raises OSError: On a non-retryable HTTP or network
|
:raises OSError: On a non-retryable HTTP or network
|
||||||
@@ -497,94 +424,6 @@ class ArtistFetcher:
|
|||||||
labels[x] for x in claims.genre_ids if x in labels)
|
labels[x] for x in claims.genre_ids if x in labels)
|
||||||
if len(country_ids) > 0:
|
if len(country_ids) > 0:
|
||||||
snapshot.country = labels.get(country_ids[0], "")
|
snapshot.country = labels.get(country_ids[0], "")
|
||||||
if len(claims.gender_ids) == 0 \
|
|
||||||
and snapshot.type == ArtistType.GROUP:
|
|
||||||
self.__derive_gender(snapshot, claims.members)
|
|
||||||
|
|
||||||
def __derive_gender(self, snapshot: ArtistSnapshot,
|
|
||||||
members: Sequence[GroupMember]) -> None:
|
|
||||||
"""Derive the gender of a group from its members.
|
|
||||||
|
|
||||||
Sets the gender to the shared gender label of the
|
|
||||||
members, or to ``mixed`` when the members do not share
|
|
||||||
one gender, and appends the basis -- each member and its
|
|
||||||
gender -- to the note. The gender and the note are left
|
|
||||||
untouched when a member has no gender of its own, or when
|
|
||||||
no member is left once the members who left the group
|
|
||||||
before the corpus window without re-joining it afterwards
|
|
||||||
and the parts that are not human are dropped.
|
|
||||||
|
|
||||||
:param snapshot: The snapshot of the group.
|
|
||||||
:param members: The has-part members of the group item.
|
|
||||||
:return: None.
|
|
||||||
:raises OSError: On a non-retryable HTTP or network
|
|
||||||
error.
|
|
||||||
:raises RetryExhausted: When the retries on a
|
|
||||||
transient error are exhausted.
|
|
||||||
:raises ValueError: On a JSON decoding error.
|
|
||||||
"""
|
|
||||||
qids: list[str] = [x.qid for x in members if x.performed()]
|
|
||||||
if len(qids) == 0:
|
|
||||||
return
|
|
||||||
claims: dict[str, MemberClaims] \
|
|
||||||
= self.__get_member_claims(qids)
|
|
||||||
genders: list[tuple[str, str]] = []
|
|
||||||
qid: str
|
|
||||||
for qid in qids:
|
|
||||||
member: MemberClaims = claims.get(qid, MemberClaims())
|
|
||||||
if HUMAN_QID not in member.instance_of_ids:
|
|
||||||
continue
|
|
||||||
if len(member.gender_ids) == 0:
|
|
||||||
return
|
|
||||||
genders.append((qid, member.gender_ids[0]))
|
|
||||||
if len(genders) == 0:
|
|
||||||
return
|
|
||||||
labels: dict[str, str] = self.__get_labels(
|
|
||||||
[x[1] for x in genders], any_language=True)
|
|
||||||
unique: set[str] = {x[1] for x in genders}
|
|
||||||
snapshot.gender = labels[genders[0][1]] \
|
|
||||||
if len(unique) == 1 else MIXED_GENDER
|
|
||||||
basis: str = "gender derived from members: " + "; ".join(
|
|
||||||
f"{x} {labels[y]}" for x, y in genders)
|
|
||||||
snapshot.note = f"{snapshot.note}; {basis}" \
|
|
||||||
if snapshot.note != "" else basis
|
|
||||||
|
|
||||||
def __get_member_claims(self, qids: Sequence[str]) \
|
|
||||||
-> dict[str, MemberClaims]:
|
|
||||||
"""Fetch the claims of the group member items in one
|
|
||||||
batch.
|
|
||||||
|
|
||||||
:param qids: The item IDs, duplicates allowed.
|
|
||||||
:return: The instance-of and gender targets, keyed by the
|
|
||||||
item ID; the items without claims are left out.
|
|
||||||
:raises OSError: On a non-retryable HTTP or network
|
|
||||||
error.
|
|
||||||
:raises RetryExhausted: When the retries on a
|
|
||||||
transient error are exhausted.
|
|
||||||
:raises ValueError: On a JSON decoding error.
|
|
||||||
"""
|
|
||||||
unique: list[str] = list(dict.fromkeys(qids))
|
|
||||||
if len(unique) == 0:
|
|
||||||
return {}
|
|
||||||
data: Any = self.__get_json({
|
|
||||||
"action": "wbgetentities", "ids": "|".join(unique),
|
|
||||||
"props": "claims", "format": "json"})
|
|
||||||
entities: Any = data.get("entities") \
|
|
||||||
if isinstance(data, dict) else None
|
|
||||||
if not isinstance(entities, dict):
|
|
||||||
return {}
|
|
||||||
members: dict[str, MemberClaims] = {}
|
|
||||||
qid: str
|
|
||||||
for qid in unique:
|
|
||||||
entity: Any = entities.get(qid)
|
|
||||||
claims: Any = entity.get("claims") \
|
|
||||||
if isinstance(entity, dict) else None
|
|
||||||
if not isinstance(claims, dict):
|
|
||||||
continue
|
|
||||||
members[qid] = MemberClaims(
|
|
||||||
instance_of_ids=self.__targets(claims.get("P31")),
|
|
||||||
gender_ids=self.__targets(claims.get("P21")))
|
|
||||||
return members
|
|
||||||
|
|
||||||
def __get_claims(self, qid: str) -> ArtistClaims:
|
def __get_claims(self, qid: str) -> ArtistClaims:
|
||||||
"""Fetch the claims and the description of a Wikidata
|
"""Fetch the claims and the description of a Wikidata
|
||||||
@@ -592,8 +431,8 @@ class ArtistFetcher:
|
|||||||
|
|
||||||
:param qid: The item ID.
|
:param qid: The item ID.
|
||||||
:return: The item-ID targets of the gender, instance-of,
|
:return: The item-ID targets of the gender, instance-of,
|
||||||
genre, country, and has-part properties, and the
|
genre, and country properties, and the English
|
||||||
English description.
|
description.
|
||||||
:raises OSError: On a non-retryable HTTP or network
|
:raises OSError: On a non-retryable HTTP or network
|
||||||
error.
|
error.
|
||||||
:raises RetryExhausted: When the retries on a
|
:raises RetryExhausted: When the retries on a
|
||||||
@@ -618,70 +457,8 @@ class ArtistFetcher:
|
|||||||
genre_ids=self.__targets(claims.get("P136")),
|
genre_ids=self.__targets(claims.get("P136")),
|
||||||
country_ids=self.__targets(claims.get("P27")),
|
country_ids=self.__targets(claims.get("P27")),
|
||||||
origin_country_ids=self.__targets(claims.get("P495")),
|
origin_country_ids=self.__targets(claims.get("P495")),
|
||||||
members=self.__members(claims.get("P527")),
|
|
||||||
description=self.__description(entity))
|
description=self.__description(entity))
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def __members(statements: Any) -> list[GroupMember]:
|
|
||||||
"""Extract the members of the has-part statements.
|
|
||||||
|
|
||||||
:param statements: The statements of the has-part
|
|
||||||
property, or None.
|
|
||||||
:return: The members, in the statement order, each with
|
|
||||||
the start and end years of its statement.
|
|
||||||
"""
|
|
||||||
if not isinstance(statements, list):
|
|
||||||
return []
|
|
||||||
members: list[GroupMember] = []
|
|
||||||
statement: Any
|
|
||||||
for statement in statements:
|
|
||||||
if not isinstance(statement, dict):
|
|
||||||
continue
|
|
||||||
qids: list[str] = ArtistFetcher.__targets([statement])
|
|
||||||
if len(qids) == 0:
|
|
||||||
continue
|
|
||||||
members.append(GroupMember(
|
|
||||||
qid=qids[0],
|
|
||||||
start_years=ArtistFetcher.__years(
|
|
||||||
statement, "P580"),
|
|
||||||
end_years=ArtistFetcher.__years(
|
|
||||||
statement, "P582")))
|
|
||||||
return members
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def __years(statement: dict[str, Any],
|
|
||||||
qualifier: str) -> list[int]:
|
|
||||||
"""Extract the years of a time qualifier of a statement.
|
|
||||||
|
|
||||||
:param statement: The statement data.
|
|
||||||
:param qualifier: The property of the time qualifier.
|
|
||||||
:return: The years of the qualifiers, in the qualifier
|
|
||||||
order; the qualifiers of a coarser precision than the
|
|
||||||
year are read as their year all the same.
|
|
||||||
"""
|
|
||||||
qualifiers: Any = statement.get("qualifiers")
|
|
||||||
snaks: Any = qualifiers.get(qualifier) \
|
|
||||||
if isinstance(qualifiers, dict) else None
|
|
||||||
if not isinstance(snaks, list):
|
|
||||||
return []
|
|
||||||
years: list[int] = []
|
|
||||||
snak: Any
|
|
||||||
for snak in snaks:
|
|
||||||
if not isinstance(snak, dict):
|
|
||||||
continue
|
|
||||||
datavalue: Any = snak.get("datavalue")
|
|
||||||
if not isinstance(datavalue, dict):
|
|
||||||
continue
|
|
||||||
value: Any = datavalue.get("value")
|
|
||||||
if not isinstance(value, dict) \
|
|
||||||
or not isinstance(value.get("time"), str):
|
|
||||||
continue
|
|
||||||
match: re.Match[str] | None \
|
|
||||||
= TIME_YEAR_PATTERN.match(value["time"])
|
|
||||||
if match is not None:
|
|
||||||
years.append(int(match.group()))
|
|
||||||
return years
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __description(entity: Any) -> str:
|
def __description(entity: Any) -> str:
|
||||||
"""Extract the English description of a Wikidata entity.
|
"""Extract the English description of a Wikidata entity.
|
||||||
@@ -726,20 +503,13 @@ class ArtistFetcher:
|
|||||||
ids.append(value["id"])
|
ids.append(value["id"])
|
||||||
return ids
|
return ids
|
||||||
|
|
||||||
def __get_labels(self, qids: Sequence[str],
|
def __get_labels(self, qids: Sequence[str]) \
|
||||||
any_language: bool = False) \
|
|
||||||
-> dict[str, str]:
|
-> dict[str, str]:
|
||||||
"""Resolve item IDs to their labels in one batch.
|
"""Resolve item IDs to their English labels in one batch.
|
||||||
|
|
||||||
:param qids: The item IDs, duplicates allowed.
|
:param qids: The item IDs, duplicates allowed.
|
||||||
:param any_language: True to accept the label of another
|
:return: The English labels, keyed by the item ID; the
|
||||||
language for an item without an English label, and to
|
items without an English label are left out.
|
||||||
fall back to the bare item ID for an item without any
|
|
||||||
label, so that every requested item ID is a key of
|
|
||||||
the result.
|
|
||||||
:return: The labels, keyed by the item ID; without
|
|
||||||
``any_language``, the items without an English label
|
|
||||||
are left out.
|
|
||||||
:raises OSError: On a non-retryable HTTP or network
|
:raises OSError: On a non-retryable HTTP or network
|
||||||
error.
|
error.
|
||||||
:raises RetryExhausted: When the retries on a
|
:raises RetryExhausted: When the retries on a
|
||||||
@@ -749,51 +519,27 @@ class ArtistFetcher:
|
|||||||
unique: list[str] = list(dict.fromkeys(qids))
|
unique: list[str] = list(dict.fromkeys(qids))
|
||||||
if len(unique) == 0:
|
if len(unique) == 0:
|
||||||
return {}
|
return {}
|
||||||
params: dict[str, str] = {
|
data: Any = self.__get_json({
|
||||||
"action": "wbgetentities", "ids": "|".join(unique),
|
"action": "wbgetentities", "ids": "|".join(unique),
|
||||||
"props": "labels", "format": "json"}
|
"props": "labels", "languages": "en",
|
||||||
if not any_language:
|
"format": "json"})
|
||||||
params["languages"] = "en"
|
|
||||||
data: Any = self.__get_json(params)
|
|
||||||
entities: Any = data.get("entities") \
|
entities: Any = data.get("entities") \
|
||||||
if isinstance(data, dict) else None
|
if isinstance(data, dict) else None
|
||||||
if not isinstance(entities, dict):
|
if not isinstance(entities, dict):
|
||||||
entities = {}
|
return {}
|
||||||
labels: dict[str, str] = {}
|
labels: dict[str, str] = {}
|
||||||
qid: str
|
qid: str
|
||||||
for qid in unique:
|
for qid in unique:
|
||||||
label: str = self.__label(
|
entity: Any = entities.get(qid)
|
||||||
entities.get(qid), any_language)
|
if not isinstance(entity, dict) \
|
||||||
if label == "" and any_language:
|
or not isinstance(entity.get("labels"), dict):
|
||||||
label = qid
|
continue
|
||||||
if label != "":
|
label: Any = entity["labels"].get("en")
|
||||||
labels[qid] = label
|
if isinstance(label, dict) \
|
||||||
|
and isinstance(label.get("value"), str):
|
||||||
|
labels[qid] = label["value"]
|
||||||
return labels
|
return labels
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def __label(entity: Any, any_language: bool) -> str:
|
|
||||||
"""Extract the label of a Wikidata entity.
|
|
||||||
|
|
||||||
:param entity: The entity data, or None.
|
|
||||||
:param any_language: True to accept the label of another
|
|
||||||
language when there is no English label.
|
|
||||||
:return: The label, or the empty string when there is
|
|
||||||
none to take.
|
|
||||||
"""
|
|
||||||
labels: Any = entity.get("labels") \
|
|
||||||
if isinstance(entity, dict) else None
|
|
||||||
if not isinstance(labels, dict):
|
|
||||||
return ""
|
|
||||||
candidates: list[Any] = [labels.get("en")]
|
|
||||||
if any_language:
|
|
||||||
candidates.extend(labels.values())
|
|
||||||
candidate: Any
|
|
||||||
for candidate in candidates:
|
|
||||||
if isinstance(candidate, dict) \
|
|
||||||
and isinstance(candidate.get("value"), str):
|
|
||||||
return candidate["value"]
|
|
||||||
return ""
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __artist_type(type_ids: Sequence[str],
|
def __artist_type(type_ids: Sequence[str],
|
||||||
labels: dict[str, str]) \
|
labels: dict[str, str]) \
|
||||||
@@ -1023,31 +769,20 @@ def append_row(file: TextIO, snapshot: ArtistSnapshot) -> None:
|
|||||||
file.flush()
|
file.flush()
|
||||||
|
|
||||||
|
|
||||||
def write_snapshot(file: TextIO, names: Container[str]) -> None:
|
def write_snapshot(file: TextIO) -> None:
|
||||||
"""Rewrite a snapshot CSV file handle sorted by artist name.
|
"""Rewrite a snapshot CSV file handle sorted by artist name.
|
||||||
|
|
||||||
The rows are ordered by the case-folded artist name, matching
|
Reads back the current rows and rewrites the header and the
|
||||||
the convention of the derived ``artists.csv``. An artist
|
rows ordered by the case-folded artist name, matching the
|
||||||
keeps one row only, the last one of the file, so that a
|
convention of the derived ``artists.csv``.
|
||||||
re-fetched artist replaces its earlier row. A row whose name
|
|
||||||
is not an artist of the store is dropped and reported on the
|
|
||||||
standard error.
|
|
||||||
|
|
||||||
:param file: The open, seekable snapshot CSV file.
|
:param file: The open, seekable snapshot CSV file.
|
||||||
:param names: The artist names of the working store.
|
|
||||||
:return: None.
|
:return: None.
|
||||||
:raises OSError: When the file cannot be read or written.
|
:raises OSError: When the file cannot be read or written.
|
||||||
"""
|
"""
|
||||||
kept: dict[str, dict[str, str]] = {}
|
|
||||||
row: dict[str, str]
|
|
||||||
for row in read_snapshot_rows(file):
|
|
||||||
if row["name"] not in names:
|
|
||||||
print(f"dropped stale row \"{row['name']}\":"
|
|
||||||
" no such artist in the store", file=sys.stderr)
|
|
||||||
continue
|
|
||||||
kept[row["name"]] = row
|
|
||||||
ordered: list[dict[str, str]] = sorted(
|
ordered: list[dict[str, str]] = sorted(
|
||||||
kept.values(), key=lambda x: x["name"].casefold())
|
read_snapshot_rows(file),
|
||||||
|
key=lambda row: row["name"].casefold())
|
||||||
file.seek(0)
|
file.seek(0)
|
||||||
file.truncate()
|
file.truncate()
|
||||||
writer: csv.DictWriter[str] = csv.DictWriter(
|
writer: csv.DictWriter[str] = csv.DictWriter(
|
||||||
@@ -1077,14 +812,11 @@ def main(argv: list[str] | None = None) -> int:
|
|||||||
with open(args.wikidata_csv, "a+", encoding="utf-8",
|
with open(args.wikidata_csv, "a+", encoding="utf-8",
|
||||||
newline="") as csv_file:
|
newline="") as csv_file:
|
||||||
done: set[str] = {x["name"] for x in
|
done: set[str] = {x["name"] for x in
|
||||||
read_snapshot_rows(csv_file)
|
read_snapshot_rows(csv_file)}
|
||||||
if x["gender"] != ""}
|
|
||||||
ensure_snapshot_header(csv_file)
|
ensure_snapshot_header(csv_file)
|
||||||
names: set[str] = set()
|
|
||||||
artist: Artist
|
artist: Artist
|
||||||
for artist in session.scalars(
|
for artist in session.scalars(
|
||||||
sa.select(Artist).order_by(Artist.id)):
|
sa.select(Artist).order_by(Artist.id)):
|
||||||
names.add(artist.name)
|
|
||||||
if artist.name in done:
|
if artist.name in done:
|
||||||
continue
|
continue
|
||||||
titles: list[str] = read_artist_titles(
|
titles: list[str] = read_artist_titles(
|
||||||
@@ -1103,7 +835,7 @@ def main(argv: list[str] | None = None) -> int:
|
|||||||
fetched += 1
|
fetched += 1
|
||||||
print(f"artist \"{artist.name}\": {status}",
|
print(f"artist \"{artist.name}\": {status}",
|
||||||
file=sys.stderr)
|
file=sys.stderr)
|
||||||
write_snapshot(csv_file, names)
|
write_snapshot(csv_file)
|
||||||
except (OSError, sa.exc.SQLAlchemyError) as error:
|
except (OSError, sa.exc.SQLAlchemyError) as error:
|
||||||
print(f"error: {error}", file=sys.stderr)
|
print(f"error: {error}", file=sys.stderr)
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -41,11 +41,6 @@ class Song(Base):
|
|||||||
"""The combined artist credit string as printed on the chart."""
|
"""The combined artist credit string as printed on the chart."""
|
||||||
lyrics: Mapped[str | None]
|
lyrics: Mapped[str | None]
|
||||||
"""The lyrics text, when available."""
|
"""The lyrics text, when available."""
|
||||||
performer_gender: Mapped[str | None]
|
|
||||||
"""The gender of the credited performers taken together:
|
|
||||||
"mixed" when they disagree, their common gender when every
|
|
||||||
credited artist's gender is known and they agree, and None
|
|
||||||
otherwise."""
|
|
||||||
chart_entries: Mapped[list[ChartEntry]] \
|
chart_entries: Mapped[list[ChartEntry]] \
|
||||||
= relationship(back_populates="song")
|
= relationship(back_populates="song")
|
||||||
"""The chart entries of the song."""
|
"""The chart entries of the song."""
|
||||||
|
|||||||
@@ -292,14 +292,6 @@ class TestBuildDB(unittest.TestCase):
|
|||||||
"""
|
"""
|
||||||
self.__chart.write_text(content, encoding="utf-8")
|
self.__chart.write_text(content, encoding="utf-8")
|
||||||
|
|
||||||
def __write_wikidata(self, content: str) -> None:
|
|
||||||
"""Write the Wikidata artist snapshot CSV fixture.
|
|
||||||
|
|
||||||
:param content: The CSV content.
|
|
||||||
:return: None.
|
|
||||||
"""
|
|
||||||
self.__wikidata.write_text(content, encoding="utf-8")
|
|
||||||
|
|
||||||
def __write_codings(self, content: str) -> None:
|
def __write_codings(self, content: str) -> None:
|
||||||
"""Write the coding CSV fixture.
|
"""Write the coding CSV fixture.
|
||||||
|
|
||||||
@@ -546,151 +538,6 @@ class TestBuildDB(unittest.TestCase):
|
|||||||
assert artist is not None
|
assert artist is not None
|
||||||
self.assertEqual(artist.name, "Surf Mesa")
|
self.assertEqual(artist.name, "Surf Mesa")
|
||||||
|
|
||||||
def test_canonical_pinkfong_resolves_to_hope_segoine(
|
|
||||||
self) -> None:
|
|
||||||
"""Test that a "Pinkfong" credit stores the artist named
|
|
||||||
"Hope Segoine", leaving the printed credit untouched."""
|
|
||||||
self.__write_chart(
|
|
||||||
"year,rank,title,artist\n"
|
|
||||||
"2016,1,Baby Shark,Pinkfong\n"
|
|
||||||
"2016,2,filler,Filler Artist\n"
|
|
||||||
"2017,1,filler2,Filler Artist Two\n"
|
|
||||||
"2017,2,filler3,Filler Artist Three\n")
|
|
||||||
status: int
|
|
||||||
stderr: str
|
|
||||||
status, stderr = self.__run_build()
|
|
||||||
self.assertEqual(status, 0)
|
|
||||||
session: Session = self.__session()
|
|
||||||
song: Song | None = session.scalar(
|
|
||||||
sa.select(Song).where(Song.title == "Baby Shark"))
|
|
||||||
assert song is not None
|
|
||||||
self.assertEqual(song.artist_credit, "Pinkfong")
|
|
||||||
self.assertEqual(
|
|
||||||
[x.artist.name for x in song.song_artists],
|
|
||||||
["Hope Segoine"])
|
|
||||||
|
|
||||||
GENDER_CHART_CSV: str = (
|
|
||||||
"year,rank,title,artist\n"
|
|
||||||
"2016,1,Mixed Song,\"Adele, Drake & Nobody\"\n"
|
|
||||||
"2016,2,Female Song,Adele & Taylor Swift\n"
|
|
||||||
"2017,1,Unknown Song,Adele featuring Nobody\n"
|
|
||||||
"2017,2,No Gender Song,Nobody Else\n")
|
|
||||||
"""The chart CSV fixture exercising the performer gender: a
|
|
||||||
disagreement with an unknown artist, an all-known agreement, an
|
|
||||||
agreement with an unknown artist, and no known gender."""
|
|
||||||
|
|
||||||
GENDER_WIKIDATA_CSV: str = (
|
|
||||||
"name,qid,gender,type,genre,country,note\n"
|
|
||||||
"Adele,Q2831,female,solo,pop,GB,\n"
|
|
||||||
"Drake,Q33240,male,solo,hip-hop,CA,\n"
|
|
||||||
"Taylor Swift,Q26876,female,solo,pop,US,\n"
|
|
||||||
"Nobody,,,solo,pop,US,\n"
|
|
||||||
"Nobody Else,,,solo,pop,US,\n")
|
|
||||||
"""The artist snapshot fixture for the performer gender, giving
|
|
||||||
"Nobody" and "Nobody Else" a performing type without a
|
|
||||||
gender."""
|
|
||||||
|
|
||||||
def __performer_genders(self) -> dict[str, str | None]:
|
|
||||||
"""Read the stored performer genders keyed by the titles.
|
|
||||||
|
|
||||||
:return: The stored performer genders, keyed by the song
|
|
||||||
titles.
|
|
||||||
"""
|
|
||||||
session: Session = self.__session()
|
|
||||||
return {x.title: x.performer_gender
|
|
||||||
for x in session.scalars(sa.select(Song))}
|
|
||||||
|
|
||||||
def test_performer_gender_derived(self) -> None:
|
|
||||||
"""Test the performer gender of every song: a disagreement
|
|
||||||
gives "mixed" even with an unknown artist, an all-known
|
|
||||||
agreement gives that gender, and an unknown artist otherwise
|
|
||||||
leaves it unset."""
|
|
||||||
self.__write_chart(self.GENDER_CHART_CSV)
|
|
||||||
self.__write_wikidata(self.GENDER_WIKIDATA_CSV)
|
|
||||||
status: int
|
|
||||||
stderr: str
|
|
||||||
status, stderr = self.__run_build(
|
|
||||||
"--wikidata-csv", str(self.__wikidata))
|
|
||||||
self.assertEqual(status, 0)
|
|
||||||
self.assertEqual(
|
|
||||||
self.__performer_genders(),
|
|
||||||
{"Mixed Song": "mixed",
|
|
||||||
"Female Song": "female",
|
|
||||||
"Unknown Song": None,
|
|
||||||
"No Gender Song": None})
|
|
||||||
|
|
||||||
def test_performer_gender_in_songs_csv(self) -> None:
|
|
||||||
"""Test that songs.csv mirrors the performer gender, empty
|
|
||||||
when it is unset."""
|
|
||||||
self.__write_chart(self.GENDER_CHART_CSV)
|
|
||||||
self.__write_wikidata(self.GENDER_WIKIDATA_CSV)
|
|
||||||
self.assertEqual(
|
|
||||||
self.__run_build("--wikidata-csv",
|
|
||||||
str(self.__wikidata))[0], 0)
|
|
||||||
rows: list[list[str]] = self.__read_csv_rows("songs.csv")
|
|
||||||
self.assertEqual(
|
|
||||||
[(row[0], row[3]) for row in rows],
|
|
||||||
[("Female Song", "female"),
|
|
||||||
("Mixed Song", "mixed"),
|
|
||||||
("No Gender Song", ""),
|
|
||||||
("Unknown Song", "")])
|
|
||||||
|
|
||||||
NON_PERFORMING_CHART_CSV: str = (
|
|
||||||
"year,rank,title,artist\n"
|
|
||||||
"2016,1,Lemonade,"
|
|
||||||
"Internet Money & Gunna Featuring Don Toliver\n"
|
|
||||||
"2016,2,Bruno,\"Adassa, Rhenzy Feliz & Encanto Cast\"\n"
|
|
||||||
"2017,1,Label Song,Internet Money & Encanto Cast\n"
|
|
||||||
"2017,2,filler,Filler Artist\n")
|
|
||||||
"""The chart CSV fixture exercising the non-performing credits:
|
|
||||||
a non-performing credit alongside agreeing performers, one
|
|
||||||
alongside disagreeing performers, and a song credited to
|
|
||||||
non-performing artists only."""
|
|
||||||
|
|
||||||
NON_PERFORMING_WIKIDATA_CSV: str = (
|
|
||||||
"name,qid,gender,type,genre,country,note\n"
|
|
||||||
"Gunna,Q55613105,male,solo,hip-hop,US,\n"
|
|
||||||
"Don Toliver,Q56513383,male,solo,hip-hop,US,\n"
|
|
||||||
"Adassa,Q576181,female,solo,pop,US,\n"
|
|
||||||
"Rhenzy Feliz,Q34344805,male,solo,pop,US,\n"
|
|
||||||
"Internet Money,Q99691610,,,hip-hop,US,\n"
|
|
||||||
"Encanto Cast,Q140814124,,,,US,\n")
|
|
||||||
"""The artist snapshot fixture for the non-performing credits,
|
|
||||||
leaving "Internet Money" and "Encanto Cast" without a gender and
|
|
||||||
without a type."""
|
|
||||||
|
|
||||||
def __build_non_performing(self) -> dict[str, str | None]:
|
|
||||||
"""Build the non-performing credit fixture and read back the
|
|
||||||
performer genders.
|
|
||||||
|
|
||||||
:return: The stored performer genders, keyed by the song
|
|
||||||
titles.
|
|
||||||
"""
|
|
||||||
self.__write_chart(self.NON_PERFORMING_CHART_CSV)
|
|
||||||
self.__write_wikidata(self.NON_PERFORMING_WIKIDATA_CSV)
|
|
||||||
self.assertEqual(
|
|
||||||
self.__run_build("--wikidata-csv",
|
|
||||||
str(self.__wikidata))[0], 0)
|
|
||||||
return self.__performer_genders()
|
|
||||||
|
|
||||||
def test_non_performing_credit_does_not_block(self) -> None:
|
|
||||||
"""Test that a credited artist without a type does not block
|
|
||||||
the agreement of the performing artists."""
|
|
||||||
self.assertEqual(
|
|
||||||
self.__build_non_performing()["Lemonade"], "male")
|
|
||||||
|
|
||||||
def test_non_performing_credit_keeps_mixed(self) -> None:
|
|
||||||
"""Test that a credited artist without a type leaves a
|
|
||||||
disagreement among the performing artists as "mixed"."""
|
|
||||||
self.assertEqual(
|
|
||||||
self.__build_non_performing()["Bruno"], "mixed")
|
|
||||||
|
|
||||||
def test_all_non_performing_credits_unset(self) -> None:
|
|
||||||
"""Test that a song credited to artists without a type only
|
|
||||||
leaves the performer gender unset."""
|
|
||||||
self.assertIsNone(
|
|
||||||
self.__build_non_performing()["Label Song"])
|
|
||||||
|
|
||||||
def test_first_run_on_fresh_store(self) -> None:
|
def test_first_run_on_fresh_store(self) -> None:
|
||||||
"""Test that a build on a fresh store creates the tables."""
|
"""Test that a build on a fresh store creates the tables."""
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
@@ -880,7 +727,7 @@ class TestBuildDB(unittest.TestCase):
|
|||||||
self.assertEqual(self.__run_build()[0], 0)
|
self.assertEqual(self.__run_build()[0], 0)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.__read_csv_header("songs.csv"),
|
self.__read_csv_header("songs.csv"),
|
||||||
["Title", "Artists", "Positions", "Performer Gender"])
|
["Title", "Artists", "Positions"])
|
||||||
rows: list[list[str]] = self.__read_csv_rows("songs.csv")
|
rows: list[list[str]] = self.__read_csv_rows("songs.csv")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
[row[:2] for row in rows],
|
[row[:2] for row in rows],
|
||||||
|
|||||||
@@ -29,12 +29,6 @@ class TestFetchArtists(unittest.TestCase):
|
|||||||
"name", "qid", "gender", "type", "genre",
|
"name", "qid", "gender", "type", "genre",
|
||||||
"country", "note"]
|
"country", "note"]
|
||||||
"""The expected header row of the snapshot CSV file."""
|
"""The expected header row of the snapshot CSV file."""
|
||||||
GROUP_QID: str = "Q215380"
|
|
||||||
"""The item ID of the instance-of target of a group."""
|
|
||||||
MALE_QID: str = "Q6581097"
|
|
||||||
"""The item ID of the gender target of a male member."""
|
|
||||||
FEMALE_QID: str = "Q6581072"
|
|
||||||
"""The item ID of the gender target of a female member."""
|
|
||||||
|
|
||||||
def setUp(self) -> None:
|
def setUp(self) -> None:
|
||||||
"""Create a temporary capture directory with the store."""
|
"""Create a temporary capture directory with the store."""
|
||||||
@@ -133,69 +127,6 @@ class TestFetchArtists(unittest.TestCase):
|
|||||||
return {"mainsnak": {"snaktype": "value",
|
return {"mainsnak": {"snaktype": "value",
|
||||||
"datavalue": {"value": {"id": qid}}}}
|
"datavalue": {"value": {"id": qid}}}}
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def __part(qid: str, end: str = "",
|
|
||||||
starts: list[str] | None = None) -> dict[str, Any]:
|
|
||||||
"""Build a has-part claim statement.
|
|
||||||
|
|
||||||
:param qid: The item ID of the member.
|
|
||||||
:param end: The end time of the membership, as a Wikidata
|
|
||||||
time value, or the empty string for a membership that
|
|
||||||
did not end.
|
|
||||||
:param starts: The start times of the membership, as
|
|
||||||
Wikidata time values, or None for a membership
|
|
||||||
without a start time.
|
|
||||||
:return: The claim statement.
|
|
||||||
"""
|
|
||||||
statement: dict[str, Any] \
|
|
||||||
= TestFetchArtists.__claim(qid)
|
|
||||||
qualifiers: dict[str, Any] = {}
|
|
||||||
if starts is not None:
|
|
||||||
qualifiers["P580"] = [
|
|
||||||
TestFetchArtists.__time(x) for x in starts]
|
|
||||||
if end != "":
|
|
||||||
qualifiers["P582"] = [TestFetchArtists.__time(end)]
|
|
||||||
if len(qualifiers) > 0:
|
|
||||||
statement["qualifiers"] = qualifiers
|
|
||||||
return statement
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def __time(time: str) -> dict[str, Any]:
|
|
||||||
"""Build a time qualifier snak.
|
|
||||||
|
|
||||||
:param time: The time, as a Wikidata time value.
|
|
||||||
:return: The qualifier snak.
|
|
||||||
"""
|
|
||||||
return {"snaktype": "value",
|
|
||||||
"datavalue": {"value": {"time": time,
|
|
||||||
"precision": 9}}}
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def __human(gender: str = "") -> dict[str, Any]:
|
|
||||||
"""Build the claims of a human group member.
|
|
||||||
|
|
||||||
:param gender: The item ID of the gender target, or the
|
|
||||||
empty string for a member without a gender.
|
|
||||||
:return: The claim statements, keyed by the property.
|
|
||||||
"""
|
|
||||||
claims: dict[str, Any] = {
|
|
||||||
"P31": [TestFetchArtists.__claim("Q5")]}
|
|
||||||
if gender != "":
|
|
||||||
claims["P21"] = [TestFetchArtists.__claim(gender)]
|
|
||||||
return claims
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def __member_claims(members: dict[str, dict[str, Any]]) \
|
|
||||||
-> dict[str, Any]:
|
|
||||||
"""Build a member claims response payload.
|
|
||||||
|
|
||||||
:param members: The claim statements of each member,
|
|
||||||
keyed by the member item ID.
|
|
||||||
:return: The response payload.
|
|
||||||
"""
|
|
||||||
return {"entities": {
|
|
||||||
x: {"claims": y} for x, y in members.items()}}
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __labels(labels: dict[str, str]) -> dict[str, Any]:
|
def __labels(labels: dict[str, str]) -> dict[str, Any]:
|
||||||
"""Build a label query response payload.
|
"""Build a label query response payload.
|
||||||
@@ -352,18 +283,14 @@ class TestFetchArtists(unittest.TestCase):
|
|||||||
|
|
||||||
def test_pinned_qid_skips_search(self) -> None:
|
def test_pinned_qid_skips_search(self) -> None:
|
||||||
"""Test that a pinned name short-circuits the search."""
|
"""Test that a pinned name short-circuits the search."""
|
||||||
self.__seed(["Brandy Brand"])
|
self.__seed(["Pinkfong"])
|
||||||
qid: str = "Q99999999"
|
qid: str = fetch_artists.PINNED_QIDS["Pinkfong"]
|
||||||
claims: dict[str, Any] = self.__claims(
|
claims: dict[str, Any] = self.__claims(
|
||||||
qid, {}, "a brand the type gate excludes")
|
qid, {}, "South Korean children's brand")
|
||||||
urlopen: mock.Mock
|
urlopen: mock.Mock
|
||||||
with mock.patch.object(
|
with mock.patch(
|
||||||
fetch_artists, "PINNED_QIDS",
|
|
||||||
{"Brandy Brand": qid}), \
|
|
||||||
mock.patch(
|
|
||||||
"urllib.request.urlopen",
|
"urllib.request.urlopen",
|
||||||
side_effect=[self.__response(claims)]) \
|
side_effect=[self.__response(claims)]) as urlopen:
|
||||||
as urlopen:
|
|
||||||
status: int = self.__run_fetch()[0]
|
status: int = self.__run_fetch()[0]
|
||||||
self.assertEqual(status, 0)
|
self.assertEqual(status, 0)
|
||||||
self.assertEqual(urlopen.call_count, 1)
|
self.assertEqual(urlopen.call_count, 1)
|
||||||
@@ -373,8 +300,8 @@ class TestFetchArtists(unittest.TestCase):
|
|||||||
rows: list[list[str]] = self.__read_rows(
|
rows: list[list[str]] = self.__read_rows(
|
||||||
self.__snapshot)
|
self.__snapshot)
|
||||||
self.assertEqual(rows[1], [
|
self.assertEqual(rows[1], [
|
||||||
"Brandy Brand", qid, "", "", "",
|
"Pinkfong", qid, "", "", "",
|
||||||
"", "a brand the type gate excludes"])
|
"", "South Korean children's brand"])
|
||||||
|
|
||||||
def test_stage1_performer_intersection(self) -> None:
|
def test_stage1_performer_intersection(self) -> None:
|
||||||
"""Test the multi-candidate resolution via a performer."""
|
"""Test the multi-candidate resolution via a performer."""
|
||||||
@@ -456,193 +383,6 @@ class TestFetchArtists(unittest.TestCase):
|
|||||||
self.assertEqual(rows[1], [
|
self.assertEqual(rows[1], [
|
||||||
"Case", "Q2", "", "", "", "", "Rescued by casefold"])
|
"Case", "Q2", "", "", "", "", "Rescued by casefold"])
|
||||||
|
|
||||||
def __fetch_group(self, parts: list[dict[str, Any]],
|
|
||||||
members: dict[str, dict[str, Any]],
|
|
||||||
gender_labels: dict[str, Any] | None) \
|
|
||||||
-> tuple[list[str], mock.Mock]:
|
|
||||||
"""Run the fetcher on a store holding one group artist.
|
|
||||||
|
|
||||||
:param parts: The has-part claim statements of the group
|
|
||||||
item.
|
|
||||||
:param members: The claim statements of each member item,
|
|
||||||
keyed by the member item ID, or empty when no member
|
|
||||||
item is expected to be queried.
|
|
||||||
:param gender_labels: The label response payload of the
|
|
||||||
gender items, or None when no label is expected to be
|
|
||||||
queried.
|
|
||||||
:return: A tuple of the snapshot row of the group and the
|
|
||||||
``urlopen`` mock.
|
|
||||||
"""
|
|
||||||
self.__seed(["Boyz"])
|
|
||||||
responses: list[Any] = [
|
|
||||||
self.__response(self.__sparql(
|
|
||||||
[{"item": self.__uri("Q10")}])),
|
|
||||||
self.__response(self.__claims(
|
|
||||||
"Q10",
|
|
||||||
{"P31": [self.__claim(self.GROUP_QID)],
|
|
||||||
"P527": parts},
|
|
||||||
"American boy band")),
|
|
||||||
self.__response(self.__labels(
|
|
||||||
{self.GROUP_QID: "musical group"}))]
|
|
||||||
if len(members) > 0:
|
|
||||||
responses.append(self.__response(
|
|
||||||
self.__member_claims(members)))
|
|
||||||
if gender_labels is not None:
|
|
||||||
responses.append(self.__response(gender_labels))
|
|
||||||
urlopen: mock.Mock
|
|
||||||
with mock.patch("urllib.request.urlopen",
|
|
||||||
side_effect=responses) as urlopen:
|
|
||||||
status: int = self.__run_fetch()[0]
|
|
||||||
self.assertEqual(status, 0)
|
|
||||||
self.assertEqual(urlopen.call_count, len(responses))
|
|
||||||
rows: list[list[str]] = self.__read_rows(self.__snapshot)
|
|
||||||
self.assertEqual(len(rows), 2)
|
|
||||||
return rows[1], urlopen
|
|
||||||
|
|
||||||
def test_group_gender_from_members(self) -> None:
|
|
||||||
"""Test a group taking the shared gender of its
|
|
||||||
members."""
|
|
||||||
row: list[str] = self.__fetch_group(
|
|
||||||
[self.__part("Q11"), self.__part("Q12")],
|
|
||||||
{"Q11": self.__human(self.MALE_QID),
|
|
||||||
"Q12": self.__human(self.MALE_QID)},
|
|
||||||
self.__labels({self.MALE_QID: "male"}))[0]
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", "male", "group", "", "",
|
|
||||||
"American boy band; gender derived from members:"
|
|
||||||
" Q11 male; Q12 male"])
|
|
||||||
|
|
||||||
def test_group_gender_mixed(self) -> None:
|
|
||||||
"""Test a group whose members do not share one gender."""
|
|
||||||
row: list[str] = self.__fetch_group(
|
|
||||||
[self.__part("Q11"), self.__part("Q12")],
|
|
||||||
{"Q11": self.__human(self.MALE_QID),
|
|
||||||
"Q12": self.__human(self.FEMALE_QID)},
|
|
||||||
self.__labels({self.MALE_QID: "male",
|
|
||||||
self.FEMALE_QID: "female"}))[0]
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", "mixed", "group", "", "",
|
|
||||||
"American boy band; gender derived from members:"
|
|
||||||
" Q11 male; Q12 female"])
|
|
||||||
|
|
||||||
def test_group_member_without_gender(self) -> None:
|
|
||||||
"""Test that a member without a gender of its own leaves
|
|
||||||
the gender of its group unresolved."""
|
|
||||||
row: list[str] = self.__fetch_group(
|
|
||||||
[self.__part("Q11"), self.__part("Q12")],
|
|
||||||
{"Q11": self.__human(self.MALE_QID),
|
|
||||||
"Q12": self.__human()},
|
|
||||||
None)[0]
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", "", "group", "", "",
|
|
||||||
"American boy band"])
|
|
||||||
|
|
||||||
def test_group_non_human_part_ignored(self) -> None:
|
|
||||||
"""Test that a part that is not human does not count."""
|
|
||||||
row: list[str] = self.__fetch_group(
|
|
||||||
[self.__part("Q11"), self.__part("Q13")],
|
|
||||||
{"Q11": self.__human(self.MALE_QID),
|
|
||||||
"Q13": {"P31": [self.__claim("Q2088357")]}},
|
|
||||||
self.__labels({self.MALE_QID: "male"}))[0]
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", "male", "group", "", "",
|
|
||||||
"American boy band; gender derived from members:"
|
|
||||||
" Q11 male"])
|
|
||||||
|
|
||||||
def test_group_member_left_before_corpus(self) -> None:
|
|
||||||
"""Test that a member who left before the corpus window
|
|
||||||
is neither queried nor counted."""
|
|
||||||
row: list[str]
|
|
||||||
urlopen: mock.Mock
|
|
||||||
row, urlopen = self.__fetch_group(
|
|
||||||
[self.__part("Q11", "+2015-06-01T00:00:00Z"),
|
|
||||||
self.__part("Q12")],
|
|
||||||
{"Q12": self.__human(self.MALE_QID)},
|
|
||||||
self.__labels({self.MALE_QID: "male"}))
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", "male", "group", "", "",
|
|
||||||
"American boy band; gender derived from members:"
|
|
||||||
" Q12 male"])
|
|
||||||
url: str = urlopen.call_args_list[3][0][0].full_url
|
|
||||||
self.assertIn("Q12", url)
|
|
||||||
self.assertNotIn("Q11", url)
|
|
||||||
|
|
||||||
def test_group_member_left_within_corpus(self) -> None:
|
|
||||||
"""Test that a member who left within the corpus window
|
|
||||||
still counts."""
|
|
||||||
row: list[str] = self.__fetch_group(
|
|
||||||
[self.__part("Q11", "+2016-03-01T00:00:00Z"),
|
|
||||||
self.__part("Q12")],
|
|
||||||
{"Q11": self.__human(self.FEMALE_QID),
|
|
||||||
"Q12": self.__human(self.MALE_QID)},
|
|
||||||
self.__labels({self.MALE_QID: "male",
|
|
||||||
self.FEMALE_QID: "female"}))[0]
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", "mixed", "group", "", "",
|
|
||||||
"American boy band; gender derived from members:"
|
|
||||||
" Q11 female; Q12 male"])
|
|
||||||
|
|
||||||
def test_group_member_rejoined_after_leaving(self) -> None:
|
|
||||||
"""Test that a member who left before the corpus window
|
|
||||||
and re-joined after it still counts."""
|
|
||||||
row: list[str] = self.__fetch_group(
|
|
||||||
[self.__part("Q11", "+2013-01-01T00:00:00Z",
|
|
||||||
["+2005-01-01T00:00:00Z",
|
|
||||||
"+2019-01-01T00:00:00Z"]),
|
|
||||||
self.__part("Q12")],
|
|
||||||
{"Q11": self.__human(self.FEMALE_QID),
|
|
||||||
"Q12": self.__human(self.MALE_QID)},
|
|
||||||
self.__labels({self.MALE_QID: "male",
|
|
||||||
self.FEMALE_QID: "female"}))[0]
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", "mixed", "group", "", "",
|
|
||||||
"American boy band; gender derived from members:"
|
|
||||||
" Q11 female; Q12 male"])
|
|
||||||
|
|
||||||
def test_group_member_left_for_good(self) -> None:
|
|
||||||
"""Test that a member who left before the corpus window
|
|
||||||
and did not re-join is excluded."""
|
|
||||||
row: list[str]
|
|
||||||
urlopen: mock.Mock
|
|
||||||
row, urlopen = self.__fetch_group(
|
|
||||||
[self.__part("Q11", "+2013-01-01T00:00:00Z",
|
|
||||||
["+2005-01-01T00:00:00Z"]),
|
|
||||||
self.__part("Q12")],
|
|
||||||
{"Q12": self.__human(self.MALE_QID)},
|
|
||||||
self.__labels({self.MALE_QID: "male"}))
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", "male", "group", "", "",
|
|
||||||
"American boy band; gender derived from members:"
|
|
||||||
" Q12 male"])
|
|
||||||
url: str = urlopen.call_args_list[3][0][0].full_url
|
|
||||||
self.assertIn("Q12", url)
|
|
||||||
self.assertNotIn("Q11", url)
|
|
||||||
|
|
||||||
def test_group_gender_label_without_english(self) -> None:
|
|
||||||
"""Test the gender label of another language being taken
|
|
||||||
when there is no English one."""
|
|
||||||
row: list[str] = self.__fetch_group(
|
|
||||||
[self.__part("Q11")],
|
|
||||||
{"Q11": self.__human(self.MALE_QID)},
|
|
||||||
{"entities": {self.MALE_QID: {
|
|
||||||
"labels": {"ja": {"value": "男性"}}}}})[0]
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", "男性", "group", "", "",
|
|
||||||
"American boy band; gender derived from members:"
|
|
||||||
" Q11 男性"])
|
|
||||||
|
|
||||||
def test_group_gender_label_missing(self) -> None:
|
|
||||||
"""Test the bare item ID being taken as the gender label
|
|
||||||
when the item has no label at all."""
|
|
||||||
row: list[str] = self.__fetch_group(
|
|
||||||
[self.__part("Q11")],
|
|
||||||
{"Q11": self.__human(self.MALE_QID)},
|
|
||||||
{"entities": {}})[0]
|
|
||||||
self.assertEqual(row, [
|
|
||||||
"Boyz", "Q10", self.MALE_QID, "group", "", "",
|
|
||||||
"American boy band; gender derived from members:"
|
|
||||||
f" Q11 {self.MALE_QID}"])
|
|
||||||
|
|
||||||
def test_unresolved_continues_to_next_artist(self) -> None:
|
def test_unresolved_continues_to_next_artist(self) -> None:
|
||||||
"""Test that an unresolved artist does not stop the run."""
|
"""Test that an unresolved artist does not stop the run."""
|
||||||
self.__seed(["Ambiguous", "Nobody"])
|
self.__seed(["Ambiguous", "Nobody"])
|
||||||
@@ -787,75 +527,15 @@ class TestFetchArtists(unittest.TestCase):
|
|||||||
"Nobody", "", "", "", "", "", "not found"])
|
"Nobody", "", "", "", "", "", "not found"])
|
||||||
self.__assert_summary(stderr, 0, 1)
|
self.__assert_summary(stderr, 0, 1)
|
||||||
|
|
||||||
def test_blank_gender_row_refetched(self) -> None:
|
|
||||||
"""Test that a row with a blank gender is re-fetched and
|
|
||||||
replaced, not duplicated."""
|
|
||||||
self.__seed(["Adele"])
|
|
||||||
snapshot: Path = self.__snapshot
|
|
||||||
with open(snapshot, "w", encoding="utf-8",
|
|
||||||
newline="") as file:
|
|
||||||
writer: Any = csv.writer(file)
|
|
||||||
writer.writerow(self.HEADER)
|
|
||||||
writer.writerow([
|
|
||||||
"Adele", "Q1", "", "solo", "", "", "not found"])
|
|
||||||
candidates: dict[str, Any] = self.__sparql(
|
|
||||||
[{"item": self.__uri("Q1")}])
|
|
||||||
claims: dict[str, Any] = self.__claims(
|
|
||||||
"Q1", {"P21": [self.__claim("Q2")],
|
|
||||||
"P31": [self.__claim("Q5")]},
|
|
||||||
"English singer")
|
|
||||||
labels: dict[str, Any] = self.__labels(
|
|
||||||
{"Q2": "female", "Q5": "human"})
|
|
||||||
urlopen: mock.Mock
|
|
||||||
with mock.patch(
|
|
||||||
"urllib.request.urlopen",
|
|
||||||
side_effect=[self.__response(candidates),
|
|
||||||
self.__response(claims),
|
|
||||||
self.__response(labels)]) as urlopen:
|
|
||||||
status: int = self.__run_fetch()[0]
|
|
||||||
self.assertEqual(status, 0)
|
|
||||||
self.assertEqual(urlopen.call_count, 3)
|
|
||||||
rows: list[list[str]] = self.__read_rows(snapshot)
|
|
||||||
self.assertEqual(len(rows), 2)
|
|
||||||
self.assertEqual(rows[1], [
|
|
||||||
"Adele", "Q1", "female", "solo", "", "",
|
|
||||||
"English singer"])
|
|
||||||
|
|
||||||
def test_stale_row_dropped(self) -> None:
|
|
||||||
"""Test that a row matching no artist of the store is
|
|
||||||
dropped and reported."""
|
|
||||||
self.__seed(["Amy"])
|
|
||||||
snapshot: Path = self.__snapshot
|
|
||||||
amy_row: list[str] = [
|
|
||||||
"Amy", "Q1", "female", "solo", "", "", "English singer"]
|
|
||||||
with open(snapshot, "w", encoding="utf-8",
|
|
||||||
newline="") as file:
|
|
||||||
writer: Any = csv.writer(file)
|
|
||||||
writer.writerow(self.HEADER)
|
|
||||||
writer.writerow(amy_row)
|
|
||||||
writer.writerow([
|
|
||||||
"Pinkfong", "Q2", "male", "solo", "", "", "a brand"])
|
|
||||||
urlopen: mock.Mock
|
|
||||||
with mock.patch("urllib.request.urlopen") as urlopen:
|
|
||||||
status: int
|
|
||||||
stderr: str
|
|
||||||
status, stderr = self.__run_fetch()
|
|
||||||
self.assertEqual(status, 0)
|
|
||||||
urlopen.assert_not_called()
|
|
||||||
rows: list[list[str]] = self.__read_rows(snapshot)
|
|
||||||
self.assertEqual(len(rows), 2)
|
|
||||||
self.assertEqual(rows[1], amy_row)
|
|
||||||
self.assertIn("Pinkfong", stderr)
|
|
||||||
|
|
||||||
def test_topup_inserts_sorted_position(self) -> None:
|
def test_topup_inserts_sorted_position(self) -> None:
|
||||||
"""Test that a top-up inserts the new row in its sorted
|
"""Test that a top-up inserts the new row in its sorted
|
||||||
position, not appended at the end of the file."""
|
position, not appended at the end of the file."""
|
||||||
self.__seed(["Amy", "Mia", "Zed"])
|
self.__seed(["Amy", "Mia", "Zed"])
|
||||||
snapshot: Path = self.__snapshot
|
snapshot: Path = self.__snapshot
|
||||||
amy_row: list[str] = [
|
amy_row: list[str] = [
|
||||||
"Amy", "Q1", "female", "solo", "", "", "a singer"]
|
"Amy", "Q1", "", "", "", "", "not found"]
|
||||||
zed_row: list[str] = [
|
zed_row: list[str] = [
|
||||||
"Zed", "Q2", "male", "solo", "", "", "a singer"]
|
"Zed", "Q2", "", "", "", "", "not found"]
|
||||||
with open(snapshot, "w", encoding="utf-8",
|
with open(snapshot, "w", encoding="utf-8",
|
||||||
newline="") as file:
|
newline="") as file:
|
||||||
writer: Any = csv.writer(file)
|
writer: Any = csv.writer(file)
|
||||||
|
|||||||
Reference in New Issue
Block a user