""" data/generate_seed_500.py Generates the complete 500-artist seed roster (data/seed_artists_500.csv). Deduplicates and guarantees an exact 500-artist target cohort. """ import os import sys from pathlib import Path import pandas as pd PROJECT_ROOT = Path(__file__).resolve().parent.parent if str(PROJECT_ROOT) not in sys.path: sys.path.insert(0, str(PROJECT_ROOT)) from data.seed_artists_50 import ARTISTS_50 OUTPUT_FILE = PROJECT_ROOT / "data" / "seed_artists_500.csv" # Comprehensive additions to reach 500 unique hip-hop entities EXPANDED_ROSTER = [ # 90s & 2000s Legends & Pioneers {"name": "Nas", "identifier": "@nas"}, {"name": "Jay-Z", "identifier": "@JayZ"}, {"name": "Snoop Dogg", "identifier": "@SnoopDogg"}, {"name": "50 Cent", "identifier": "@50Cent"}, {"name": "The Notorious B.I.G.", "identifier": "@notoriousbig"}, {"name": "2Pac", "identifier": "@2pac"}, {"name": "Dr. Dre", "identifier": "@drdre"}, {"name": "Ice Cube", "identifier": "@IceCube"}, {"name": "Busta Rhymes", "identifier": "@BustaRhymes"}, {"name": "Method Man", "identifier": "@MethodMan"}, {"name": "Redman", "identifier": "@redman"}, {"name": "Wu-Tang Clan", "identifier": "@WuTangClan"}, {"name": "Outkast", "identifier": "@outkast"}, {"name": "DMX", "identifier": "@dmx"}, {"name": "Ludacris", "identifier": "@Ludacris"}, {"name": "T.I.", "identifier": "@TI"}, {"name": "Jeezy", "identifier": "@jeezy"}, {"name": "Gucci Mane", "identifier": "@guccimane"}, {"name": "Rick Ross", "identifier": "@RickRoss"}, {"name": "Common", "identifier": "@common"}, {"name": "Mos Def", "identifier": "@yasiinbey"}, {"name": "Talib Kweli", "identifier": "@TalibKweli"}, {"name": "Lupe Fiasco", "identifier": "@LupeFiasco"}, {"name": "Ghostface Killah", "identifier": "@GhostfaceKillah"}, {"name": "Raekwon", "identifier": "@Raekwon"}, {"name": "GZA", "identifier": "@TheGeniusGZA"}, {"name": "Cypress Hill", "identifier": "@cypresshill"}, {"name": "Three 6 Mafia", "identifier": "@three6mafia"}, {"name": "Fat Joe", "identifier": "@fatjoe"}, {"name": "Big Pun", "identifier": "@BigPun"}, {"name": "Scarface", "identifier": "@BrotherMob"}, {"name": "E-40", "identifier": "@e40"}, {"name": "Too $hort", "identifier": "@tooshort"}, {"name": "Bun B", "identifier": "@BunBofUGK"}, {"name": "UGK", "identifier": "@UGKfilmz"}, {"name": "Twista", "identifier": "@twista"}, {"name": "Cam'ron", "identifier": "@mr_camron"}, {"name": "Jadakiss", "identifier": "@RealJadakiss"}, {"name": "Styles P", "identifier": "@stylesp"}, {"name": "Fabolous", "identifier": "@myfabolouslife"}, {"name": "The Game", "identifier": "@thegame"}, {"name": "Ja Rule", "identifier": "@JaRule"}, {"name": "Nelly", "identifier": "@Nelly"}, {"name": "Chingy", "identifier": "@Chingy"}, {"name": "Bow Wow", "identifier": "@bowwow"}, {"name": "Soulja Boy", "identifier": "@SouljaBoyTellem"}, {"name": "Waka Flocka Flame", "identifier": "@WakaFlockaFlame"}, {"name": "Chief Keef", "identifier": "@ChiefKeef"}, {"name": "French Montana", "identifier": "@FrenchMontana"}, {"name": "Wiz Khalifa", "identifier": "@wizkhalifa"}, {"name": "Big L", "identifier": "@BigL"}, {"name": "Kool G Rap", "identifier": "@KoolGRap"}, {"name": "Rakim", "identifier": "@TheGodRakim"}, {"name": "Big Daddy Kane", "identifier": "@BigDaddyKane"}, {"name": "Slick Rick", "identifier": "@SlickRickTheRuler"}, {"name": "KRS-One", "identifier": "@KRSOne"}, {"name": "LL Cool J", "identifier": "@LLCoolJ"}, {"name": "Public Enemy", "identifier": "@PublicEnemy"}, {"name": "De La Soul", "identifier": "@WeAreDeLaSoul"}, {"name": "A Tribe Called Quest", "identifier": "@ATCQ"}, {"name": "The Roots", "identifier": "@theroots"}, {"name": "Black Thought", "identifier": "@BlackThought"}, {"name": "Beanie Sigel", "identifier": "@BeanieSigel"}, {"name": "Freeway", "identifier": "@PhillyFreeway"}, {"name": "Cassidy", "identifier": "@CASSIDY_LARSINY"}, {"name": "Lloyd Banks", "identifier": "@LloydBanks"}, {"name": "Tony Yayo", "identifier": "@TonyYayo"}, {"name": "Young Buck", "identifier": "@buckmentality"}, {"name": "Mobb Deep", "identifier": "@mobbdeep"}, {"name": "Prodigy", "identifier": "@ProdigyOfMobbDeep"}, {"name": "Havoc", "identifier": "@HavocOfMobbDeep"}, {"name": "AZ", "identifier": "@QuietMoneyAZ"}, {"name": "Cormega", "identifier": "@Cormega"}, {"name": "Inspectah Deck", "identifier": "@InspectahDeck"}, {"name": "Masta Killa", "identifier": "@MastaKilla"}, {"name": "U-God", "identifier": "@UGod"}, {"name": "Killah Priest", "identifier": "@KillahPriest"}, {"name": "Krayzie Bone", "identifier": "@KrayzieBone"}, {"name": "Layzie Bone", "identifier": "@LayzieBone"}, {"name": "Bizzy Bone", "identifier": "@BizzyBone"}, {"name": "Bone Thugs-N-Harmony", "identifier": "@BoneThugsNHarmony"}, {"name": "Juvenile", "identifier": "@Juvenile"}, {"name": "Mannie Fresh", "identifier": "@MannieFresh"}, {"name": "B.G.", "identifier": "@BGMtH"}, {"name": "Mystikal", "identifier": "@Mystikal"}, {"name": "Pastor Troy", "identifier": "@PastorTroy"}, {"name": "Petey Pablo", "identifier": "@PeteyPablo"}, {"name": "David Banner", "identifier": "@DavidBanner"}, {"name": "Paul Wall", "identifier": "@PaulWall"}, {"name": "Chamillionaire", "identifier": "@chamillionaire"}, {"name": "Slim Thug", "identifier": "@slimthug"}, {"name": "Mike Jones", "identifier": "@MikeJones"}, {"name": "Z-Ro", "identifier": "@TheRealZRo"}, {"name": "Trae tha Truth", "identifier": "@traethatruth"}, {"name": "Big Pokey", "identifier": "@BigPokey"}, {"name": "Lil Keke", "identifier": "@DonKeKe"}, {"name": "Devin the Dude", "identifier": "@DevinTheDude"}, {"name": "Project Pat", "identifier": "@ProjectPat"}, {"name": "Juicy J", "identifier": "@juicyj"}, {"name": "DJ Paul", "identifier": "@DJPaulKOM"}, # 2010s Hip-Hop & Mainstream Heavyweights {"name": "Mac Miller", "identifier": "@MacMiller"}, {"name": "Big Sean", "identifier": "@bigsean"}, {"name": "Wale", "identifier": "@wale"}, {"name": "Meek Mill", "identifier": "@meekmill"}, {"name": "ASAP Ferg", "identifier": "@asapferg"}, {"name": "Schoolboy Q", "identifier": "@ScHoolboyQ"}, {"name": "Ab-Soul", "identifier": "@AbSoul"}, {"name": "Jay Rock", "identifier": "@JayRock"}, {"name": "YG", "identifier": "@4hunnid"}, {"name": "Ty Dolla $ign", "identifier": "@tydollasign"}, {"name": "Kid Cudi", "identifier": "@KidCudi"}, {"name": "Logic", "identifier": "@Logic"}, {"name": "G-Eazy", "identifier": "@GEazy"}, {"name": "Machine Gun Kelly", "identifier": "@mgk"}, {"name": "Russ", "identifier": "@russ"}, {"name": "Joyner Lucas", "identifier": "@JoynerLucas"}, {"name": "NF", "identifier": "@nfrealmusic"}, {"name": "Hopsin", "identifier": "@Hopsintv"}, {"name": "Tech N9ne", "identifier": "@StrangeMusicInc"}, {"name": "Macklemore", "identifier": "@Macklemore"}, {"name": "B.o.B", "identifier": "@bob"}, {"name": "Travis Porter", "identifier": "@travisporter"}, {"name": "Migos", "identifier": "@MigosAtl"}, {"name": "Quavo", "identifier": "@QuavoHuncho"}, {"name": "Offset", "identifier": "@OffsetYRN"}, {"name": "Takeoff", "identifier": "@TakeoffYRN"}, {"name": "Rae Sremmurd", "identifier": "@RaeSremmurd"}, {"name": "Swae Lee", "identifier": "@SwaeLee"}, {"name": "Slim Jxmmi", "identifier": "@SlimJxmmi"}, {"name": "Rich Homie Quan", "identifier": "@RichHomieQuan"}, {"name": "Young Dolph", "identifier": "@youngdolph"}, {"name": "Key Glock", "identifier": "@KeyGlock"}, {"name": "Moneybagg Yo", "identifier": "@MoneyBaggYo"}, {"name": "Yo Gotti", "identifier": "@yogottivideos"}, {"name": "Blac Youngsta", "identifier": "@BlacYoungsta"}, {"name": "Kevin Gates", "identifier": "@kevingates"}, {"name": "Boosie Badazz", "identifier": "@boosiebadazz"}, {"name": "Kodak Black", "identifier": "@KodakBlack"}, {"name": "NBA YoungBoy", "identifier": "@nba_youngboy"}, {"name": "Lil Durk", "identifier": "@lildurk"}, {"name": "King Von", "identifier": "@KingVon"}, {"name": "Polo G", "identifier": "@PoloG"}, {"name": "Lil Tjay", "identifier": "@liltjay"}, {"name": "A Boogie wit da Hoodie", "identifier": "@ABoogieWitDaHoodie"}, {"name": "Fivio Foreign", "identifier": "@FivioForeign"}, {"name": "Pop Smoke", "identifier": "@PopSmoke"}, {"name": "Bobby Shmurda", "identifier": "@BobbyShmurda"}, {"name": "Rowdy Rebel", "identifier": "@RowdyRebel"}, {"name": "6ix9ine", "identifier": "@Tekashi69"}, {"name": "Trippie Redd", "identifier": "@TrippieRedd"}, # Modern Soundcloud Wave & Trap Melodicists {"name": "Juice WRLD", "identifier": "@JuiceWRLD"}, {"name": "XXXTENTACION", "identifier": "@xxxtentacion"}, {"name": "Ski Mask the Slump God", "identifier": "@SkiMaskTheSlumpGod"}, {"name": "Cordae", "identifier": "@cordae"}, {"name": "IDK", "identifier": "@IDK"}, {"name": "Aminé", "identifier": "@heyamine"}, {"name": "GoldLink", "identifier": "@goldlink"}, {"name": "Duckwrth", "identifier": "@DUCKWRTH"}, {"name": "Buddy", "identifier": "@Buddy"}, {"name": "Deante' Hitchcock", "identifier": "@DeanteHitchcock"}, {"name": "Reason", "identifier": "@reasontde"}, {"name": "Ray Vaughn", "identifier": "@rayvaughn"}, {"name": "SiR", "identifier": "@inglewoodSiR"}, {"name": "Bas", "identifier": "@fiendbassy"}, {"name": "Cozz", "identifier": "@cody_macc"}, {"name": "Omen", "identifier": "@omen"}, {"name": "Lute", "identifier": "@lute_west9"}, {"name": "Mick Jenkins", "identifier": "@mickjenkins"}, {"name": "Noname", "identifier": "@noname"}, {"name": "Rapsody", "identifier": "@rapsody"}, {"name": "Che Noir", "identifier": "@CheNoir"}, {"name": "Sa-Roc", "identifier": "@sarocthemc"}, {"name": "Armani Caesar", "identifier": "@ArmaniCaesar"}, {"name": "Rome Streetz", "identifier": "@RomeStreetz"}, {"name": "Conway the Machine", "identifier": "@WHOISCONWAY"}, {"name": "Benny The Butcher", "identifier": "@BennyTheButcher"}, {"name": "Boldy James", "identifier": "@BoldyJames"}, {"name": "Roc Marciano", "identifier": "@rocmarciano"}, {"name": "Action Bronson", "identifier": "@ActionBronson"}, {"name": "Earl Sweatshirt", "identifier": "@earlsweatshirt"}, {"name": "Dom Genesis", "identifier": "@DomsGenesis"}, {"name": "Hodgy Beats", "identifier": "@hodgy"}, {"name": "Mike G", "identifier": "@MikeG"}, {"name": "Maxo Kream", "identifier": "@MaxoKream"}, {"name": "Big K.R.I.T.", "identifier": "@BigKRIT"}, {"name": "Curren$y", "identifier": "@currensy"}, {"name": "Smoke DZA", "identifier": "@SmokeDZA"}, {"name": "Le$ ", "identifier": "@steakxshrimp"}, {"name": "Larry June", "identifier": "@LarryJuneTFM"}, {"name": "Jay Worthy", "identifier": "@JayWorthy"}, {"name": "G Perico", "identifier": "@GPerico"}, {"name": "Blxst", "identifier": "@blxst"}, {"name": "Bino Rideaux", "identifier": "@binorideaux"}, {"name": "Kalan.FrFr", "identifier": "@kalanfrfr"}, {"name": "100k Track", "identifier": "@100kTrack"}, {"name": "Yungeen Ace", "identifier": "@YungeenAce"}, {"name": "Foolio", "identifier": "@JulioFoolio"}, # Trap, Drill & Detroit / Midwest Wave {"name": "EST Gee", "identifier": "@ESTGee"}, {"name": "42 Dugg", "identifier": "@42Dugg"}, {"name": "Icewear Vezzo", "identifier": "@icewearvezzo"}, {"name": "Babyface Ray", "identifier": "@BabyfaceRay"}, {"name": "Peezy", "identifier": "@PeezyOfficial"}, {"name": "Veeze", "identifier": "@veeze__"}, {"name": "Rio Da Yung OG", "identifier": "@RioDaYungOG"}, {"name": "RMC Mike", "identifier": "@RmcMike"}, {"name": "YN Jay", "identifier": "@YNJayCoochieMan"}, {"name": "Bfb Da Packman", "identifier": "@BfbDaPackman"}, {"name": "Sada Baby", "identifier": "@SadaBaby"}, {"name": "Tee Grizzley", "identifier": "@TeeGrizzley"}, {"name": "Payroll Giovanni", "identifier": "@payrollgiovanni"}, {"name": "G Herbo", "identifier": "@GHerbo"}, {"name": "Fredo Santana", "identifier": "@FredoSantana"}, {"name": "Lil Reese", "identifier": "@LilReese"}, {"name": "Vic Mensa", "identifier": "@VicMensa"}, {"name": "Chance the Rapper", "identifier": "@chancetherapper"}, {"name": "Famous Dex", "identifier": "@famousdex"}, {"name": "Rich the Kid", "identifier": "@RichTheKid"}, {"name": "Jay Critch", "identifier": "@JayCritch"}, {"name": "MadeinTYO", "identifier": "@MadeinTYO"}, {"name": "Lil Yachty", "identifier": "@lilyachty"}, {"name": "Lil Mosey", "identifier": "@LilMosey"}, {"name": "Lil Tecca", "identifier": "@LilTecca"}, {"name": "SoFaygo", "identifier": "@imsofaygo"}, {"name": "SSGKobe", "identifier": "@ssgkobe"}, {"name": "Kaash Paige", "identifier": "@KaashPaige"}, {"name": "Bia", "identifier": "@PrincessBia"}, {"name": "Saweetie", "identifier": "@saweetie"}, {"name": "City Girls", "identifier": "@CityGirls"}, {"name": "JT", "identifier": "@TheGirlJT"}, {"name": "Yung Miami", "identifier": "@YungMiami"}, {"name": "Kash Doll", "identifier": "@kashdoll"}, {"name": "Dej Loaf", "identifier": "@dejloaf"}, {"name": "Dreezy", "identifier": "@dreezy"}, {"name": "Tink", "identifier": "@OfficialTink"}, {"name": "Kamaiyah", "identifier": "@kamaiyah"}, {"name": "Chika", "identifier": "@chika"}, {"name": "Tierra Whack", "identifier": "@TierraWhack"}, {"name": "Rico Nasty", "identifier": "@RicoNasty"}, {"name": "Princess Nokia", "identifier": "@PrincessNokia"}, {"name": "Bhad Bhabie", "identifier": "@BhadBhabie"}, {"name": "Kreayshawn", "identifier": "@kreayshawn"}, {"name": "Iggy Azalea", "identifier": "@iggyazalea"}, {"name": "Azealia Banks", "identifier": "@AzealiaBanks"}, {"name": "Angel Haze", "identifier": "@AngelHaze"}, {"name": "Brooke Candy", "identifier": "@BrookeCandy"}, # Global, UK Drill, Grime & European Acts {"name": "Stormzy", "identifier": "@StormzyTV"}, {"name": "Dave", "identifier": "@Santandave"}, {"name": "Skepta", "identifier": "@skeptaofficial"}, {"name": "Jme", "identifier": "@JmeBBK"}, {"name": "Kano", "identifier": "@TheKano"}, {"name": "Dizzee Rascal", "identifier": "@dizzeerascal"}, {"name": "AJ Tracey", "identifier": "@ajtracey"}, {"name": "Aitch", "identifier": "@AitchOfficial"}, {"name": "Headie One", "identifier": "@HeadieOne"}, {"name": "Digga D", "identifier": "@DiggaD"}, {"name": "K-Trap", "identifier": "@ktrap_official"}, {"name": "Unknown T", "identifier": "@UnknownT"}, {"name": "Russ Millions", "identifier": "@RussMillions"}, {"name": "Tion Wayne", "identifier": "@TionWayne"}, {"name": "Nemzzz", "identifier": "@Nemzzz"}, {"name": "Knucks", "identifier": "@Knucks"}, {"name": "Loyle Carner", "identifier": "@LoyleCarner"}, {"name": "Slowthai", "identifier": "@slowthai"}, {"name": "Pa Salieu", "identifier": "@PaSalieu"}, {"name": "Ghetts", "identifier": "@Ghetts"}, {"name": "D-Block Europe", "identifier": "@DBlockEurope"}, {"name": "Young Adz", "identifier": "@YoungAdz"}, {"name": "Dirtbike LB", "identifier": "@DirtbikeLB"}, {"name": "M Huncho", "identifier": "@mhuncho"}, {"name": "Nafe Smallz", "identifier": "@NafeSmallz"}, {"name": "Fredo", "identifier": "@Fredo"}, {"name": "Nines", "identifier": "@Nines"}, {"name": "Potter Payper", "identifier": "@PotterPayper"}, {"name": "Rimzee", "identifier": "@Rimzee"}, {"name": "MoStack", "identifier": "@MoStack"}, {"name": "Mist", "identifier": "@mistmusic"}, {"name": "Bugzy Malone", "identifier": "@bugzymalone"}, {"name": "Chip", "identifier": "@OfficialChip"}, {"name": "Wretch 32", "identifier": "@Wretch32"}, {"name": "Giggs", "identifier": "@GiggsOfficial"}, {"name": "Stefflon Don", "identifier": "@stefflondon"}, {"name": "Ms Banks", "identifier": "@MsBanks"}, {"name": "Ivorian Doll", "identifier": "@IvorianDoll"}, {"name": "Darkoo", "identifier": "@Darkoo"}, # 2024-2026 Emerging, Opium & Underground Innovators {"name": "Homixide Gang", "identifier": "@HomixideGang"}, {"name": "Osamason", "identifier": "@osamason"}, {"name": "Nettspend", "identifier": "@nettspend"}, {"name": "Rich Amiri", "identifier": "@RichAmiri"}, {"name": "Autumn!", "identifier": "@twinuzis"}, {"name": "Summrs", "identifier": "@summrs"}, {"name": "Kankan", "identifier": "@kankan"}, {"name": "Iayze", "identifier": "@iayze"}, {"name": "BabyTron", "identifier": "@BabyTron"}, {"name": "StanWill", "identifier": "@StanWill"}, {"name": "TrDee", "identifier": "@TrDee"}, {"name": "Certified Trapper", "identifier": "@certifiedtrapper"}, {"name": "BLP Kosher", "identifier": "@blpkosher"}, {"name": "Luh Tyler", "identifier": "@luhtyler"}, {"name": "Real Boston Richey", "identifier": "@RealBostonRichey"}, {"name": "Hunxho", "identifier": "@Hunxho"}, {"name": "YTB Fatt", "identifier": "@ytbfatt"}, {"name": "Rob49", "identifier": "@Rob49"}, {"name": "Skilla Baby", "identifier": "@SkillaBaby"}, {"name": "BigXthaPlug", "identifier": "@BigXthaPlug"}, {"name": "That Mexican OT", "identifier": "@ThatMexicanOT"}, {"name": "Drodi", "identifier": "@Drodi"}, {"name": "BashfortheWorld", "identifier": "@bashfortheworld"}, {"name": "Southside", "identifier": "@Southside808MAFIA"}, {"name": "Metro Boomin", "identifier": "@MetroBoomin"}, {"name": "Pierre Bourne", "identifier": "@PierreBourne"}, {"name": "Murda Beatz", "identifier": "@MurdaBeatz"}, {"name": "Tay Keith", "identifier": "@TayKeith"}, {"name": "Wheezy", "identifier": "@WheezyOuttaHere"}, {"name": "Boi-1da", "identifier": "@boi1da"}, {"name": "Hit-Boy", "identifier": "@HitBoy"}, {"name": "The Alchemist", "identifier": "@alchemist"}, {"name": "Madlib", "identifier": "@MadlibInvazion"}, {"name": "Kaytranada", "identifier": "@KAYTRANADA"}, {"name": "Flying Lotus", "identifier": "@flyinglotus"}, {"name": "Kenny Beats", "identifier": "@kennybeats"}, {"name": "Monte Booker", "identifier": "@montebooker"}, {"name": "Sango", "identifier": "@sango"}, {"name": "Masego", "identifier": "@Masego"}, {"name": "JPEGMAFIA", "identifier": "@JPEGMAFIA"}, {"name": "Danny Brown", "identifier": "@xdannyxbrownxVEVO"}, {"name": "Paris Texas", "identifier": "@paristexas"}, {"name": "AG Club", "identifier": "@agclub"}, {"name": "Spillage Village", "identifier": "@spillagevillage"}, {"name": "Coast Contra", "identifier": "@CoastContra"}, {"name": "Grip", "identifier": "@Grip_SS"}, {"name": "Westside Boogie", "identifier": "@westsideboogie"}, {"name": "Domani", "identifier": "@Domani"}, {"name": "Token", "identifier": "@tokenhiphop"}, {"name": "Dax", "identifier": "@dax"}, {"name": "Tom MacDonald", "identifier": "@AllHailTomMacDonald"}, {"name": "Cal Scruby", "identifier": "@CalScruby"}, {"name": "Chris Webby", "identifier": "@ChrisWebby"}, {"name": "Merkules", "identifier": "@Merkules"}, {"name": "Snak The Ripper", "identifier": "@snaktheripper"}, {"name": "Classified", "identifier": "@classified"}, {"name": "Belly", "identifier": "@Belly"}, {"name": "Tory Lanez", "identifier": "@torylanez"}, {"name": "Roy Woods", "identifier": "@RoyWoods"}, {"name": "Majid Jordan", "identifier": "@MajidJordan"}, {"name": "dvsn", "identifier": "@dvsndvsn"}, {"name": "K-os", "identifier": "@kosinfluence"}, {"name": "Kardinal Offishall", "identifier": "@kardinaloffishall"}, {"name": "Night Lovell", "identifier": "@NightLovell"}, {"name": "Lil Skies", "identifier": "@lilskies"}, {"name": "Landon Cube", "identifier": "@landoncube"}, {"name": "Lil Xan", "identifier": "@lilxan"}, {"name": "Smokepurpp", "identifier": "@smokepurpp"}, {"name": "Lil Pump", "identifier": "@lilpump"}, {"name": "Pouya", "identifier": "@pouya"}, {"name": "Fat Nick", "identifier": "@fatnick"}, {"name": "Ghostemane", "identifier": "@ghostemane"}, {"name": "$uicideboy$", "identifier": "@Suicideboys"}, {"name": "BONES", "identifier": "@TeamSESH"}, {"name": "Xavier Wulf", "identifier": "@TheHollowSquad"}, {"name": "Chris Travis", "identifier": "@WaterBoyz"}, {"name": "Robb Bank$", "identifier": "@RobbBanks"}, {"name": "SpaceGhostPurrp", "identifier": "@SpaceGhostPurrp"}, {"name": "Yung Lean", "identifier": "@yunglean"}, {"name": "Bladee", "identifier": "@bladee"}, {"name": "Ecco2k", "identifier": "@ecco2k"}, {"name": "Thaiboy Digital", "identifier": "@thaiboydigital"}, {"name": "Tommy Cash", "identifier": "@TOMMYCASH"}, {"name": "Little Big", "identifier": "@littlebig"}, {"name": "BBNO$", "identifier": "@bbnomula"}, {"name": "Yung Gravy", "identifier": "@yunggravy"}, {"name": "Shotgun Willy", "identifier": "@ShotgunWilly"}, {"name": "Oliver Tree", "identifier": "@OliverTree"}, {"name": "Ashnikko", "identifier": "@ashnikko"}, {"name": "Doja Cat", "identifier": "@dojacat"}, {"name": "Coi Leray", "identifier": "@CoiLeray"}, {"name": "BKtherula", "identifier": "@bktherula"}, {"name": "TiaCorine", "identifier": "@TiaCorine"}, {"name": "Monaleo", "identifier": "@TheMonaleo"}, {"name": "Maiya The Don", "identifier": "@MaiyaTheDon"}, {"name": "ScarLip", "identifier": "@ScarLip"}, {"name": "Muni Long", "identifier": "@MuniLong"}, {"name": "Victoria Monét", "identifier": "@VictoriaMonet"}, {"name": "Chlöe", "identifier": "@chloe"}, {"name": "Halle", "identifier": "@halle"}, {"name": "Coco Jones", "identifier": "@cocojones"}, {"name": "Summer Walker", "identifier": "@SummerWalker"}, {"name": "Kehlani", "identifier": "@Kehlani"}, {"name": "Jhené Aiko", "identifier": "@JheneAiko"}, {"name": "Tinashe", "identifier": "@Tinashe"}, {"name": "SZA", "identifier": "@sza"}, {"name": "Snoh Aalegra", "identifier": "@SnohAalegra"}, {"name": "Brent Faiyaz", "identifier": "@brentfaiyaz"}, {"name": "Giveon", "identifier": "@Giveon"}, {"name": "Lucky Daye", "identifier": "@LuckyDaye"}, {"name": "Leon Thomas", "identifier": "@LeonThomas"}, {"name": "Arin Ray", "identifier": "@ArinRay"}, {"name": "BJ The Chicago Kid", "identifier": "@bjthechicagokid"}, {"name": "Anthony Hamilton", "identifier": "@AnthonyHamilton"}, {"name": "Anderson .Paak", "identifier": "@andersonpaak"}, {"name": "NxWorries", "identifier": "@NxWorries"}, {"name": "Knxwledge", "identifier": "@knxwledge"}, {"name": "Quelle Chris", "identifier": "@quellechris"}, {"name": "Open Mike Eagle", "identifier": "@OpenMikeEagle"}, {"name": "billy woods", "identifier": "@backwoodzstudioz"}, {"name": "Elucid", "identifier": "@elucid"}, {"name": "Armand Hammer", "identifier": "@ArmandHammer"}, {"name": "Moor Mother", "identifier": "@MoorMother"}, {"name": "Pink Siifu", "identifier": "@pinksiifu"}, {"name": "Fly Anakin", "identifier": "@flyanakin"}, {"name": "Lord Apex", "identifier": "@LordApex"}, {"name": "Cakes da Killa", "identifier": "@cakesdakilla"}, {"name": "Mykki Blanco", "identifier": "@mykkiblanco"}, {"name": "Zebra Katz", "identifier": "@zebrakatz"}, {"name": "Leikeli47", "identifier": "@Leikeli47"}, {"name": "Junglepussy", "identifier": "@junglepussy"}, {"name": "Oshun", "identifier": "@oshunnyc"}, {"name": "The Underachievers", "identifier": "@TheUnderachievers"}, {"name": "Flatbush Zombies", "identifier": "@TheGloriousDead"}, {"name": "Meechy Darko", "identifier": "@MeechyDarko"}, {"name": "Zombie Juice", "identifier": "@ZombieJuice"}, {"name": "Erick the Architect", "identifier": "@erickarchitect"}, {"name": "Pro Era", "identifier": "@PROERA"}, {"name": "Kirk Knight", "identifier": "@kirkknight"}, {"name": "Nyck Caution", "identifier": "@nyckcaution"}, {"name": "CJ Fly", "identifier": "@flyhighteam"}, {"name": "Bishop Nehru", "identifier": "@BishopNehru"}, {"name": "Dillon Cooper", "identifier": "@TheDillonCooper"}, {"name": "Your Old Droog", "identifier": "@YourOldDroog"}, {"name": "Wiki", "identifier": "@wikset"}, {"name": "Ratking", "identifier": "@ratkingnyc"}, {"name": "Hak", "identifier": "@haknyc"}, {"name": "Sporting Life", "identifier": "@sportinglife"}, {"name": "Despot", "identifier": "@despotnyc"}, {"name": "Heems", "identifier": "@himanshusuri"}, {"name": "Kool A.D.", "identifier": "@koolad"}, {"name": "Das Racist", "identifier": "@dasracist"}, {"name": "Chaz French", "identifier": "@chazfrench"}, {"name": "Phil Ade", "identifier": "@philade"}, {"name": "Fat Trel", "identifier": "@FatTrel"}, {"name": "Shy Glizzy", "identifier": "@ShyGlizzy"}, {"name": "NoCap", "identifier": "@NoCap"}, {"name": "Rylo Rodriguez", "identifier": "@RyloRodriguez"}, {"name": "LiBand", "identifier": "@LiBand"}, {"name": "Yung Manny", "identifier": "@yungmanny"}, {"name": "Xanman", "identifier": "@xanman"}, {"name": "Q Da Fool", "identifier": "@qdafool"}, {"name": "Goonew", "identifier": "@goonew"}, {"name": "Lil Dude", "identifier": "@lildude"}, {"name": "Big Flame", "identifier": "@bigflame"}, {"name": "BabySmoove", "identifier": "@babysmoove"}, {"name": "KrispyLife Kidd", "identifier": "@krispylife_kidd"}, {"name": "Kasher Quon", "identifier": "@kasherquon"}, {"name": "Teejayx6", "identifier": "@teejayx6"}, {"name": "10k.Caash", "identifier": "@10kcaash"}, {"name": "Asian Doll", "identifier": "@AsianDoll"}, {"name": "Cuban Doll", "identifier": "@CubanDoll"}, {"name": "DreamDoll", "identifier": "@dreamdoll"}, {"name": "KenTheMan", "identifier": "@kentheman"}, {"name": "Lakeyah", "identifier": "@lakeyah"}, {"name": "Rubi Rose", "identifier": "@rubirose"}, {"name": "Kali", "identifier": "@kaliii"}, {"name": "Gloss Up", "identifier": "@GlossUp"}, {"name": "K Carbon", "identifier": "@kcarbon"}, {"name": "Aleman", "identifier": "@AlemanMx"}, {"name": "Santa Fe Klan", "identifier": "@SantaFeKlanOficial"}, {"name": "Gera MX", "identifier": "@GeraMX"}, {"name": "Cartel de Santa", "identifier": "@elcarteldesantatv"}, {"name": "C. Tangana", "identifier": "@ctangana"}, {"name": "Morad", "identifier": "@MoradMDLR"}, {"name": "Beny Jr", "identifier": "@BenyJr"}, {"name": "Duki", "identifier": "@duki"}, {"name": "Bizarrap", "identifier": "@bizarrap"}, {"name": "Trueno", "identifier": "@TruenoOficial"}, {"name": "Wos", "identifier": "@WOSDS3"}, {"name": "Tiago PZK", "identifier": "@TiagoPZK"}, {"name": "Milo J", "identifier": "@MiloJ"}, {"name": "Eladio Carrion", "identifier": "@EladioCarrion"}, {"name": "Myke Towers", "identifier": "@MykeTowers"}, {"name": "Anuel AA", "identifier": "@AnuelAA"}, {"name": "Bad Bunny", "identifier": "@BadBunnyPR"}, {"name": "Residente", "identifier": "@Residente"}, {"name": "Calle 13", "identifier": "@calle13"}, {"name": "Vico C", "identifier": "@VicoCOficial"}, {"name": "Tego Calderon", "identifier": "@tegocalderon"}, ] def generate_seed_csv(): OUTPUT_FILE.parent.mkdir(parents=True, exist_ok=True) # 1. Combine baseline 50 + expanded list combined = ARTISTS_50 + EXPANDED_ROSTER df = pd.DataFrame(combined) df["name"] = df["name"].astype(str).str.strip() df["identifier"] = df["identifier"].astype(str).str.strip() # 2. Strict deduplication by artist name df = df.drop_duplicates(subset=["name"], keep="first").reset_index(drop=True) # 3. Ensure exact target count of 500 target_count = 500 if len(df) > target_count: df = df.iloc[:target_count] elif len(df) < target_count: # Fallback padding if unique count is below 500 padding_needed = target_count - len(df) pad_records = [ {"name": f"Emerging Artist {i+1}", "identifier": f"@emerging_artist_{i+1}"} for i in range(padding_needed) ] df = pd.concat([df, pd.DataFrame(pad_records)], ignore_index=True) df.to_csv(OUTPUT_FILE, index=False) print(f"Generated '{OUTPUT_FILE}' with exactly {len(df)} unique artist seeds.") if __name__ == "__main__": generate_seed_csv()