{{ currentLang === 'en' ? 'Catalogue number' : 'Numéro de catalogue' }} {{ prefillFromLink }} {{ currentLang === 'en' ? 'pre-filled — please complete and submit to open the pre-order.' : 'pré-rempli — complétez et envoyez pour ouvrir la pré-commande.' }}
{{ currentLang === 'en' ? 'Draft Restored' : 'Brouillon restaure' }}

{{ currentLang === 'en' ? 'Files must be re-uploaded.' : 'Les fichiers doivent etre re-uploades.' }}

{{ currentLang === 'en' ? 'Saved drafts:' : 'Brouillons enregistres :' }}
{{ submitResult.success ? 'OK' : 'X' }}
{{ submitResult.success ? t('successTitle') : t('errorTitle') }}
{{ submitResult.message }}
{{ t('resetSessionHint') }}
{{ currentLang === 'en' ? 'This label is not in the CRM' : 'Ce label n\'est pas dans le CRM' }}
{{ currentLang === 'en' ? 'Did you mean:' : 'Vouliez-vous dire :' }}
{{ currentLang === 'en' ? 'Distributor reference?' : 'Référence distributeur ?' }}
inventory.yoyaku.fr/supplier
{{ currentLang === 'en' ? 'Distributor refs never go through label.yoyaku.fr. A direct label deal? Create the label in the CRM first.' : 'Les réfs distributeur ne passent jamais par label.yoyaku.fr. Un deal label direct ? Créez d\'abord le label dans le CRM.' }}
{{ t('reference') }}: {{ form.catalogueNumber }}
{{ currentLang === 'en' ? 'Your tracks' : 'Vos pistes' }}
{{ track.position }} {{ track.artist }} - {{ track.title }}
{{ currentLang === 'en' ? 'Preview & verify audio' : 'Verifier les pistes audio' }}
View Online Submission Queue
{{ l.name }} · id={{ l.id }} · deal={{ l.dealType }}
Searching...
Submitting as {{ adminAsLabel.name }} (id={{ adminAsLabel.id }})
Loading productions...
{{ adminProductionsError }}
Form catalogueNumber auto-aligned to {{ adminAsProductionSku }}. Confirmation modal will appear before submit.
{{ currentLang === 'en' ? 'Already have a release sheet?' : 'Vous avez deja une fiche produit ?' }} AI {{ currentLang === 'en' ? 'Analyzing your release sheet...' : 'Analyse de votre fiche produit...' }} {{ currentLang === 'en' ? 'Form auto-filled!' : 'Formulaire pre-rempli !' }}
{{ currentLang === 'en' ? 'Drop your release info document here (PDF, DOCX, TXT) — AI will extract catalogue number, artists, tracklist and auto-fill the form below.' : 'Deposez votre document d\'infos de sortie ici (PDF, DOCX, TXT) — l\'IA extraira le numero de catalogue, artistes, tracklist et pre-remplira le formulaire ci-dessous.' }} {{ currentLang === 'en' ? 'Extracting catalogue number, artists, tracklist...' : 'Extraction du numero de catalogue, artistes, tracklist...' }} {{ parserMissing.length === 0 ? (currentLang === 'en' ? 'All fields extracted successfully' : 'Tous les champs extraits avec succes') : (currentLang === 'en' ? parserMissing.length + ' field(s) need manual entry' : parserMissing.length + ' champ(s) a completer manuellement') }}
{{ currentLang === 'en' ? 'Not your audio files or artwork — just the text document with your release metadata.' : 'Pas vos fichiers audio ou visuels — juste le document texte avec les metadonnees de votre sortie.' }}
{{ currentLang === 'en' ? 'Optional' : 'Optionnel' }}
{{ parserSource }} {{ currentLang === 'en' ? 'Fields auto-filled' : 'Champs remplis automatiquement' }}
{{ currentLang === 'en' ? 'Missing:' : 'A completer :' }} {{ parserMissing.join(', ') }}
{{ currentLang === 'en' ? 'Paste your release info below (catalogue number, artist, title, tracklist...):' : 'Collez vos infos de sortie ci-dessous (numero de catalogue, artiste, titre, tracklist...) :' }}
{{ currentLang === 'en' ? 'Paste a link to your release sheet (Google Doc, Dropbox, etc.):' : 'Collez un lien vers votre fiche produit (Google Doc, Dropbox, etc.) :' }}
{{ parsingText }}
{{ currentLang === 'en' ? 'Choose format first' : 'Choisissez le format en premier' }} *

{{ currentLang === 'en' ? 'The image slots below adapt to the format you pick — number of sleeves and labels.' : 'Les emplacements d\'images ci-dessous s\'adaptent au format choisi — nombre de pochettes et de labels.' }}

{{ currentLang === 'en' ? 'Only affects kurtezy.com. Other sites show the WC gallery as usual.' : 'N\'affecte que kurtezy.com. Autres sites affichent la galerie WC normalement.' }}

{{ currentLang === 'en' ? 'Variant data temporarily unavailable — this release will default to Black vinyl. Reload the page to retry the picker.' : 'Données de variante indisponibles — ce pressage utilisera le vinyle noir par défaut. Rechargez la page pour réessayer.' }}

{{ currentLang === 'en' ? 'Used by Kurtezy + Yoyaku app to render the correct 3D vinyl. Leave on Black if unsure.' : 'Utilisé par Kurtezy + Yoyaku app pour le rendu 3D du vinyle. Laissez Black en cas de doute.' }}

{{ formatChangeNotice }}
{{ currentLang === 'en' ? '3D preview' : 'Aperçu 3D' }} Kurtezy live
{{ previewStatus }}
{{ currentLang === 'en' ? 'Checking retained manufacturing specs…' : 'Recherche des specs manufacturing retenues…' }}
{{ currentLang === 'en' ? 'Manufacturing specs could not be loaded.' : 'Impossible de charger les specs manufacturing.' }}
{{ currentLang === 'en' ? 'Manufacturing has specs ready' : 'Specs déjà décidées par YOYAKU Manufacturing' }} cover: {{ prefillBanner.cover_type }} {{ currentLang === 'en' ? 'holes' : 'trous' }}: {{ prefillBanner.holes_mode }} MO: {{ prefillBanner.odoo_so_name }} {{ currentLang === 'en' ? 'source' : 'provenance' }}: {{ recipeSourceLabel(prefillBanner.source) }}
{{ currentLang === 'en' ? 'Retained manufacturing specs' : 'Specs manufacturing retenues' }} {{ currentLang === 'en' ? 'from' : 'via' }} {{ recipeSourceLabel(prefillSource) }}
{{ recipeFieldLabel(row.key) }} {{ recipeValueLabel(row.value) }}
{{ currentLang === 'en' ? 'Read-only reference — these retained production details are not changed by this form.' : 'Référence en lecture seule — ce formulaire ne modifie pas ces détails de production retenus.' }}
{{ warning.code === 'unsupported_asymmetric_cover_holes' ? (currentLang === 'en' ? 'Manufacturing specifies asymmetric cover holes (' + warning.value + '). Choose the front or back presentation manually; it was not guessed.' : 'Manufacturing indique des trous asymétriques (' + warning.value + '). Choisissez manuellement la présentation avant ou arrière ; aucune supposition n’a été faite.') : warning.code }}
🧬 {{ currentLang === 'en' ? 'Inherited from your previous release' : 'Hérité de votre release précédente' }} {{ seriesChip.source_sku }}

{{ currentLang === 'en' ? 'Live preview updates as you pick cover type + vinyl variant.' : 'Aperçu actualisé à chaque changement de pochette + variante vinyle.' }}

Images AI Vision

{{ currentLang === 'en' ? 'Drop your images — AI reads label text to pre-fill the form automatically.' : 'Deposez vos images — l\'IA lit le texte des labels pour pre-remplir le formulaire.' }}

{{ currentLang === 'en' ? 'Image guidelines' : 'Guide images' }}

Sleeve Front / Sleeve Back — The cover artwork. Recommended but optional for vinyl releases: with no sleeve at all, upload the two centre labels only — the release ships label-only and the 3D render shows the disc alone. Square format, minimum 1400x1400px.

Label Side A / Side B — The vinyl centre labels for each side. The system will apply the black ring automatically if needed.

AI Label Reading — When you drop a label image, our AI reads the text on the macaron to pre-fill tracklist, artist, and other metadata automatically.

Only upload final artwork — no mockups, no watermarks. Images are published directly to the website.

Accepted formats: JPG, JPEG, PNG, WEBP, HEIC, HEIF, AVIF, TIFF, GIF — max 200 MB / file.

Sleeve Front / Sleeve Back — L'artwork de la pochette. Recommandé mais optionnel pour une sortie vinyle : sans pochette du tout, uploadez uniquement les deux macarons — la release part en label-only et le rendu 3D affiche le disque seul. Format carre, minimum 1400x1400px.

Label Side A / Side B — Les macarons du vinyle pour chaque face. Le systeme appliquera le ring noir automatiquement si besoin.

Lecture IA du label — Quand vous deposez une image de label, notre IA lit le texte du macaron pour pre-remplir la tracklist, l'artiste et autres metadonnees automatiquement.

N'uploadez que les artworks finaux — pas de mockups, pas de filigranes. Les images sont publiees directement sur le site.

Formats acceptes : JPG, JPEG, PNG, WEBP, HEIC, HEIF, AVIF, TIFF, GIF — 200 Mo max / fichier.

{{ currentLang === 'en' ? 'Pick a format above to see image slots' : 'Choisissez un format ci-dessus pour voir les emplacements d\'images' }}
{{ currentLang === 'en' ? 'No back cover — the front image will be used on the back of the sleeve in the 3D render. You can submit without it.' : 'Pas de dos de pochette — l\'image recto sera utilisée au verso sur le rendu 3D. Vous pouvez soumettre sans.' }}
{{ currentLang === 'en' ? 'No sleeve artwork detected — the 3D render will show the disc alone (label-only release).' : 'Aucune pochette détectée — le rendu 3D affichera le disque seul (release macarons seuls).' }}
{{ currentLang === 'en' ? 'Reading ' + Object.values(imageSlots).filter(s => s).length + ' image(s)...' : 'Lecture de ' + Object.values(imageSlots).filter(s => s).length + ' image(s)...' }}
{{ currentLang === 'en' ? 'Pre-filled:' : 'Pre-rempli :' }} {{ field }}
{{ imageBatchError }}
{{ currentLang === 'en' ? 'Vision detected differences:' : 'Differences detectees par la vision :' }}
{{ c.label }}: {{ c.current }} {{ c.field === 'tracklist' ? (c.vision.split('\n').length + ' tracks from image') : c.vision }}
{{ currentLang === 'en' ? 'AI detected metadata from label' : 'IA a detecte des metadonnees sur le label' }}
{{ c.field }}: {{ c.current }} {{ c.suggested }}
{{ currentLang === 'en' ? 'Auto-filled:' : 'Rempli auto :' }} {{ visionResult.autoFilled.join(', ') }}
{{ currentLang === 'en' ? 'Tracklist from label:' : 'Tracklist depuis le label :' }}
{{ t.position }}. {{ t.title }}{{ t.remixer ? ' (' + t.remixer + ')' : '' }}
{{ Object.values(imageSlots).filter(s => s).length }} image(s) ready
{{ t('draft_saved') || 'Draft saved' }}
{{ t('draft_restored') || 'Draft restored' }}
{{ t('selectRelease') || 'Select a release to copy specs from:' }}
{{ entry.sku }}
{{ entry.label }} - {{ entry.format || 'No format' }}
1 {{ t('basicInfo') }}
{{ emailError }}
MFG
Loading your labels…
Your labels:
You don't own any labels yet.
{{ label.name }}
No labels found
+ Create new label
⚠️ Did you mean an existing label?
You typed "{{ elixigaLabelWarning.query }}". We found similar labels already in YOYAKU's catalog:
{{ artist.name }}
No artists found
⚠️ Did you mean an existing artist?
You typed "{{ elixigaArtistWarnings[0].query }}". Similar artists in YOYAKU's catalog:
+
Common Ground
{{ t('commonGroundDesc') }}
{{ discogsError }}
{{ discogsPreview.title }}
{{ discogsPreview.artist }}
Release auto-set to +60 days
{{ daysUntilRelease }}d
{{ t('minDateError') }}
{{ currentLang === 'en' ? 'Who manufactures the vinyl?' : 'Qui fabrique le vinyle ?' }}
{{ currentLang === 'en' ? 'How is the label paid?' : 'Comment le label est-il payé ?' }}
{{ currentLang === 'en' ? 'Consignment stock & payouts are managed on inventory.yoyaku.fr — no statement here.' : 'Le dépôt-vente est géré sur inventory.yoyaku.fr — pas de statement ici.' }}
2 Genres
3 {{ t('descriptionSection') }} *

{{ currentLang === 'en' ? 'Artist bio, release description, relevant info.' : 'Bio artiste, description release, infos pertinentes.' }}

4 Preview Audio
Online distribution only — preview files must be 1m30–2min max. For full masters & vinyl pressing, use the pricing tool. Distribution online uniquement — les fichiers preview doivent faire 1m30 à 2min max. Pour les masters complets & le pressage vinyle, utilisez le pricing tool.

MP3 ou WAV. Les fichiers seront convertis en MP3 320kbps automatiquement.

{{ currentLang === 'en' ? 'Some tracks are missing titles.' : 'Certaines pistes n\'ont pas de titre.' }} {{ currentLang === 'en' ? 'Drop a label image above to auto-fill titles via vision analysis, or edit them manually in the tracklist.' : 'Deposez une image de label ci-dessus pour remplir les titres automatiquement, ou editez-les manuellement dans la tracklist.' }}

Name your files = name your tracks. The filename becomes the track title. Prefix with the vinyl position so tracks sort automatically.

A1 - Ghosts Of Massilia.wav
A2 - Haunted Hill.wav
B1 - 99 Sand Attack.wav
Auto-sorted by position Titles filled from filenames Without prefix → manual order confirmation

VA tip: use A1 - Artist Name - Title.wav to auto-fill artist names.

Nommez vos fichiers = nommez vos pistes. Le nom du fichier devient le titre. Prefixez avec la position vinyle pour un tri automatique.

A1 - Ghosts Of Massilia.wav
A2 - Haunted Hill.wav
B1 - 99 Sand Attack.wav
Tri automatique par position Titres remplis depuis les noms Sans prefixe → confirmation manuelle de l'ordre

Compil : utilisez A1 - Nom Artiste - Titre.wav pour remplir les artistes automatiquement.

Drop MP3/WAV files
or click to browse
{{ currentLang === 'en' ? 'Tip: prefix files with vinyl position (A1, B1...)' : 'Astuce : prefixez vos fichiers avec la position vinyle (A1, B1...)' }}
Tracklist *
{{ currentLang === 'en' ? 'Track titles come from your filenames — edit them here as they should appear on the site' : 'Les titres viennent de vos noms de fichiers — editez-les ici tels qu\'ils doivent apparaitre sur le site' }}
{{ track.format }} {{ track.metadata.sizeFormatted }} {{ track.metadata.durationFormatted }}
No tracks yet
{{ s.label }}: {{ s.count }} track{{ s.count > 1 ? 's' : '' }} — {{ s.duration }}
Total: {{ sideSummary.total }}

No track positions detected in filenames. Files are in drop order. Please verify the order matches your tracklist — use the drag handles to reorder if needed.

Aucune position de piste detectee dans les noms de fichiers. L'ordre correspond a celui du depot. Verifiez que l'ordre correspond a votre tracklist — utilisez les poignees pour reorganiser si besoin.

{{ currentLang === 'en' ? 'Track order confirmed' : 'Ordre des pistes confirme' }}
{{ currentLang === 'en' ? 'Following a security update, the files saved with your draft must be selected again. Your tracklist and release details are preserved — drop your audio files (and check your images) to re-attach them.' : 'Suite à une mise à jour de sécurité, les fichiers enregistrés avec votre brouillon doivent être sélectionnés à nouveau. Votre tracklist et vos informations sont conservées — déposez vos fichiers audio (et vérifiez vos images) pour les re-attacher.' }}
{{ audioTracks.filter(t => t.file || t.serverUrl).length }} track(s) ready Total: {{ formatTotalSize(audioTracks) }}
{{ currentLang === 'en' ? `${audioTracks.length} track(s) ready - Drop MP3/WAV files to match` : `${audioTracks.length} track(s) prets - Deposez les fichiers MP3/WAV` }}
{{ audioTracks.filter(t => t.file || t.serverUrl).length }}/{{ audioTracks.length }} {{ currentLang === 'en' ? 'files matched' : 'fichiers associes' }} Total: {{ formatTotalSize(audioTracks) }}
5 {{ t('termsConditions') }}
{{ currentLang === 'en' ? 'One or more preview files exceed 3 minutes. Online distribution previews must be 1m30–2min max. Please shorten or use the pricing tool for full masters.' : 'Un ou plusieurs fichiers de preview dépassent 3 minutes. Les previews pour la distribution en ligne doivent faire 1m30–2min max. Raccourcissez ou utilisez l\'outil de tarification pour les masters complets.' }}
{{ currentLang === 'en' ? 'Full-length audio detected' : 'Audio en version intégrale détecté' }}

{{ currentLang === 'en' ? 'These files are longer than the usual online-preview length.' : 'Ces fichiers dépassent la durée habituelle d’une preview en ligne.' }}

  • {{ currentLang === 'en' ? 'Track' : 'Piste' }} {{ t.position }} — {{ t.title }} ({{ Math.floor(t.duration/60) }}m{{ String(t.duration%60).padStart(2,'0') }}s)

{{ currentLang === 'en' ? 'Online distribution previews must be cuts of 1m30–2min from the original tracks. For full WAV/AIFF masters going to vinyl pressing, use the pricing tool at ' : 'Les previews pour la distribution en ligne doivent être des cuts de 1m30–2min des tracks originaux. Pour les masters WAV/AIFF complets pour pressage vinyle, utilisez l\'outil de pricing sur ' }} /pricing.

{{ t('tracklistCheckWarning') }}
{{ currentLang === 'en' ? 'Missing required fields:' : 'Champs requis manquants :' }}
{{ currentLang === 'en' ? 'Please accept all terms and conditions to submit' : 'Veuillez accepter toutes les conditions pour soumettre' }}
{{ uploadStatusText }}
YOYAKU
LABEL

Sign in to submit your release

Sign in with Google

Only for YOYAKU team accounts

or
{{ authMessage }}
New label? Create a label account Already have an account? Sign in