Faits : A. Le 25 janvier 2018, l'Agencia Tributaria espagnole (ci-après : l'autorité requérante) a adressé à l'Administration fédérale des contributions (ci-après: l'Administration fédérale) une demande d'assistance administrative concernant B._, dont elle était en train de procéder au contrôle de la situation fiscale. Elle y expliquait que B._ avait transféré ses droits d'image à la société brésilienne B._ s/s Limitada, détenue par ses parents, et qu'elle voulait vérifier si cette cession était intervenue aux conditions du marché. A cet effet, elle souhaitait notamment obtenir de la société suisse A._ SA (ci-après: A._ SA) les contrats qu'elle avait conclus avec B._ s/s Limitada et en particulier ceux qui concernaient les droits d'image de B._ ("contracts signed by A._ with B._ s/s Limitada", "any other contract signed by A._ related to B._'s image rights"). Par ordonnance de production du 19 février 2018, l'Administration fédérale a demandé à A._ SA de lui fournir les documents requis, d'informer B._ de l'ouverture de la procédure d'assistance administrative et de l'inviter à désigner un représentant en Suisse. Le 14 mars 2018, A._ SA s'est opposée à la transmission de renseignements à l'autorité espagnole, parce qu'ils étaient, selon elle, couverts par le secret d'affaires et que leur production pourrait lui causer un préjudice pécuniaire. Le 29 mars 2018, l'Administration fédérale a maintenu son ordonnance de production, faute d'éléments suffisants lui permettant d'admettre que les renseignements demandés étaient couverts par le secret d'affaires. Le 10 avril 2018, A._ SA a fourni les informations requises à l'Administration fédérale. Les 18 avril et 24 mai 2018, l'Administration fédérale a transmis les pièces du dossier à A._ SA et à B._, en leur impartissant un délai pour prendre position au sujet des renseignements qu'elle envisageait de communiquer à l'autorité requérante, ce qu'ils ont fait, respectivement les 15 mai et 14 juin 2018. Le 10 août 2018, déférant à une ordonnance de production complémentaire du 30 juillet 2018, A._ SA a transmis d'autres renseignements à l'Administration fédérale. Le 17 septembre 2018, l'Administration fédérale a à nouveau communiqué à A._ SA et à B._ les renseignements qu'elle entendait transmettre et ces derniers se sont déterminés à ce sujet les 21 et 26 septembre 2018. Parmi ces renseignements figurait le contrat relatif aux droits de B._, qui liait non seulement A._ SA et B._ s/s Limitada, mais aussi des entités brésiliennes du groupe A._, ainsi que les sociétés brésiliennes C._ Ltda et D._ Ltda (toutes ces sociétés collectivement désignées ci-après : les Sociétés brésiliennes). B. Par décision finale du 30 octobre 2018, notifiée à B._ et à A._ SA, l'Administration fédérale a accordé l'assistance administrative aux autorités espagnoles. A._ SA a recouru contre cette décision auprès du Tribunal administratif fédéral pour demander, principalement, son annulation, subsidiairement, le caviardage du nom des Sociétés brésiliennes. Dans son arrêt du 8 avril 2019, le Tribunal administratif fédéral a constaté la nullité de la décision finale du 30 octobre 2018, au motif que l'Administration fédérale avait gravement violé le droit d'être entendues des Sociétés brésiliennes en ne les informant pas de l'existence de la procédure d'assistance administrative. Il a partant déclaré irrecevable le recours de A._ SA. C. Agissant par la voie du recours en matière de droit public, l'Administration fédérale demande en substance au Tribunal fédéral d'annuler l'arrêt du 8 avril 2019 du Tribunal administratif fédéral en ce sens que sa décision finale du 30 octobre 2018 est confirmée et que le recours de A._ SA est rejeté; subsidiairement, d'annuler l'arrêt du 8 avril 2019 et de renvoyer la cause au Tribunal administratif fédéral pour nouvel examen dans le sens des considérants. Le Tribunal administratif fédéral se réfère à son arrêt. A._ SA s'en rapporte à justice sur la recevabilité et le fond du recours, tout en soulignant que, selon elle, les Sociétés brésiliennes sont des tiers non concernés par la procédure, dont le nom doit être caviardé. L'Administration fédérale a déposé des observations.