[GH-ISSUE #64] [Feature Request] Dedicated Interface Method For External Programs #53

Closed
opened 2026-02-27 04:57:17 +03:00 by kerem · 5 comments
Owner

Originally created by @U2EZNeko on GitHub (Aug 27, 2025).
Original GitHub issue: https://github.com/Googolplexed0/zotify/issues/64

Related Problem/Issue?

  • [] No
  • Yes

I integrated Zotify into my Telegram bot which works fine.

However, to update the Telegram message with statuses I am currently Regex'ing the whole console output which is not very reliable.

Ideal Solution

Clearer console output or some way for other scripts/programs to grab the Zotify status updates.

If the output had clear markings, like

current track/album tracks (1/14)
current Album/Total albums (4/32)
a current status like "downloading", "converting" or "waiting for 30 seconds".

As of now, I'm regex'ing most of this, but without clear markings in the console output it's prone to show the wrong data.
Ideally there would be clear English words in the output I can regex for.

Right now there's no pretty way to interface with Zotify.

Maybe you have a prettier solution, maybe a proper interface for Zotify that lets other processes grab info/statuses?

Would be neat to have.
I know this is probably another edge-case but I figured I might aswell ask you.

  • love, Neko
Originally created by @U2EZNeko on GitHub (Aug 27, 2025). Original GitHub issue: https://github.com/Googolplexed0/zotify/issues/64 **Related Problem/Issue?** - [] No - [x] Yes I integrated Zotify into my Telegram bot which works fine. However, to update the Telegram message with statuses I am currently Regex'ing the whole console output which is not very reliable. **Ideal Solution** Clearer console output or some way for other scripts/programs to grab the Zotify status updates. If the output had clear markings, like current track/album tracks (1/14) current Album/Total albums (4/32) a current status like "downloading", "converting" or "waiting for 30 seconds". As of now, I'm regex'ing most of this, but without clear markings in the console output it's prone to show the wrong data. Ideally there would be clear English words in the output I can regex for. Right now there's no pretty way to interface with Zotify. Maybe you have a prettier solution, maybe a proper interface for Zotify that lets other processes grab info/statuses? Would be neat to have. I know this is probably another edge-case but I figured I might aswell ask you. - love, Neko
kerem 2026-02-27 04:57:17 +03:00
Author
Owner

@Googolplexed0 commented on GitHub (Aug 28, 2025):

It is something that sounds worth doing, and I am interested in implementing this at some point. Would be pretty easy to get something bare bones but if I'm going to do this I'd like it to be done well the first time.

Probably on the back burner for now, but if you can give a specific set of goals/phrases/modes you'd like to be reported, that would help.

<!-- gh-comment-id:3231271169 --> @Googolplexed0 commented on GitHub (Aug 28, 2025): It is something that sounds worth doing, and I am interested in implementing this at some point. Would be pretty easy to get something bare bones but if I'm going to do this I'd like it to be done well the first time. Probably on the back burner for now, but if you can give a specific set of goals/phrases/modes you'd like to be reported, that would help.
Author
Owner

@U2EZNeko commented on GitHub (Aug 31, 2025):

Would be neat to have but take your time.

I think a good start would be:

Artist Name

Current Album Name
Current Album Number
Total Album Number

Current Track
Current Track Number
Total Track Number

Status: Downloading, Converting, Waiting between Downloads, Fetching Genres etc.

Last Download Time
Last Download Conversion Time
Last Downloaded Track
Last encountered Error

Pretty sure thats the most important info.
As of now the interface is readable for humans, just not easy to regex. But again take your time.

<!-- gh-comment-id:3240077352 --> @U2EZNeko commented on GitHub (Aug 31, 2025): Would be neat to have but take your time. I think a good start would be: Artist Name Current Album Name Current Album Number Total Album Number Current Track Current Track Number Total Track Number Status: Downloading, Converting, Waiting between Downloads, Fetching Genres etc. Last Download Time Last Download Conversion Time Last Downloaded Track Last encountered Error Pretty sure thats the most important info. As of now the interface is readable for humans, just not easy to regex. But again take your time.
Author
Owner

@Googolplexed0 commented on GitHub (Sep 7, 2025):

@U2EZNeko Well I took a crack at it and made the Standard Interface v1 with 5260f0d. Tried to stick with the data points you asked for but only some of them made sense to me. This is what it looks like in the console currently:

Query Tree: Query -> Album -> Track

Current DLContent: Track
Track Id == 6O4R81RogtvKw5ucLCCZf4
Track Name == Not Too Young To Get Married
Track Number == 07
Artist Name == Darlene Love
Artist Genres == christmas
Album Name == Live 1982
Album Total Tracks == 11
Album Artist Name == Darlene Love
Album Artist Genres == christmas

Status: Waiting Between Downloads
Total Query Progress: 11/11

Last Download Time: 2s
Last Conversion Time: 0s
Last Downloaded Item: Not Too Young To Get Married
Last Encountered Error: None

Let me know if this works or if there is something else you desperately want to see.

<!-- gh-comment-id:3263901040 --> @Googolplexed0 commented on GitHub (Sep 7, 2025): @U2EZNeko Well I took a crack at it and made the Standard Interface v1 with 5260f0d. Tried to stick with the data points you asked for but only some of them made sense to me. This is what it looks like in the console currently: ``` Query Tree: Query -> Album -> Track Current DLContent: Track Track Id == 6O4R81RogtvKw5ucLCCZf4 Track Name == Not Too Young To Get Married Track Number == 07 Artist Name == Darlene Love Artist Genres == christmas Album Name == Live 1982 Album Total Tracks == 11 Album Artist Name == Darlene Love Album Artist Genres == christmas Status: Waiting Between Downloads Total Query Progress: 11/11 Last Download Time: 2s Last Conversion Time: 0s Last Downloaded Item: Not Too Young To Get Married Last Encountered Error: None ``` Let me know if this works or if there is something else you desperately want to see.
Author
Owner

@U2EZNeko commented on GitHub (Sep 8, 2025):

Been testing for a good bit now, nice job, works great.

The only key that may end up being useful is "Track Genre".

Other than that I'm happy as can be.

<!-- gh-comment-id:3265979151 --> @U2EZNeko commented on GitHub (Sep 8, 2025): Been testing for a good bit now, nice job, works great. The only key that may end up being useful is "Track Genre". Other than that I'm happy as can be.
Author
Owner

@Googolplexed0 commented on GitHub (Sep 8, 2025):

The only key that may end up being useful is "Track Genre".

There is technically no such thing as "Track Genre(s)", only Artist Genre(s). For tags, we write the track artists' genres to the track as a proxy. For this I included the genre of the track artists as well as the album artists to cover all bases.

<!-- gh-comment-id:3266477230 --> @Googolplexed0 commented on GitHub (Sep 8, 2025): > The only key that may end up being useful is "Track Genre". There is technically no such thing as "Track Genre(s)", only Artist Genre(s). For tags, we write the track artists' genres to the track as a proxy. For this I included the genre of the track artists as well as the album artists to cover all bases.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/zotify#53
No description provided.