Code Monkey home page Code Monkey logo

Comments (7)

exislow avatar exislow commented on August 17, 2024

The format tags, which are allowed to be used currently are very limited (see

def format_str_track(name: str, media: Track) -> str | bool:
result: str | bool = False
if name == "track_num":
result = str(media.track_num).rjust(2, "0")
elif name == "artist_name":
result = ", ".join(artist.name for artist in media.artists)
elif name == "track_title":
result = media.name
return result
def format_str_album(name: str, media: Album) -> str | bool:
result: str | bool = False
if name == "album_title":
result = media.name
elif name == "artist_name":
result = media.artist.name
return result
def format_str_playlist(name: str, media: Playlist) -> str | bool:
result: str | bool = False
if name == "playlist_name":
result = media.name
return result
def format_str_mix(name: str, media: Mix) -> str | bool:
result: str | bool = False
if name == "mix_name":
result = media.title
return result
def format_str_video(name: str, media: Video) -> str | bool:
result: str | bool = False
if name == "artist_name":
result = ", ".join(artist.name for artist in media.artists)
elif name == "track_title":
result = media.name
return result
)

Can you and other user please think about all possibilities you like to have for formatting tracks, albums, playlists etc. and post it here (@rgnet1 you can also just edit your first post) so I can have a look and try to implement it.

You do not need to come up with technical details, just have a look at the actual TIDAL app regarding all the available information for songs etc. and try to describe them here.

from tidal-dl-ng.

rgnet1 avatar rgnet1 commented on August 17, 2024

No problem. It would be nice to have 2 features:

  1. have optional global download schema which overrides all of the download directory formats of the various media types (playlist, artist, album, etc.. )

  2. each download schema for media types (playlist, artist, album, etc.. ) should each have access to all the various tags: {album_name}, {artist_name}, {track_number}, {track_name}, etc. Currently if i download an individual track, I cannot use that track's album_name attribute in the download schema. The download literally puts the string "{album_name}" as a folder instead of the actual album. Often times i only download a single song from an album but still need the album name for organization purposes.

I want a global option such that all downloads are organize the same way. this is required for many media organization software like Plex and Jellyfin. Here's the schema directly from plex docs:

Music/ArtistName/AlbumName/TrackNumber - TrackName.ext

Here's a practical example, where The Wall album has 2 discs

/Music
   /Pink Floyd
      /The Wall
         101 - In the Flesh.mp3
         102 - The Thin Ice.mp3
         201 - Hey You.mp3
         202 - Is There Anybody Out There.mp3
      /Wish You Were Here
         01 - Shine On You Crazy Diamond (Parts I-V).m4a
         02 - Welcome to the Machine.mp3
         03 - Have a Cigar.mp3
   /Foo Fighters
      /One By One
          05 - single song form the album.flac
      /There is Nothing Left to Lose
   /U2
      /Joshua Tree

TLDR: Regardless if I download a single track, playlist, or album, I always want the same naming scheme.

Let me know if this helps give you a better idea of what I'm looking for

from tidal-dl-ng.

exislow avatar exislow commented on August 17, 2024

Currently blocked by tamland/python-tidal#234

from tidal-dl-ng.

exislow avatar exislow commented on August 17, 2024

Done. Will be released soon.

from tidal-dl-ng.

rgnet1 avatar rgnet1 commented on August 17, 2024

Thank you for the release. Album name is fixed :) . However, I am noticing the issue is persistent with track_num. Can you take a look at this variable?

image

from tidal-dl-ng.

exislow avatar exislow commented on August 17, 2024

Duplicate #64

User {album_track_num} instead of {track_num}

from tidal-dl-ng.

rgnet1 avatar rgnet1 commented on August 17, 2024

Oh perfect. Thank you!

from tidal-dl-ng.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.