Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Announcement] YTM Desktop V2 #1139

Open
Alipoodle opened this issue Jul 25, 2023 · 125 comments
Open

[Announcement] YTM Desktop V2 #1139

Alipoodle opened this issue Jul 25, 2023 · 125 comments

Comments

@Alipoodle
Copy link
Member

Hey Everyone

I'd like to announce some news!

Myself and @NovusTheory are planning on taking over the YTM Desktop project a little more.
and with that we'd like to announce

YTM Desktop V2.

This is a full re-work of the YTM Desktop Codebase, and providing a fresh integration and workflow for the entire project.
The application is running on a newer version of Electron, running a new Vue Settings and Windows border, written in Typescript, and improving many of the integrations inside of YTM Desktop already has.

We've currently got the following features:

  • Easy install
  • Multiplatform setups
  • In-app Navigation [This is for the new Layout]
  • Hide to Tray
  • Start on boot
  • Continue where you left off
  • Discord Rich Presence
  • Custom Shortcuts for Standard Controls + Volume
  • Taskbar Progress + Buttons (Windows only)

New Features:

  • Always display Volume
  • Sleep Timer (this was present in the Beta builds)
  • NEW Companion Server
    • This does mean that existing integrations with the Classic YTM Desktop will not function anymore. We considered making it backwards compatible but we'd rather move forward with this release over the previous version due to a number of issues regarding the functionality it provided.

However this also means
That some features have not yet been ported over yet, including:

  • Locales
  • Mini Player
  • Last.FM integration
  • Styling YTM With custom CSS
  • Audio Output selector
  • Audio Patch to set to dB instead of % (Beta Builds)
  • Surround Sound / Speaker fill
  • URI Protocol
  • Dynamic Album art Theming (Beta Builds)
  • AND MANY MORE 😅

I should note that we do not plan to port over EVERY feature which existed within YTMD currently and these may be due to various reasons.
Obviously if other members are willing to re-introduce these again then we are willing to consider Pull requests for them.

In the mean time we're chugging along in the background preparing the build to a ready state for people to start enjoying the features.
We want to get this out as soon as possible to fix the number of issues which are already in the currnet build like Google Sign in, Missing Navigation, Buttons not working ETC.

@github-actions
Copy link

github-actions bot commented Jul 25, 2023

@Alipoodle this issue was automatically closed because it did not follow any of the available issue templates

Edit:
👀 Dang you Robot, this is an announcement let me enjoy my Issue

@Alipoodle Alipoodle reopened this Jul 25, 2023
@Alipoodle Alipoodle pinned this issue Jul 25, 2023
@IndefiniteBen
Copy link

Cool! Excited to see this further improved.

Some questions:

  1. Are the features listed that haven't been ported yet, what needs to be done before release, or the features that will be missing from v2.0?
  2. Am I correct in assuming this means no more releases of V1?
  3. When is last.fm support coming? :P I won't install V2 for anything other than some testing until that has been ported (though maybe that needs a full rewrite considering past issues?)

@Alipoodle
Copy link
Member Author

  1. We've not set a Time or a Minimuim requirement for Features before releasing the first version of v2 yet.
    We're looking to just sort out as much as we can for the time being, prep other things like Auto-updates for existing YTM Desktop will work, Website updates ETC can roll out generally quickly together.

  2. At most there will be 1 more version of v1.14 which will be a "repairs patch" for the Navigation and any other minor features which has been added since v.14.2's release, however given that Development for it is a rollercoast in having everything setup, I suspect that this isn't priorty for myself or Novus at the moment.

  3. Last.fm support is one of the more core features on my radar,
    but as all developers giving ETAs:
    SoonTM

We want to begin the project successfully with the correct "new" features and upgrades over the original version, and some of the core features which are quoted and used.

@miditkl
Copy link

miditkl commented Jul 28, 2023

Can you maybe add a function to add ad blockers plugins?

Or any interface to make custom addons/plugins?

@NovusTheory
Copy link
Member

NovusTheory commented Jul 28, 2023

Or any interface to make custom addons/plugins?

@realSnosh This is something that's been asked a lot for V1 and all I can say is we are talking about it. Should we do such a thing this will likely be further out than the initial release of V2 (2.0.0) so I would not expect it at that time.

@kanjurer
Copy link

Will the download functionality be available?

@Alipoodle
Copy link
Member Author

Will the download functionality be available?

Downloading internally to YouTube Music is a feature which YouTube will have to do themselves.
Currently they have implemented something on YouTube so they have the knowledge on how to do this safely.

Downloading externally to YouTube Music via something like yt-dl is a feature we will not natively include and maybe possible via a plugin although as mentioned not a feature we will have ready for a first release.

@neonsynthosc
Copy link

Is it just me or is the "Are you still watching?" thing not doing it's thing in the current version? (Which is great by the way).

Hope it will remain that way in v2. :D

@MrKumaPants
Copy link

MrKumaPants commented Aug 3, 2023

Would be willing to help out if y'all need it. I'm a senior dev and have been using React/Typescript for 6+ years.

I love YTMD and use it daily.

@kanjurer
Copy link

kanjurer commented Aug 3, 2023

I would like to help to if needed :)
I am not very smart though 😂 but would love to contribute ❤️

@Alipoodle
Copy link
Member Author

Things are currently a lot changes towards how the internal APIs are working from the Integrations, to getting information from YTM, and more.
For the time being we want to finalised a lot more of the bits before a PR gets made for a lovely feature before it's instantly broken with another change. (This has already happened)
image

@marbrink
Copy link

marbrink commented Aug 4, 2023

For me my most wanted feature is to be able to sort the songs in my playlists (by artist, title, time it was put in the playlist) ascending and descending.
This seems to me like some really basic functionality that shouldn't be hard to implement from Googles side and should be common sense IMO.

However is there a chance to do this in YTMD?

@Alipoodle
Copy link
Member Author

Due to Lazy Loading I suspect that this won't be something we can do properly.
We can only do partical sorting of the rows if we did it, but this kinda isn't a proper solution.

@kanjurer
Copy link

kanjurer commented Aug 4, 2023

It it possible to improve YT's shuffle algorithm?

@IndefiniteBen
Copy link

Another request: better handling of hiDPI screens/switching between them and normal ones. Frequently it gets to a state where the queue is completely gone due to what looks like scaling issues.

@Alipoodle
Copy link
Member Author

Alipoodle commented Aug 8, 2023

It it possible to improve YT's shuffle algorithm?

Not really, again this is a YouTube API which is doing it, and not exactly something which we're able to access all your preferences to make our own Shuffle Algo~
Personally I've not got any issues with it, it does obviously try and priorities adding in 1/2 more songs from the same artist in again.

Another request: better handling of hiDPI screens/switching between them and normal ones. Frequently it gets to a state where the queue is completely gone due to what looks like scaling issues.

Not quite sure I understand what you mean.

Moving from a 4k -> 1080p or something is a problem at the core of Electron/Chromium and unlikely to be something we can fix.
It does a decent job of trying to reduce the size once it feels like the majorirty is on there.
If you are worthwise talking about scaling inside of YouTube Music, you can make some custom CSS to pick how you want it to work yourself, but obviously or picking to Zoom out of YouTube a bit.

@Alipoodle
Copy link
Member Author

Project Update

Just a quick update from the team, things are going along smoothly, it's in a state where I feel the majority of people will be happy to use it for the smaller subset of features we currently have avalaible in it.
A lot of what I personally would define as the core features which help improve the application HUGELY have been implimented, but obviously everyone has their own preference to what is important and not.

  • Ratio Volume / Exponencial Volume (renamed over the dB audio) is added to help for lower listening levels.
  • Last.fm functions, although needs a bit more work to keep things secure (no longer using Username/Password) and a bit of a change in the flow when getting permission for the user
  • Custom CSS is a feature I love to be able to do simple things like remove unneeded things, give a custom colour and more 😄 again functioning, with a few additional features like File watching (so updates as you save) and more, possibly a change or two needed before ready.
  • Discord RPC is ready and works basically identically as before.
  • Companion Server is finalising the last bits before we lock in the schemas of what gets sent for a V1 API.
  • Continue where I left off is working amazingly.
  • Few other smaller features here and there.

@IndefiniteBen
Copy link

Not quite sure I understand what you mean.

Same. Some combination of different screens with different scaling ratios which are disconnected and reconnected, leads to my problem. If it's still present in v2 I'll try to find the cause and make a bug report 😆 Only the up next/queue panel has the issue.

Moving from a 4k -> 1080p or something is a problem at the core of Electron/Chromium and unlikely to be something we can fix.

I'm going to assume this is the core of the problem so won't be fixed. That's good to know, thanks!

@Caboose12000
Copy link

Will V2 work on linux out of the box, or will I need to use wine/proton for a while at first? (can't wait for the new release! 😁)

@DaviMedrade
Copy link

If V2 works on Linux right now (I haven't tested it yet), does it support MPRIS? If not, is that a planned feature?

@Alipoodle
Copy link
Member Author

Alipoodle commented Aug 11, 2023

Will V2 work on linux out of the box, or will I need to use wine/proton for a while at first? (can't wait for the new release! 😁)

I've made myself a build inside of WSL (Windows Subsystem for Linux) and we have builds for Linux building fine. So I see no issue as to why this wouldn't work on Linux (I was aware that Sandboxing was a problem on the current v1.13/v1.14 builds.)

I should note that in WSL I ran it without GPU but this is likely a problem with how WSL works rather than Linux having issues
image

If V2 works on Linux right now (I haven't tested it yet), does it support MPRIS? If not, is that a planned feature?

Currently no work has been made for MPRIS although this shouldn't be to difficult of a thing to impliment with the APIs which we already have for YTMD to use in other Integrations we have made (like Discord.js / Last.fm ETC)
No garantee that this will be done for the initial release for V2 however I should feel that this shouldn't be too far off the list for re-adding.

Obviously the majority of OS users (and in turn our downloads for the software) come from Windows, and therefore Universal + Windows specific functions have been generally higher priority for us to get working on.
and also lacking a Mac to try running MacOS specific features at all

@rd-626
Copy link

rd-626 commented Aug 15, 2023

Where is the V2 source? Github?

@stex
Copy link

stex commented Aug 18, 2023

Where is the V2 source? Github?

My guess would be this branch: https://github.com/ytmdesktop/ytmdesktop/tree/v2

I just built it for macOS (arm64) since the 1.x version would not let me log in as Google deemed it an unsafe browser.

Login and playback work like a charm, the settings button opens an empty dialog. Looking forward to the next merges! 🙂

@TheDavidJohnson
Copy link

Jumping in to say I love what you've done & you're doing, and happy to test anything at any point in time! Using the app on Linux (Ubuntu Desktop) and MacOS (Apple silicon / M1). Not a true dev, but a PM and not afraid to run stuff that breaks if I can help!

@glebarr

This comment was marked as off-topic.

@rd-626

This comment was marked as off-topic.

@glebarr

This comment was marked as off-topic.

@NovusTheory
Copy link
Member

Being very conservative, would you expect a full release this year?

Yes. The upstream is also estimated to do a new release within a week assuming that plan doesn't change.

@SirDufus
Copy link

SirDufus commented Nov 10, 2023

I'm not sure if I need to post a bug as a new issue or in this thread, pardon me if I am reporting a shortcut bug here incorrectly. Am running rc5 on Win11, all seems to work very well so far with exception of built in media keys on keyboard (Logi k400+) for play/pause, previous and next.

In previous versions, the built in media keys would always control the music player no matter what window was in focus. It no longer behaves this way and instead when using the media keys now, whatever current window is in focus is what the keys control. To be sure, I can reproduce it on Youtube.com, Netflix and Amazon prime. Once the player loses focus, I can't control the music player anymore until I make the window active again.

As this has never been the behavior on past versions, I am hoping it is a bug that can be easily fixed. Happy to do further testing / provide more feedback if it helps.

Fix Update: Editing the config file fixes this issue on my system. Hopefully options will be available in the release so it doesn't have to be done manually. Leaving my post here in case the linked fix helps others: #1171 (comment)

@martinsolberg
Copy link

martinsolberg commented Dec 8, 2023

deb-package of rc5 works out of the box without any issues on Debian 12.2, even running in Wayland mode when the appropriate flags are passed to Electron.

@miditkl
Copy link

miditkl commented Jan 3, 2024

how is it going?

@NovusTheory
Copy link
Member

how is it going?

There was a bit of a delay where v2 was expected to fully come out before 2024. Should be smooth sailing now.

@SirEndii
Copy link

SirEndii commented Jan 5, 2024

Just want to yeet out some positive feedback

I used the old youtube music desktop v1 app one or two years ago, but I had several issues, so I removed it.
I found the v2 version today and I don't see any obvious errors or problems. The features I use work flawlessly 👍🏻

@EsekyIL
Copy link

EsekyIL commented Jan 18, 2024

A very nice project, I hope there will be a translation.
And you are very well done!

@sH1222J
Copy link

sH1222J commented Jan 20, 2024

It's really unfortunate that there is no mini player function.

And I wish there were convenience functions related to housework.

@MattyGroch
Copy link

Hi friends!

I just found v2, and I noticed that there was a long-standing issue with the Last.fm integration in v1 that was resolved in v2. In v1, the album title was not included in the scrobble data, which had an impact when third-party apps would call Last.fm's API to pull recent track data. Thanks for getting this sorted out! I'm pumped for the full 2.0 launch.

@MattyGroch
Copy link

Oh no! Today I'm realizing there's no way to specify which sound device YTM Desktop uses for output. This is a huge bummer for me. Any chance that feature will make a comeback?

@Alipoodle
Copy link
Member Author

Oh no! Today I'm realizing there's no way to specify which sound device YTM Desktop uses for output. This is a huge bummer for me. Any chance that feature will make a comeback?

Yes. But the previous method was a huge "hack". You can do it natively in windows to select which audio source for a program to play through which will be more consistent then what we have as a temporary solution.
Not sure about other platforms as to if this is possible.

@Caboose12000
Copy link

Caboose12000 commented Jan 21, 2024

Not sure about other platforms as to if this is possible.

Its trivial to do this on most Linux distros via Pulse Audio Volume Control, so there's no issue there either. Not sure about macOS, though.

@gotgenes
Copy link

Not sure about macOS, though.

I use and recommend Rogue Amoeba's SoundSource on macOS. It is not free (currently $39 USD) but it works well.

@ghost
Copy link

ghost commented Jan 22, 2024

Its trivial to do this on most Linux distros via Pulse Audio Volume Control, so there's no issue there either. Not sure about macOS, though.

Disagree, as any change of output device applied to the new ytmdesktop will be reflected on other Electron applications, as the system is unable to differentiate different Chromium processes.

The current stable release, even with the hacky solution the devs mentioned was still consistent with the selected option, plus it didn't affect other Chromium applications like Discord, even though it was still identified as a Chromium instance in pavucontrol.

EDIT: To the user below who tagged me I will be replying here since it's off topic, I want to make it clear I already know how to use pavucontrol. Also you're free to experiment yourself: Open Discord and ytmdeskop (pre-release), both are using output device foo, change output device of ytmdesktop from device foo to device bar, close discord and then close ytmdesktop. Open Discord again, the Chromium instance representing Discord is now using device bar. This happens with a Ubuntu 22.04 installation using Discord .deb install.

@Caboose12000
Copy link

Caboose12000 commented Jan 24, 2024

(For context I'm on Nobara Linux using youtube-music-desktop-app-2.0.0.rc.5-1.x86_64.rpm)
This may be a problem on my end since rc5 was working for me a week or two ago, but now it seems when I launch i get a black screen with a seek bar. I can click the black space where the play/pause, next, back, buttons are and they seem to function. It's playing songs that I had listened to last time I opened the app, but the main body of the page seems to be uninteractable.
ytm_blackscreen

has anyone else run into an issue like this? I'm not sure what might've changed on my system to cause this new behavior.

Edit: more info
it seems like I was wrong, the main area is interactable. by clicking around in it randomly I was able to get it to switch songs and bring up some page elements. The close button that should be in the top right also functions normally, it seems it's just having an issue displaying the page.
ytm_blackscreen2

Edit2: solution
For anyone else who runs into this issue, deleting the Youtube Music Desktop App folder from ~/.config and reinstalling rc5 fixed the issue for me.

@Caboose12000
Copy link

Its trivial to do this on most Linux distros via Pulse Audio Volume Control, so there's no issue there either. Not sure about macOS, though.

Disagree, as any change of output device applied to the new ytmdesktop will be reflected on other Electron applications, as the system is unable to differentiate different Chromium processes.

I'm curious what your setup is like that pulse audio volume control isn't working for you, for me it gives ytmd and discord the same label but can absolutely differentiate between them and I am able to set them to different output sources without issue.
pulse-audio-volume-control-works
This may be a little off topic for this thread, so feel free to add me on discord if you wanna talk about it more @gabuch2
my discord is caboose12000

@rafaelgomesxyz
Copy link

Thanks for the great work!

Is Last.fm not working right now? It asks me to allow the app, but then nothing happens and "User is Authenticated" shows "No".

@lordgabor
Copy link

Thanks for the great work!

Is Last.fm not working right now? It asks me to allow the app, but then nothing happens and "User is Authenticated" shows "No".

For me it is working after I restarted the software (I am on Pop!_OS)

@IndefiniteBen
Copy link

Is Last.fm not working right now? It asks me to allow the app, but then nothing happens and "User is Authenticated" shows "No".

I had the same. I think I just closed the settings window and when I opened it again it said "Yes".
I may have restarted the app between authenticating, if refreshing the settings window doesn't fix it.

Maybe a "refresh state" button could be next to the "User is Authenticated" text, to make it clearer to users?

But this is getting fairly off-topic...

@Alipoodle
Copy link
Member Author

Alipoodle commented Jan 31, 2024

Last.FM currently doesn't re-check that you've authenticated until a application restart has occurred OR you play a song as we don't run make another request to L.fm to check that the Key we just got from them is actually valid.

I might make add a fresh icon next to it to trigger the Integration to authenticate and update the value 👍

@FASouzaIT
Copy link

Any chance to get YTMDesktop Remote app for Android to work with v2 or get a new remote app for Android that works with companion server?

@umitseyhan75
Copy link

umitseyhan75 commented Feb 5, 2024

Is it possible to make Discord RPC look like "listening to yt music" instead of "playing yt music game"?

@NovusTheory
Copy link
Member

NovusTheory commented Feb 5, 2024

Is it possible to make Discord PRC look like "listening to yt music" instead of "playing yt music game"?

We already tell Discord to use a listening status. Discord rewrites it to playing.

@michalkobelka
Copy link

So, I've installed 2.0.1 version and I'm getting strange error and the app won't start:

YouTube Music Desktop App Crashed

Environment Details:
    YouTube Music Desktop App 2.0.1
    Electron 28.2.3
    Windows NT 10.0.22631

Name: TypeError
Message: Cannot read properties of undefined (reading 'videoId')
Cause: Unknown

TypeError: Cannot read properties of undefined (reading 'videoId')
    at IpcMainImpl.<anonymous> (C:\Users\uzivatel\AppData\Local\youtube_music_desktop_app\app-2.0.1\resources\app.asar\.webpack\main\index.js:8:415754)
    at IpcMainImpl.emit (node:events:517:28)
    at WebContents.<anonymous> (node:electron/js2c/browser_init:2:77582)
    at WebContents.emit (node:events:517:28)

I'm running Windows 11 on my PC. Any ideas how ti fix it? I've tried uninstalling Youtube Desktop Music, restarting PC, removing any appData\local\youutbe** data and no luck so far.

ydm

@chriskol
Copy link
Contributor

chriskol commented Feb 22, 2024

I've also started getting the above error on update. I'm using the latest homebrew install on the latest osx if that's any help.

YouTube Music Desktop App Crashed

Environment Details:
YouTube Music Desktop App 2.0.0
Electron 28.2.0
macOS 14

Name: TypeError
Message: Cannot read properties of undefined (reading 'videoId')
Cause: Unknown

TypeError: Cannot read properties of undefined (reading 'videoId')
at IpcMainImpl. (/Applications/YouTube Music Desktop App.app/Contents/Resources/app.asar/.webpack/main/index.js:8:426502)
at IpcMainImpl.emit (node:events:517:28)
at WebContents. (node:electron/js2c/browser_init:2:77364)
at WebContents.emit (node:events:517:28)

@NovusTheory
Copy link
Member

Those of you experiencing this crash with videoId can you please provide more info in #1223 as that is the issue for tracking to help keep it centralized

@travisserio
Copy link

is there an active branch for the mini player? I sure miss that thing dearly..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests