Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
/**
|
|
|
|
|
* Lee una carpeta de álbum y dice qué hay dentro. **No escribe nada.**
|
|
|
|
|
*
|
|
|
|
|
* node scripts/album/leer.mjs "S:\\senza paura\\album - cupido-sin-flechas"
|
|
|
|
|
* node scripts/album/leer.mjs <carpeta> --json > album.json
|
|
|
|
|
*
|
«Cupido sin flechas»: diez canciones de verdad, con sus prompts
El primer disco real del catálogo. Hasta ahora todo era inventado salvo
«Dorina».
`npm run album:importar -- "<carpeta>"` lee la carpeta y dice lo que haría;
solo escribe con `--escribir`, y hay que pedirlo. Es idempotente por slug, así
que corregir un `.txt` y volver a lanzarlo actualiza en vez de duplicar.
El desmontaje de los `.txt` está en `scripts/album/carpeta.mjs`, compartido con
el lector: si Suno vuelve a cambiar lo que pone al copiar, se arregla en un
sitio. De cada archivo salen tres cosas —el prompt de estilo, la letra con
etiquetas y la letra limpia de detrás de la raya— y la que se publica es la
limpia; la de las etiquetas es lo que se le pega a Suno, y va en el prompt.
Los títulos salen del nombre del máster porque las carpetas están sin acentuar
—«Quèdate», «Pague»—, y `--titulo` corrige lo que ni siquiera eso acierta: el
archivo francés pone «libére» donde va «libère». El idioma se deduce contando
palabras frecuentes: nueve en español y una en francés. La fecha sale del
máster más reciente, que es lo más cerca que hay de «cuándo quedó terminado».
Y el prompt de cada canción, que es lo que obligó a la migración 0012: `prompt`
ataba a un género y estos son de canciones concretas. No sustituye a
`genero_id`, se suma, y es coherente con lo que el modelo ya preveía —
`ejemplo_id` apunta al audio que salió del prompt—.
## El hueco de la portada
Diez fichas publicadas sin imagen destaparon algo que llevaba ahí desde
siempre: un `<img>` sin `src` es el icono de imagen rota del navegador, y eso
salía en siete sitios —la ficha del disco, la del tema, las dos tarjetas, el
carrito, la cuenta y la barra del reproductor—. Nunca se había visto porque
todo el catálogo tenía imagen.
`SinPortada` ocupa el hueco con la inicial del título. No dice «falta la
portada»: eso es un problema nuestro, no de quien mira. Y va a hacer falta más,
porque el texto de un disco entra por un lado y sus archivos por otro.
El botón de reproducir ya se apagaba solo sin audio; eso estaba bien hecho.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
* El desmontaje está en `carpeta.mjs`, que es el mismo que usa el importador.
|
|
|
|
|
* Esto solo lo cuenta: qué ha entendido de cada canción y qué no ha encontrado.
|
|
|
|
|
* Se mira antes de importar, porque el material no está en un formato sino en
|
|
|
|
|
* cinco —los `.txt` vienen de pegar lo que devuelve Suno, y Suno ha ido
|
|
|
|
|
* cambiando lo que pone alrededor—.
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
import path from 'node:path';
|
«Cupido sin flechas»: diez canciones de verdad, con sus prompts
El primer disco real del catálogo. Hasta ahora todo era inventado salvo
«Dorina».
`npm run album:importar -- "<carpeta>"` lee la carpeta y dice lo que haría;
solo escribe con `--escribir`, y hay que pedirlo. Es idempotente por slug, así
que corregir un `.txt` y volver a lanzarlo actualiza en vez de duplicar.
El desmontaje de los `.txt` está en `scripts/album/carpeta.mjs`, compartido con
el lector: si Suno vuelve a cambiar lo que pone al copiar, se arregla en un
sitio. De cada archivo salen tres cosas —el prompt de estilo, la letra con
etiquetas y la letra limpia de detrás de la raya— y la que se publica es la
limpia; la de las etiquetas es lo que se le pega a Suno, y va en el prompt.
Los títulos salen del nombre del máster porque las carpetas están sin acentuar
—«Quèdate», «Pague»—, y `--titulo` corrige lo que ni siquiera eso acierta: el
archivo francés pone «libére» donde va «libère». El idioma se deduce contando
palabras frecuentes: nueve en español y una en francés. La fecha sale del
máster más reciente, que es lo más cerca que hay de «cuándo quedó terminado».
Y el prompt de cada canción, que es lo que obligó a la migración 0012: `prompt`
ataba a un género y estos son de canciones concretas. No sustituye a
`genero_id`, se suma, y es coherente con lo que el modelo ya preveía —
`ejemplo_id` apunta al audio que salió del prompt—.
## El hueco de la portada
Diez fichas publicadas sin imagen destaparon algo que llevaba ahí desde
siempre: un `<img>` sin `src` es el icono de imagen rota del navegador, y eso
salía en siete sitios —la ficha del disco, la del tema, las dos tarjetas, el
carrito, la cuenta y la barra del reproductor—. Nunca se había visto porque
todo el catálogo tenía imagen.
`SinPortada` ocupa el hueco con la inicial del título. No dice «falta la
portada»: eso es un problema nuestro, no de quien mira. Y va a hacer falta más,
porque el texto de un disco entra por un lado y sus archivos por otro.
El botón de reproducir ya se apagaba solo sin audio; eso estaba bien hecho.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
import fs from 'node:fs';
|
|
|
|
|
import { leerAlbum } from './carpeta.mjs';
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
|
|
|
|
|
const CARPETA = process.argv[2];
|
|
|
|
|
const COMO_JSON = process.argv.includes('--json');
|
|
|
|
|
|
|
|
|
|
if (!CARPETA || !fs.existsSync(CARPETA)) {
|
|
|
|
|
console.error('uso: node scripts/album/leer.mjs "<carpeta del álbum>" [--json]');
|
|
|
|
|
process.exit(1);
|
|
|
|
|
}
|
|
|
|
|
|
«Cupido sin flechas»: diez canciones de verdad, con sus prompts
El primer disco real del catálogo. Hasta ahora todo era inventado salvo
«Dorina».
`npm run album:importar -- "<carpeta>"` lee la carpeta y dice lo que haría;
solo escribe con `--escribir`, y hay que pedirlo. Es idempotente por slug, así
que corregir un `.txt` y volver a lanzarlo actualiza en vez de duplicar.
El desmontaje de los `.txt` está en `scripts/album/carpeta.mjs`, compartido con
el lector: si Suno vuelve a cambiar lo que pone al copiar, se arregla en un
sitio. De cada archivo salen tres cosas —el prompt de estilo, la letra con
etiquetas y la letra limpia de detrás de la raya— y la que se publica es la
limpia; la de las etiquetas es lo que se le pega a Suno, y va en el prompt.
Los títulos salen del nombre del máster porque las carpetas están sin acentuar
—«Quèdate», «Pague»—, y `--titulo` corrige lo que ni siquiera eso acierta: el
archivo francés pone «libére» donde va «libère». El idioma se deduce contando
palabras frecuentes: nueve en español y una en francés. La fecha sale del
máster más reciente, que es lo más cerca que hay de «cuándo quedó terminado».
Y el prompt de cada canción, que es lo que obligó a la migración 0012: `prompt`
ataba a un género y estos son de canciones concretas. No sustituye a
`genero_id`, se suma, y es coherente con lo que el modelo ya preveía —
`ejemplo_id` apunta al audio que salió del prompt—.
## El hueco de la portada
Diez fichas publicadas sin imagen destaparon algo que llevaba ahí desde
siempre: un `<img>` sin `src` es el icono de imagen rota del navegador, y eso
salía en siete sitios —la ficha del disco, la del tema, las dos tarjetas, el
carrito, la cuenta y la barra del reproductor—. Nunca se había visto porque
todo el catálogo tenía imagen.
`SinPortada` ocupa el hueco con la inicial del título. No dice «falta la
portada»: eso es un problema nuestro, no de quien mira. Y va a hacer falta más,
porque el texto de un disco entra por un lado y sus archivos por otro.
El botón de reproducir ya se apagaba solo sin audio; eso estaba bien hecho.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
const album = leerAlbum(CARPETA);
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
|
|
|
|
|
if (COMO_JSON) {
|
«Cupido sin flechas»: diez canciones de verdad, con sus prompts
El primer disco real del catálogo. Hasta ahora todo era inventado salvo
«Dorina».
`npm run album:importar -- "<carpeta>"` lee la carpeta y dice lo que haría;
solo escribe con `--escribir`, y hay que pedirlo. Es idempotente por slug, así
que corregir un `.txt` y volver a lanzarlo actualiza en vez de duplicar.
El desmontaje de los `.txt` está en `scripts/album/carpeta.mjs`, compartido con
el lector: si Suno vuelve a cambiar lo que pone al copiar, se arregla en un
sitio. De cada archivo salen tres cosas —el prompt de estilo, la letra con
etiquetas y la letra limpia de detrás de la raya— y la que se publica es la
limpia; la de las etiquetas es lo que se le pega a Suno, y va en el prompt.
Los títulos salen del nombre del máster porque las carpetas están sin acentuar
—«Quèdate», «Pague»—, y `--titulo` corrige lo que ni siquiera eso acierta: el
archivo francés pone «libére» donde va «libère». El idioma se deduce contando
palabras frecuentes: nueve en español y una en francés. La fecha sale del
máster más reciente, que es lo más cerca que hay de «cuándo quedó terminado».
Y el prompt de cada canción, que es lo que obligó a la migración 0012: `prompt`
ataba a un género y estos son de canciones concretas. No sustituye a
`genero_id`, se suma, y es coherente con lo que el modelo ya preveía —
`ejemplo_id` apunta al audio que salió del prompt—.
## El hueco de la portada
Diez fichas publicadas sin imagen destaparon algo que llevaba ahí desde
siempre: un `<img>` sin `src` es el icono de imagen rota del navegador, y eso
salía en siete sitios —la ficha del disco, la del tema, las dos tarjetas, el
carrito, la cuenta y la barra del reproductor—. Nunca se había visto porque
todo el catálogo tenía imagen.
`SinPortada` ocupa el hueco con la inicial del título. No dice «falta la
portada»: eso es un problema nuestro, no de quien mira. Y va a hacer falta más,
porque el texto de un disco entra por un lado y sus archivos por otro.
El botón de reproducir ya se apagaba solo sin audio; eso estaba bien hecho.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
console.log(JSON.stringify(album, null, 2));
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
process.exit(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const si = (v) => (v ? '·' : 'FALTA');
|
|
|
|
|
const corto = (t, n) => (t ? (t.length > n ? t.slice(0, n - 1) + '…' : t) : '');
|
|
|
|
|
|
«Cupido sin flechas»: diez canciones de verdad, con sus prompts
El primer disco real del catálogo. Hasta ahora todo era inventado salvo
«Dorina».
`npm run album:importar -- "<carpeta>"` lee la carpeta y dice lo que haría;
solo escribe con `--escribir`, y hay que pedirlo. Es idempotente por slug, así
que corregir un `.txt` y volver a lanzarlo actualiza en vez de duplicar.
El desmontaje de los `.txt` está en `scripts/album/carpeta.mjs`, compartido con
el lector: si Suno vuelve a cambiar lo que pone al copiar, se arregla en un
sitio. De cada archivo salen tres cosas —el prompt de estilo, la letra con
etiquetas y la letra limpia de detrás de la raya— y la que se publica es la
limpia; la de las etiquetas es lo que se le pega a Suno, y va en el prompt.
Los títulos salen del nombre del máster porque las carpetas están sin acentuar
—«Quèdate», «Pague»—, y `--titulo` corrige lo que ni siquiera eso acierta: el
archivo francés pone «libére» donde va «libère». El idioma se deduce contando
palabras frecuentes: nueve en español y una en francés. La fecha sale del
máster más reciente, que es lo más cerca que hay de «cuándo quedó terminado».
Y el prompt de cada canción, que es lo que obligó a la migración 0012: `prompt`
ataba a un género y estos son de canciones concretas. No sustituye a
`genero_id`, se suma, y es coherente con lo que el modelo ya preveía —
`ejemplo_id` apunta al audio que salió del prompt—.
## El hueco de la portada
Diez fichas publicadas sin imagen destaparon algo que llevaba ahí desde
siempre: un `<img>` sin `src` es el icono de imagen rota del navegador, y eso
salía en siete sitios —la ficha del disco, la del tema, las dos tarjetas, el
carrito, la cuenta y la barra del reproductor—. Nunca se había visto porque
todo el catálogo tenía imagen.
`SinPortada` ocupa el hueco con la inicial del título. No dice «falta la
portada»: eso es un problema nuestro, no de quien mira. Y va a hacer falta más,
porque el texto de un disco entra por un lado y sus archivos por otro.
El botón de reproducir ya se apagaba solo sin audio; eso estaba bien hecho.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
console.log(`\n${album.titulo} (${album.slug})`);
|
|
|
|
|
console.log(`${album.canciones.length} canciones en ${path.basename(CARPETA)}\n`);
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
|
«Cupido sin flechas»: diez canciones de verdad, con sus prompts
El primer disco real del catálogo. Hasta ahora todo era inventado salvo
«Dorina».
`npm run album:importar -- "<carpeta>"` lee la carpeta y dice lo que haría;
solo escribe con `--escribir`, y hay que pedirlo. Es idempotente por slug, así
que corregir un `.txt` y volver a lanzarlo actualiza en vez de duplicar.
El desmontaje de los `.txt` está en `scripts/album/carpeta.mjs`, compartido con
el lector: si Suno vuelve a cambiar lo que pone al copiar, se arregla en un
sitio. De cada archivo salen tres cosas —el prompt de estilo, la letra con
etiquetas y la letra limpia de detrás de la raya— y la que se publica es la
limpia; la de las etiquetas es lo que se le pega a Suno, y va en el prompt.
Los títulos salen del nombre del máster porque las carpetas están sin acentuar
—«Quèdate», «Pague»—, y `--titulo` corrige lo que ni siquiera eso acierta: el
archivo francés pone «libére» donde va «libère». El idioma se deduce contando
palabras frecuentes: nueve en español y una en francés. La fecha sale del
máster más reciente, que es lo más cerca que hay de «cuándo quedó terminado».
Y el prompt de cada canción, que es lo que obligó a la migración 0012: `prompt`
ataba a un género y estos son de canciones concretas. No sustituye a
`genero_id`, se suma, y es coherente con lo que el modelo ya preveía —
`ejemplo_id` apunta al audio que salió del prompt—.
## El hueco de la portada
Diez fichas publicadas sin imagen destaparon algo que llevaba ahí desde
siempre: un `<img>` sin `src` es el icono de imagen rota del navegador, y eso
salía en siete sitios —la ficha del disco, la del tema, las dos tarjetas, el
carrito, la cuenta y la barra del reproductor—. Nunca se había visto porque
todo el catálogo tenía imagen.
`SinPortada` ocupa el hueco con la inicial del título. No dice «falta la
portada»: eso es un problema nuestro, no de quien mira. Y va a hacer falta más,
porque el texto de un disco entra por un lado y sus archivos por otro.
El botón de reproducir ya se apagaba solo sin audio; eso estaba bien hecho.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
for (const c of album.canciones) {
|
|
|
|
|
console.log(`── ${c.titulo} ${c.slug}`);
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
if (c.titulo !== c.carpeta) console.log(` carpeta: ${c.carpeta}`);
|
|
|
|
|
|
|
|
|
|
if (!c.letra) {
|
|
|
|
|
console.log(' letra: FALTA el .txt');
|
|
|
|
|
} else {
|
|
|
|
|
const l = c.letra.limpia?.split('\n').filter((x) => x.trim()).length ?? 0;
|
|
|
|
|
console.log(
|
|
|
|
|
` letra: ${l} versos limpios${c.letra.conEtiquetas ? ' · con etiquetas' : ''}`
|
|
|
|
|
);
|
|
|
|
|
console.log(` estilo: ${corto(c.letra.estilo, 96) || 'FALTA'}`);
|
|
|
|
|
const ajustes = Object.entries(c.letra.ajustes)
|
|
|
|
|
.map(([k, v]) => `${k} ${v}%`)
|
|
|
|
|
.join(' · ');
|
|
|
|
|
if (ajustes) console.log(` ajustes: ${ajustes}`);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log(
|
|
|
|
|
` audio: mp3 ${si(c.audio.mp3)} wav ${si(c.audio.wav)}` +
|
|
|
|
|
(c.audio.otras.length ? ` (+${c.audio.otras.length} tomas)` : '')
|
|
|
|
|
);
|
|
|
|
|
console.log(
|
|
|
|
|
` portada: ${c.portada ? path.basename(c.portada.ruta) : 'FALTA'}` +
|
|
|
|
|
`${c.portada?.recortar ? ' (miniatura 16:9, hay que recortarla)' : ''}`
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
);
|
|
|
|
|
console.log(` vídeo: ${c.video ? path.basename(c.video) : 'FALTA'}`);
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
console.log('');
|
|
|
|
|
}
|
|
|
|
|
|
«Cupido sin flechas»: diez canciones de verdad, con sus prompts
El primer disco real del catálogo. Hasta ahora todo era inventado salvo
«Dorina».
`npm run album:importar -- "<carpeta>"` lee la carpeta y dice lo que haría;
solo escribe con `--escribir`, y hay que pedirlo. Es idempotente por slug, así
que corregir un `.txt` y volver a lanzarlo actualiza en vez de duplicar.
El desmontaje de los `.txt` está en `scripts/album/carpeta.mjs`, compartido con
el lector: si Suno vuelve a cambiar lo que pone al copiar, se arregla en un
sitio. De cada archivo salen tres cosas —el prompt de estilo, la letra con
etiquetas y la letra limpia de detrás de la raya— y la que se publica es la
limpia; la de las etiquetas es lo que se le pega a Suno, y va en el prompt.
Los títulos salen del nombre del máster porque las carpetas están sin acentuar
—«Quèdate», «Pague»—, y `--titulo` corrige lo que ni siquiera eso acierta: el
archivo francés pone «libére» donde va «libère». El idioma se deduce contando
palabras frecuentes: nueve en español y una en francés. La fecha sale del
máster más reciente, que es lo más cerca que hay de «cuándo quedó terminado».
Y el prompt de cada canción, que es lo que obligó a la migración 0012: `prompt`
ataba a un género y estos son de canciones concretas. No sustituye a
`genero_id`, se suma, y es coherente con lo que el modelo ya preveía —
`ejemplo_id` apunta al audio que salió del prompt—.
## El hueco de la portada
Diez fichas publicadas sin imagen destaparon algo que llevaba ahí desde
siempre: un `<img>` sin `src` es el icono de imagen rota del navegador, y eso
salía en siete sitios —la ficha del disco, la del tema, las dos tarjetas, el
carrito, la cuenta y la barra del reproductor—. Nunca se había visto porque
todo el catálogo tenía imagen.
`SinPortada` ocupa el hueco con la inicial del título. No dice «falta la
portada»: eso es un problema nuestro, no de quien mira. Y va a hacer falta más,
porque el texto de un disco entra por un lado y sus archivos por otro.
El botón de reproducir ya se apagaba solo sin audio; eso estaba bien hecho.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
const sin = (f) => album.canciones.filter(f).map((c) => c.titulo);
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
const faltan = [
|
|
|
|
|
['sin .txt', sin((c) => !c.letra)],
|
|
|
|
|
['sin prompt de estilo', sin((c) => c.letra && !c.letra.estilo)],
|
|
|
|
|
['sin letra limpia', sin((c) => c.letra && !c.letra.limpia)],
|
|
|
|
|
['sin mp3 máster', sin((c) => !c.audio.mp3)],
|
|
|
|
|
['sin portada', sin((c) => !c.portada)],
|
|
|
|
|
['con la miniatura por portada', sin((c) => c.portada?.recortar)],
|
Lee la carpeta de un album y dice que hay dentro
`node scripts/album/leer.mjs "<carpeta>"`. No escribe nada: solo informa.
Hace falta porque el material no esta en un formato, esta en cinco. Los `.txt`
de letra vienen de pegar lo que devuelve Suno, y Suno ha ido cambiando lo que
pone alrededor —«Add a Caption», «Weirdness 58%», «(Cover) artwork»—, asi que
la cabecera es distinta en casi cada cancion. Un importador que diera eso por
bueno meteria en la base la palabra «artwork» como si fuera una letra.
De cada `.txt` saca tres cosas: el prompt de estilo que se le dio a Suno, la
letra con etiquetas —que es lo que se le pega a Suno, no lo que se publica— y
la letra limpia de detras de la raya de guiones, que es la de la web. Cuando no
hay raya, la limpia se saca quitando las lineas de etiqueta.
El titulo sale del nombre del master y no de la carpeta: las carpetas estan sin
acentuar o mal acentuadas —«Quedate», «Pague», «para que recordar»— y el master
lleva el titulo como se escribe.
Sobre las diez canciones de «cupido-sin-flechas» encuentra letra, prompt, mp3 y
wav en todas; falta portada en una y video en tres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 weeks ago
|
|
|
['sin vídeo', sin((c) => !c.video)]
|
|
|
|
|
].filter(([, cuales]) => cuales.length > 0);
|
|
|
|
|
|
|
|
|
|
if (faltan.length === 0) {
|
|
|
|
|
console.log('No falta nada.');
|
|
|
|
|
} else {
|
|
|
|
|
console.log('Lo que falta:');
|
|
|
|
|
for (const [que, cuales] of faltan) console.log(` ${que}: ${cuales.join(', ')}`);
|
|
|
|
|
}
|