Aller au contenu

Pipeline d’importation

L’importation transforme un dossier de fichiers en entrée de catalogue sans modifier un octet des fichiers. Cette page décrit le pipeline du guide d’utilisation.

Les dossiers surveillés sont suivis par les événements de système de fichiers de la plateforme, temporisés, puis réanalysés en cas de changement ; les analyses se réconcilient avec la liste de candidats existante au lieu de recommencer. Le scanner classe un dossier comme une seule sortie (audio directement à l’intérieur, ou sous-dossiers en forme de disque comme CD1/CD2), ou descend dedans comme dans une collection. Les fichiers sont classés par extension en audio, illustrations et documents, puis l’audio est sondé : le codec qui compte est celui que FFmpeg trouve dans les octets, pas l’extension de fichier. Les dossiers qui contiennent des marqueurs de téléchargement partiel sont exclus jusqu’à la fin du téléchargement.

Une fiche CUE transforme une image audio en liste de pistes. Le parseur gère pregaps et postgaps, interprètes et ISRC par piste, ainsi que les dispositions CUE à image unique et à un fichier par piste. Les limites de pistes sont converties depuis les frames CUE (1/75e de seconde) vers des positions d’échantillon exactes, qui deviennent ensuite les fenêtres d’octets et d’échantillons utilisées par la lecture.

Projets de métadonnées

Lien vers cette section

Chaque candidat stocke un brouillon de métadonnées modifiable et une provenance optionnelle. Le brouillon peut être vide, rempli directement, rempli à partir d’une version externe ou rempli à partir d’un instantané de balises de fichier stocké. Les enregistrements de provenance indiquent où le brouillon actuel a commencé ; les modifications ultérieures ne l’effacent pas.

L’emplacement de métadonnées supérieur affiche soit le brouillon, soit le navigateur Rechercher en ligne, soit le navigateur Tags des fichiers. L’ouverture ou la fermeture d’un navigateur ne réécrit pas le brouillon. Appliquering une source remplace le brouillon, sa provenance et sa couverture source sélectionnée dans une transaction de base de données tout en conservant les rôles de fichier, les liaisons CUE, les affectations de disque et d’autres décisions de mappage.

Rechercher en ligne

Lien vers cette section

Rechercher en ligne est le seul chemin qui exécute l’identification. Il calcule un ID de disque à partir d’un journal d’extraction ou d’une feuille CUE, reconnaît les codes-barres et le texte du catalogue avec OCR, interroge MusicBrainz et Discogs et fait correspondre les résultats.

Le paramètre Source de métadonnées par défaut comporte trois valeurs. Aucune crée un brouillon vide et ne lance aucun travail de métadonnées. Tags des fichiers lit et applique l’instantané des tags. Rechercher en ligne ouvre le flux de travail en ligne. Mode Rechercher en ligne par défaut choisit Automatique, qui met en file d’attente l’extraction des indices, les requêtes aux fournisseurs et la mise en correspondance, ou Rechercher manuellement, qui ne lance aucune identification. Rechercher en ligne utilise ce mode pour chaque candidat ; Automatique ne relance pas une opération active ou terminée.

Tags des fichiers

Lien vers cette section

Tags des fichiers lit les balises audio intégrées et les métadonnées CUE de manière paresseuse, à moins qu’il ne s’agisse de la valeur par défaut configurée pour un candidat nouvellement découvert. L’aperçu stocke un instantané estampillé avec la génération de numérisation du candidat, la révision d’édition du fichier et les fichiers audio observés. Appliquerl’importer remplace le brouillon de cet instantané exact. L’importation consomme le même instantané et échoue avant que la bibliothèque n’écrive si son tampon ou ses observations ont changé ; elle ne lit pas une réponse différente.

Les champs de sortie et de piste du brouillon vierge sont modifiables immédiatement, et il devient importable lorsque les champs et les mappages requis sont validés. La liste de candidats ne traite pas la provenance manquante comme une erreur ou une demande d’attention.

MusicBrainz est interrogé anonymement avec un rythme strict d’une requête par seconde. Discogs s’authentifie avec le jeton personnel de l’utilisateur depuis le trousseau, en respectant son débit et en réessayant dans ses limites, et un jeton refusé est signalé comme tel afin que l’interface puisse l’indiquer plutôt que de laisser les recherches échouer en silence. Les réponses sont mises en cache par session. Quand une sortie est choisie, ce que bae utilise de ses documents — les informations d’album et de pressage, la liste complète des pistes avec crédits et œuvres, les choix de pochette et le nom que lui donnent les autres catalogues — est extrait une fois dans la base de données ; le JSON brut n’est pas conservé.

Confirmer une importation exécute, dans l’ordre :

  1. Vérification du décodage : chaque piste est décodée de bout en bout ; un rip qui ne peut pas se décoder entièrement fait échouer l’importation avant toute écriture.
  2. Analyse du niveau sonore : le niveau sonore intégré et le pic vrai sont mesurés par piste et par album pendant cette même passe de décodage, stockés pour l’usage du replay gain.
  3. Sélection de la pochette : l’illustration choisie (distante, image du dossier ou intégrée) est rerendue en vignette d’affichage ; l’original est conservé parmi les fichiers de la sortie s’il venait du dossier.
  4. Écriture atomique : la sortie, les pistes, les crédits, les identités, les formats, les segments, les fichiers et la pochette sont validés dans une transaction. Il n’existe aucun état à moitié importé.

La sortie arrive en référençant les fichiers de l’utilisateur en place. Pour une importation vers le cloud, coven lit et hache chaque fichier avant l’écriture, et la même écriture prépare chaque fichier auprès de coven, fait pointer chaque ligne vers son fichier et met son envoi en file. Une importation locale enregistre plutôt le chemin, la taille et la date de modification de chaque fichier sur cet appareil ; ses octets ne sont lus que si la sortie est plus tard déplacée vers le cloud. Dans les deux cas, les octets originaux des fichiers restent la source de vérité tout du long ; rien de ce que l’utilisateur a donné à bae n’est jamais supprimé ou modifié.

Reconnaître les rips

Lien vers cette section

Chaque import crée une sortie avec un nouvel identifiant aléatoire et ses propres lignes de pistes et de fichiers. Chaque appareil enregistre dans local_release_origin un SHA-256 des chemins relatifs triés, tailles et dates de modification des fichiers lus par chacun de ses imports ; cet enregistrement n’est jamais synchronisé. Un dossier dont cet appareil a enregistré le hachage figure dans l’onglet des imports terminés, où qu’il ait été déplacé, et sa ligne nomme la seule sortie importée depuis ce dossier. Importer à nouveau les mêmes fichiers sur cet appareil échoue, et l’onglet des imports terminés ne propose aucune action de réimportation.