Skip to main content

Topic: YouTube Track Manager Discussion (Read 7975 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #25
New Version: YouTube Track Manager 3.3

CHANGELOG

Fixed search paste issue with long search text

Fixed regression with artist image fetcher. This fetcher is the same as the one in JScript biography. If you use both YouTube Track Manager & JScript biography only enable the auto-fetcher in one as the folder location will still be "live" monitored by both (default is disabled in YouTube Track Manager & enabled in JScript biography)

YouTube Track Manager 3.3

  • nikolai4ik
  • [*][*][*]
Re: YouTube Track Manager Discussion
Reply #26
Hi I've had this script installed for a long time but never really bothered with its Youtube abilities as I used it to check MusicBrainz info.
I have a problem with it - sometimes it says unrecognized artist like here http://i.imgur.com/pUBmPrH.png

And also the YT button in the top right corner - is it possible so when I click it the youtube player opens instead of just artist picture and name?

  • widerock
  • [*][*][*]
Re: YouTube Track Manager Discussion
Reply #27
After I update my foobar to ver 1.3.13, I've got the error message "internal error - can not access configuration folder" whenever I try to do something with youtube track manager.

My foobar is in the portable mode.
And I tried to execute foobar with administrator privilege. And, the result is the same error.

I'm not sure if this problem is related with foobar.exe or youtube track manager.

Any help or comment would be appreciated.

  • MojoBass
  • [*]
Re: YouTube Track Manager Discussion
Reply #28
I am having the same problem for the Radio mode. Have as well portable installation.
What works is to close the foobar window, then click on a remaining foobar error pop-up with the same message (which appears at least in my case), and then foobar starts again automatically and works without any issues.
BTW, the YTTM is an absolutely great tool!!

  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #29
@nikolai4ik: I have fixed the MusicBrainz issue & enabled the youtube player behaviour in my copy. They will be in the next release.

@widerock & Mojobass: I think I have isolated the issue. See here.
  • Last Edit: 11 November, 2016, 12:29:47 PM by WilB

  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #30
New Version: YouTube Track Manager 3.5

CHANGELOG

ADD: Ability of YouTube Track Manager nowplaying panel to show the foo_youtube video player; this requires foo_youtube_preconf version.

FIX: Occasional parsing bug in album manager.

FIX: Add locations issue when using recent foobar2000 versions in portable mode.

Download link: YouTube Track Manager 3.5

Video player usage:

1) Navigate to now playing panel by left click of yT button. Toggle video vs image mode by mouse middle click of yT button whilst in nowplaying mode. Toggle nowplaying text show/hide by mouse middle click of text. Middle button actions are also on "Manage" menu.

2) Occasionally, the video player appearance may be out of synchronization with the toggles. Click the foobar2000 main menu item: click "View\Visualizations\Youtube Video" to re-synchronize (JScript panel can't determine the on/off state)

Video player set-up:

1) In "foobar2000\Preferences\Youtube source\Video", set show and hide video frame "Manually".

2) Overlay the video player on top of YouTube Track Manager. Position and size as required. Optionally optimise the set-up by configuring window settings and fallback text. It's recommended to enable "window: Lock relative to main window" & "Fix to current".

3) See the foo_youtube documentation for more info.

Limitations:

As the foo_youtube video player can't be embedded in JScript panel, the above works by overlaying the pop-up version. Since it's a pop-up panel it doesn't resize with foobar2000, but can be set to move with foobar2000, and will show if you change layout.

Also foo_youtube_pre_conf (I tried 1.17.2) may currently have a stability issue if both an integrated Youtube video element and a pop-up Youtube video are run together. The pop-up Youtube video window on its own should be fine. I believe 3dyd is in the process of fixing the issue when the two instances are running. But I decided to go ahead & release now because of the more critical portable mode issue that should now be fixed.

@nikolai4ik

The reason for "Nothing Found" with blink-182 was because Musicbrainz didn't use the standard hyphen, and the text match comparison failed - now fixed. There are other cases of non-standard use of characters by MusicBrainz that the script was handling.

Another reason for "Nothing Found" is as follows. Album manager requires musicbrainz_ids (mbids) to get the lists, so that different artists of the same name can be discriminated. If the mbid isn't set in the file tag, the script analyses the artist search list returned, and uses the mbid of the first matching artist. If the artist tag is incorrect it may not find a match. Even if the artist tag is OK, occasionally the artist won't be the correct one, and if they don't have any releases then "Nothing Found" will show. Examples where the the first match is an unpopular artist without any releases are: "Robyn" (returns a reggae artist as 1st match) & "Dido" (returns a DraMatiQue artist as 1st match). Usually the correct artist, as in these cases, can be picked from the related artists pane where disambiguation is displayed.

For taggable files its possible, to write the mbid into the file which the script will read, and so the correct artist will load. The script checks the %musicbrainz_artistid% & %musicbrainz artist id% fields. Easy ways of adding the mbid info is documented on HA if you search. Radio streams cannot be tagged and although its possible with YouTube tracks, the info will be lost if the item isn't retained in a playlist, so I doubt that's its worth it. None of my files have mbid tags - I use the related artists pane.

  • MojoBass
  • [*]
Re: YouTube Track Manager Discussion
Reply #31
Add locations issue in portable mode fix confirmed for my config.
That was quick, thanks!
MojoBass

  • nikolai4ik
  • [*][*][*]
Re: YouTube Track Manager Discussion
Reply #32
New Version: YouTube Track Manager 3.5
Wow fantastic, thanks a lot! Very quick update and awesome instructions. Can youtube source auto find and play youtube videos for songs I am listening to? Doesn't seem so unfortunately.

I have musicbrainz tags on some files and "nothing found" still happens by the way - http://i.imgur.com/sm1GNS6.png


  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #33
Maroon 5 with %musicbrainz_artistid% tag value the same as yours: 0ab49580-c84f-44d4-875f-d83760ea2cfe is working for me.

I suspect there is a server access issue. There have been a lot of problems accessing MusicBrainz servers for quite a long time now. If the album names look up fails then "Nothing Found" will also be the result. Because of this, the script tries the main MusicBrainz server 5 times and if that fails falls back to trying a mirror server. But sometimes the main server is too busy (global rate limit exceeded) & the mirror also fails. I believe MusicBrainz are in the process (I am not sure if they've finished yet) of migrating to a new server, and that might also have caused some issues. Hopefully, when the new server is fully working things will improve.

Youtube source has some options if right click a track in a playlist, but I don't think they do exactly what you are looking for.
  • Last Edit: 13 November, 2016, 08:43:20 AM by WilB

  • widerock
  • [*][*][*]
Re: YouTube Track Manager Discussion
Reply #34
New Version: YouTube Track Manager 3.5

CHANGELOG
FIX: Add locations issue when using recent foobar2000 versions in portable mode.

Thank you for the quick fix. No more error message after this update.

  • Lasternom
  • [*]
Re: YouTube Track Manager Discussion
Reply #35
Wow, amazing !!! I've been looking for a plugin that does something like this. And it works like a charm !!!

I'm wondering what is your next step ?
I've been using an old marc2003 script for a Musicbrainz list of all the artist albums that also gives a musicbrainz link for example:
https://musicbrainz.org/release-group/c1163e02-afd5-4455-9179-5161c6d2b125

I'm wondering if you ever plan to add something like that ? An option in the panel properties so when you click on something instead of it being added to your playlist it opens a browser and goes to the correct page on the musicbrainz site. 

My apologies if it's a rude to ask.
You already have my gratitude for your awesome work  :) !!


  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #36
New Version: YouTube Track Manager 3.6

Download link: YouTube Track Manager 3.6

CHANGELOG

Updated requirements

CHG: JScript panel 1.1.6.2+ - required
CHG: foo_youtube_preconf 1.17.3+ - recommended (more info here)
Thanks to 3dyd & marc2003 for new features / enhancements to these plugins.

Nowplaying display

CHG: Better integration with foo_youtube video player:
- Auto fall back to artist photos / album art (+/- text info), if no video
- Auto show better synchronized

CHG: Status button now shows mode:
    yT - YouTube Track Manager Text mode
    yI - YouTube Track Manager Image mode
    yV - YouTube Track Manager Video mode

Set mode with mouse:
    Status button:
        Left click: toggles "nowplaying" vs "album manager" display
        Middle click (nowplaying panel): toggles "Video" vs "Image" mode
    Image / Info:
        Left click: toggles display of cover or YouTube images vs artist photos or info type
        Middle click: toggles show / hide info
    Middle button actions are also on "Manage" menu

For best video results:
- Set show and hide video frame "Manually" ("foobar2000\Preferences\Tools\Youtube source\Video")
- Overlay the video player on top of YouTube Track Manager. Position and size as required.
- In the video player right click menu it's recommended to enable:
    - window: Lock relative to main window
    - window: Show video only
    - Fix to current

Add locations

CHG: The newly enhanced plman.AddLocations method for adding locations is now the default method. The foobar2000 add locations method is still available (set in panel properties: "ADV.Add Locations..."), at least while the new method is fully evaluated.

Musicbrainz release group

ADD: Alt + left click of an album name in MusicBrainz mode now opens the release group at the MusicBrainz site. The standard left button click action is unchanged.

Panel properties

CHG: A few panel properties will be reset & redundant removed; this effects the nowplaying font name & size + whether or not custom colours are enabled.

  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #37
New Version:  YouTube Track Manager 3.7

FIX: Path parsing issue that might affect a few users.

  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #38
@MojoBass

If the search_title contains a keyword in the YouTube Track Manager Live filter, the filter will auto-disable, e.g. if you're searching for "XXX (live)", you want a live version and so the results will not be filtered for "(live)". With regex [a-zA-Z] you're essentially saying if the search_title contains a-z or A-Z, switch off the filter - so it will pretty much always switch off. So yes it's the "auto-disable if searching YouTube requires a keyword".

Checking keywords in album list filter is one possible way of quickly checking their specificity. If it finds lots of tracks its a bad keyword, e.g. "live" on its own has too many false matches. Although the YouTube Track Manager filter would auto-disable say if "live" is a keyword in the YouTube Track Manager filter & searched for "I live here", "I live here (live)" would then be accepted. But if the keyword was "(live)", i.e. with the parentheses, then "I live here" would be accepted and "I live here (live)" would be  rejected.

Regarding copying a list of 125 radio songs. If they're in a playlist then you can use normal playlist handling methods. But if what you mean is you want to do 125 searches in one go, then no. It just results in too many calls in one go to remote servers.
  • Last Edit: 17 December, 2016, 08:31:09 AM by WilB

  • MojoBass
  • [*]
Re: YouTube Track Manager Discussion
Reply #39
Hello WilB,
thanks for your answer! But probably I am too dumb but I think I still did not really get it...

I try to make an example to explain what I try to do:
When I do radio search (e.g. via New Radio/Search for Similar Songs/Chaka Khan | Ain't Nobody), I would like to restrict the youtube results to youtube titles, that contain a specific keyword (like 'vevo') either in the title or the description (on top of your LastFM-based selection algorithm - which is great!)
My understanding of the fields "ADV.YouTube 'Live' Filter Title" and "ADV.YouTube 'Live' Filter Description" is that all matches with YT title or YT description are excluded.
Therefore, the phrase
Code: [Select]
^((?!vevo).)*$
should give only YT tracks who have 'vevo' in the title or descripton (and - of course - match the LastFM-based selection process from your code).
So yes it's the "auto-disable if searching YouTube requires a keyword".
Is there a way to switch off the auto-disable to ensure the above behaviour?

Regarding copying a list of 125 radio songs. If they're in a playlist then you can use normal playlist handling methods.
Again I refer to the above example:
If I do a Radio search (e.g. via New Radio/Search for Similar Songs/Chaka Khan | Ain't Nobody) with the selection 'Tracks: popular', the display of the YTTM window shows me, that there are 125 matches (which is good :-)). In the playlist 'Radio', I see a max of 25 titles from the overall title pool of 125 tracks (which is good for me as well, as the Radio playlist is automatically filled up when playing). Of course it is easy to copy the 25 tracks from the playlist 'Radio' to any other playlist with standard foobar handling.
However, I would like to copy all 125 tracks e.g. to 'my_playlist' in one instance. As I could not find any YTTM-playlist containing all 125 tracks, I still do not know how this could be done...

  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #40
New Version: YouTube Track Manager 3.8

Thanks for the feedback.

CHANGELOG

CHG: Improved default handling of m-TAGS albums. Dead YouTube links are now auto-replaced where possible (must have the script default !!.tags suffix). Auto-synchronisation is particularly useful if m-TAGs files are loaded into the media library. As this is a new feature, consider backing up any m-TAGS created by YouTube Track Manager. m-TAGs can be auto created, as before, by album manager from MusicBrainz & last.fm album track lists.

m-TAGS are checked daily on playing a new m-TAGS file. Dead library track references in m-TAGS can also be auto-replaced where possible (default off). Enable/disable auto-replace in panel properties: ADV.m-TAGS...".

ADD: Customisable scrollbars (panel properties).

CHG: Zoom. Ctrl + Alt + mouse wheel are now required to zoom the font and button sizes on mouse over rather than just Ctrl + mouse wheel.

ADD: Options to favour certain YouTube video types (panel properties), e.g. "vevo" videos: Enable with "ADV.YouTube 'Preference' Filter". Set keywords with "ADV.YouTube 'Preference' Keywords" (regex format). Selection requires matching a keyword, in title or description, & satisfying the normal criteria. If no match, defaults to normal method.

ADD: Ability to get links for Top 10 - 40 etc artist tracks / similar songs in addition to Top50s: set range in panel properties ("Load Menu TopTracks Size 1-50").

ADD: Ability to use your own api keys (panel properties): "ADV.API Key YouTube" + "ADV.API Key Last.fm". If both are used, script limits don't apply, e.g. "Radio Playlist..." size becomes unlimited and "Load Menu TopTracks Size..." can be > Top50, e.g. Top100 etc.
  • Last Edit: 11 February, 2017, 12:20:23 PM by WilB

  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #41
New Version: YouTube Track Manager 3.8.1

CHANGELOG

Fix for change at last.fm

  • MojoBass
  • [*]
Re: YouTube Track Manager Discussion
Reply #42
Hello WilB,
I am a heavy user of this script - it is really great work!
I still try to work on narrowing the Radio selections of youtube links further down for a 'improved quailty' radio. Maybe this is sure to fail - however I am still trying...
It took me quite some time to understand that even if the 'Youtube Preference  Filter' is switched on, the Radio playlist entries are not purly entries which match the keyword (eg 'vevo') - it is more a preference to select the best fitting youtube link for a specific selected track.
I tried to change this in your code to a behaviour that only tracks are listed in the Radio playlist, where the keyword is actually found. I tried several option such as
Code: [Select]
if (index.pref_yt(video_name, video_descr) && mv != -1) return p_i; 
if (p_i == p_done) return -1;
instead of
Code: [Select]
if (index.pref_yt(video_name, video_descr) && mv != -1) return p_i; 
if (p_i == p_done) return mv;
in the this.IsGoodMatch function - however it did not work (I have to admit I am not a js programmer and your code is very sophisticated). Any hint what to change?

The other thing which would be helpful would be an (optional?) inclusion of the uploader name in the search for keywords via the 'Youtube Preference  Filter'. I would have tried to code this on my own by extending
Code: [Select]
this.pref_yt = function(title, descr) {if (title && title.match(RegExp(youtube_pref_filter, "i"))) return true; if (descr && descr.match(RegExp(youtube_pref_filter, "i"))) return true; return false;} 
  to e.g.
Code: [Select]
this.pref_yt = function(title, descr) {if (title && title.match(RegExp(youtube_pref_filter, "i"))) return true; if (descr && descr.match(RegExp(youtube_pref_filter, "i"))) return true; if (uploader && uploader.match(RegExp(youtube_pref_filter, "i"))) return true; return false;} 
- which of course does not work as the uploader data is not existing in your code. I tried as well adopt the code to make the uploader available in the code - but failed again. Any chance that you could include that in the code?
Best regards, MojoBass

  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #43
New Version: YouTube Track Manager 3.9

CHANGELOG

ADD: YouTube 'Preference' filter now analyses the uploader name in addition to the title and description. Use to favour certain video types, if required. Enable & set keywords with ADV.YouTube 'Preference'... in panel properties. The first priority is always to analyse YouTube search results for those that match the key search criteria, i.e. artist - title, and that aren't blocked by the "Live" filter or black list etc. The preference filter is then applied to the resulting "match list".

Keywords are in regex format (case insensitive), with // as an optional RegEx.Split. Splitters direct searching of the whole "match list" before trying the next keyword. There is no limit to the number of splitters. The foobar2000 console will report syntax errors in custom regular expressions. Examples:

vevo > prefer vevo > return first item in "match list" containing vevo
vevo|warner > prefer vevo or warner > return first item in "match list" containing either vevo OR warner
vevo//official > prefer vevo then official > return first item in "match list" containing vevo; if nothing found re-check "match list" and return first item in "match list" containing official
audio|lyric > prefer audio or lyric > return first item in "match list" containing either audio or lyric > favours videos that don't have introductions before the music starts (useful if you just listen to the audio; use just lyric for more lyric versions)
^(?=.*vevo)(?=.*lyric).*$//vevo|warner//lyric > a more complex example > runs 3 checks on the "match list", one after another, since it contains splitters:
^(?=.*vevo)(?=.*lyric).*$ > return first item in "match list" containing both vevo AND lyric
vevo|warner > if nothing found, return first item in "match list" containing either vevo OR warner
lyric > if nothing found, return first item in "match list" containing lyric

If no preference is found, the first item in "match list" is returned. Applying the preference filter to the "match list" rather than the whole YouTube search results is necessary to avoid returning wrong tracks that match a preference keyword.

If the preference filter is off, the first item in "match list" is returned.

If there are no items in the match list the first YouTube hit not blocked by the "Live" filter or black list is returned, or failing that the top YouTube hit. The track is named accordingly. Usually it will be the correct track; it's just that it's not been possible to match the artist - title name. That can arise because of inconsistencies in YouTube naming, e.g. some don't contain the artist name, or the way certain tracks are named by last.fm.

For anyone interested in refining preference keywords, "ADV.YouTube 'Preference' Verbose Log..." can be enabled. This will output the basics of what's going on to the foobar2000 console.

@MojoBass
I've added your request as described above. The possibility of restricting to "vevo only" is more problematical because lots of tracks don't have vevo videos + many artists don't seem to have any "vevo" at all. So for such tracks / artists nothing would load, when there may well be perfectly good "non-vevo" videos. In my tests on average 1 in 3 or 4 tracks had a "vevo" video, varying between ~ 2 in 3 for newer popular tracks, and ~ 1 in 10 for older music. So I think a preference filter, now improved, that retains fallback to other videos is the best option. Multiple uploaders etc can be specified. Also consider black listing any unwanted videos (simple right click) so they don't load again (provided there's an alternative). It's the most specific method.
  • Last Edit: 19 March, 2017, 01:46:49 PM by WilB

  • MojoBass
  • [*]
Re: YouTube Track Manager Discussion
Reply #44
Hello WilB,
I think the added functions on filtering are great. As well the console is a great help.
The only thing: I am not too sure if the new filter machanism is working as intended. From the console it seems that I get quite some false matches. See for example this console log where I used your proposed filter ^(?=.*vevo)(?=.*lyric).*$//vevo|warner//lyric:
Code: [Select]
YouTube Track Manager: Match List. Search Artist: Björk; Search Title: It's Oh So Quiet
[
   {
      "ix": 1,
      "uploader": "Björk",
      "title": "björk - it's oh so quiet",
      "descr": "It's Oh So Quiet Directed by Spike Jonze. Written by Hans Iang/Bert Reisfeld. Published by Peer Music (UK) Ltd. ® 1995 BjörkOverseas Ltd/One Little Indian ..."
   },
   {
      "ix": 4,
      "uploader": "BjorkTv",
      "title": "Björk  - It's Oh So Quiet (Official Music Video)",
      "descr": "Directed by Spike Jonze. Written by Hans Iang/Bert Reisfeld. Published by Peer Music (UK) Ltd. ® 1995 BjörkOverseas Ltd/One Little Indian Records Ltd."
   },
   {
      "ix": 8,
      "uploader": "Ernesto Aguilera",
      "title": "Björk - It's Oh So Quiet",
      "descr": "Soon, in true high definition Directed by Spike Jonze. Written by Hans Iang/Bert Reisfeld. Published by Peer Music (UK) Ltd. ® 1995 BjörkOverseas Ltd/One ..."
   },
   {
      "ix": 19,
      "uploader": "Taratata",
      "title": "My Taratata - Nagui - Björk \"It's oh so quiet\" (Live 2005)",
      "descr": "Dans son Taratata à lui, Nagui a choisi de revoir la venue de Björk dans Taratata, reprenant le célèbre \"It's oh so quiet\". It's oh so quiet H. Lang - B. Reisfeld ..."
   },
   {
      "ix": 20,
      "uploader": "Music",
      "title": "Björk - It's Oh So Quiet - Post",
      "descr": "Björk - It's Oh So Quiet (Track 4) - Post (1995)"
   },
   {
      "ix": 21,
      "uploader": "Lip Sync Battle on Spike",
      "title": "Joel McHale performs Björk's \"It's Oh So Quiet\" | Lip Sync Battle",
      "descr": "Joel McHale (Jeff Winger, \"Community\") pulls out all the stops against former co-star Jim Rash (Dean Craig Pelton, \"Community\") during his sync of Björk's 1995 ..."
   }
]
YouTube Track Manager: Match Found. Search Artist: Björk; Search Title: It's Oh So Quiet; Video Loaded: ix: 1; Video Title: björk - it's oh so quiet
In ix:1 there is non of the keywords contained.
I checked as well keywords like '12345nevermatchthis54321', which gave a match in basically all cases. On the other hand, just using 'q' gave quite some tracks, where no match was found at all.
Could it be that the filter is matching not by word, but by letter?
Best regards, MojoBass

  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #45
New Version: YouTube Track Manager 3.9.1

CHANGELOG

Minor changes to YouTube 'Preference' filter. Can now choose which fields it should check. Choice of Uploader, Title & Description. Recommendation is Uploader and Title; Description may lack specificity with certain keywords like "lyric". "ADV.YouTube 'Preference' Verbose Log..." is now more informative.

@MojoBass
It seems to be working as intended. I think the console output was a bit ambiguous before & you interpreted it incorrectly. The console in the new version should be better. It can show which preference keyword is matched.

  • MojoBass
  • [*]
Re: YouTube Track Manager Discussion
Reply #46
Hello WilB,
thanks very much, now I got it and the plugin works great!!

  • WilB
  • [*][*][*][*][*]
Re: YouTube Track Manager Discussion
Reply #47
New Version: YouTube Track Manager 3.9.2

CHANGELOG

FIX: Compatibility with foo_youtube 2.0

  • TheQwertiest
  • [*][*]
Re: YouTube Track Manager Discussion
Reply #48
New Version: YouTube Track Manager 3.9.2

CHANGELOG

FIX: Compatibility with foo_youtube 2.0
Thanks! Plays nicely with 2.0 now =)

  • MojoBass
  • [*]
Re: YouTube Track Manager Discussion
Reply #49
New Version: YouTube Track Manager 3.9.2

CHANGELOG

FIX: Compatibility with foo_youtube 2.0
Great!! (I was about to ask...)