Changeset 0d7acdf in Klonkt for src/services/AudioEmbedService.js


Ignore:
Timestamp:
06/20/2026 05:04:13 AM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
3ec691c
Parents:
fef781e
Message:

feat(audio): per-track owner/credit + license (+ written to mp3 ID3 tags)

New per-track metadata: credit (copyright holder) + license. Editable in the
track editor (license with datalist presets: All rights reserved, CC BY/…/CC0).

  • DB: audio_tracks.credit + .license.
  • ID3: on upload and on every metadata edit the tags are written into the mp3 itself — copyright=credit, comment=license (new retagMp3() in the transcoder, -c copy, no re-encode) → ownership travels with a download.
  • Visible: "credit · license" line below each track (post-audio-track).

busters audio.css?v=7.

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/services/AudioEmbedService.js

    rfef781e r0d7acdf  
    253253        artist: t.artist || '',
    254254        cover: t.cover || '',
     255        credit: t.credit || '',
     256        license: t.license || '',
    255257      });
    256258      const titleH = this.escape(t.title || 'Untitled');
    257259      const artistH = this.escape(t.artist || '');
    258260      const urlH = this.escape(t.url);
     261      // Zichtbare eigenaar/licentie-regel onder de track.
     262      const creditBits = [this.escape(t.credit || ''), this.escape(t.license || '')].filter(Boolean).join(' · ');
    259263      const dataAttr = trackJson
    260264        .replace(/&/g, '&amp;').replace(/'/g, '&#39;').replace(/</g, '&lt;');
     
    267271    <div class="pat-title">${titleH}</div>
    268272    ${artistH ? `<div class="pat-artist">${artistH}</div>` : ''}
     273    ${creditBits ? `<div class="pat-credit">${creditBits}</div>` : ''}
    269274  </div>
    270275</div>`;
Note: See TracChangeset for help on using the changeset viewer.