emilioastarita / lyricfier

a Spotify Lyrics alternative app | New updates at https://github.com/emilioastarita/lyricfier2 (a faster version in golang)
Creative Commons Zero v1.0 Universal
584 stars 47 forks source link

Browser: Youtube and other sources integration #86

Open memoryonrepeat opened 6 years ago

memoryonrepeat commented 6 years ago

Hi, I have had this idea for a while, how hard do you think it will be to fetch current song being played on youtube and display the lyrics ? Will make this app a lot more useful, since there are many youtube songs that spotify don't have.

I did a quick search and a straightforward way seems hard to find, since there is no internal server like the Spotify case. But I have seen it workable under BeardedSpice which I am using, so there must be some way. Feel free to share what you know - I can also help with a PR if you're busy.

BenjaVR commented 6 years ago

I don't see how this could work if you watch a youtube video in the browser. Like you say, no internal browser.

How we could make this work, for example, is embed the youtube video in Lyricfier I suppose.

memoryonrepeat commented 6 years ago

@BenjaVR I don't think embedding media is what we need here. After all, the app is meant for displaying lyrics. Bundling it with a media player will only make it more heavy and slow.

I have had a look at BeardedSpice's core logic and it seems they are getting tab info by running an internal AppleScript hack to get browser's foremost window information. I checked further and it's possible actually, like this.

Now the question is, is it possible to embed AppleScript in Electron. @emilioastarita any idea ?

emilioastarita commented 6 years ago

Remember that we need to support 3 platforms. The correct path for me is to create a chrome/firefox extension to implemente native messaging:

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging

memoryonrepeat commented 6 years ago

I am not a fan of browser extension, but I agree that it may be the most feasible solution for cross-platform. So, shall we get started on this ? To publish the extension we may need a separate developer account for the app also.