Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_skip: skip tracks that match a specified search query (Read 335015 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: foo_skip: skip tracks that match a specified search query

Reply #600
Case, is it possible to bookmark tracks so that they're never skipped? Basically so they're ignored by Skip Track altogether?

Re: foo_skip: skip tracks that match a specified search query

Reply #601
What kind of skip query do you use for that to be an issue? Or am I misunderstanding the question?

You can for example tag a file with NEVERSKIP field and add this to the query: " AND neverskip MISSING". Then the query would only evaluate to true for tracks that don't have NEVERSKIP tag.

Re: foo_skip: skip tracks that match a specified search query

Reply #602
Hello!
I use Youtube Source component to listen some videos from youtube.
Is there a way to make bookmarks work with files like
Alice in Wonderland.m3u (which contains a link to the audiobook on youtube)

I tried the settings
Automatically bookmark -> All tracks
Automatically update bookmark position for bookmarked tracks checked

and also to use a shortcut 'Add Skip Track bookmark' to manually set a bookmark, but neither worked to save the position.

The build-in feature 'Playback -> Save playback state when closing foobar2000 and resume on next startup' works just fine with such files. But it's only for the one file that was playing on closing, and if I accidentally open something else in the foobar, the position is lost.

The foo_skip component seems exactly what I'm looking for, but I couldn't figure out how to make it work.
What am I missing?

Re: foo_skip: skip tracks that match a specified search query

Reply #603
I would like to second what keldi said. FOO_SKIP apparently doesn't work with YouTube Source component. It would be a real value for FOO_SKIP to support YouTube Source component.

btw. Is there any efficient way of highlighting bookmarked and skipped tracks in playlist (without additional components)?

Re: foo_skip: skip tracks that match a specified search query

Reply #604
It's possible bookmarking is limited to local files only. I'll have to verify once I have the time.

The query language used to define skip rule is unfortunately not evaluated for streams - I suspect this is true for YouTube sourced streams as well. As that is a core limitation and I don't want to make my own query syntax parser I think I'll have to add support for old titleformat-based skip rule as a backup.

Re: foo_skip: skip tracks that match a specified search query

Reply #605
It's possible bookmarking is limited to local files only. I'll have to verify once I have the time.

The query language used to define skip rule is unfortunately not evaluated for streams - I suspect this is true for YouTube sourced streams as well. As that is a core limitation and I don't want to make my own query syntax parser I think I'll have to add support for old titleformat-based skip rule as a backup.
That's it! foo_skip just didn't write the tag into m3u playlist. Silly me, I forgot that it works with tags in files, and not saves the data separately. Thank you for your answer.
I never liked the idea of writing temporary tags into files, so I've been using foo_skip combined with foo_customdb to skip tracks based on rating for artist+title for years. I totally forgot that it's how I set it up and not a feature of foo_skip itself. That's why I was confused with the bookmarks, as the skipping was working but not the bookmarks.

Now I checked it, and foo_skip works perfectly with skipping part of the youtube file by reading timestamp from the customdb's Skip field. Now, that I know in what direction to look for the settings, I'll probably be able to just make some workaround to work with foo_customdb. Sadly, it's abandoned and seems it doesn't support %playback_time%. But I suppose some AutoHotkey script to set a bookmark manually will do it for me.

Re: foo_skip: skip tracks that match a specified search query

Reply #606
Hello again!
Any chance for an update for foo_skip that would make YouTubeSouce component support BOOKMARK?

Re: foo_skip: skip tracks that match a specified search query

Reply #607
I haven't forgotten but right now I just don't have the spare time.

Re: foo_skip: skip tracks that match a specified search query

Reply #608
@mikehawk1999

I've solved it for myself with some additional foobar components and an AutoHotKey script, and it works for me, but as it has some serious limitations it might be not what you are looking for.
Limitations: shortcut to save a bookmark works only when main foobar window is active and the file playing is selected (I use the option Playback -> Playback follows cursor); the window where the time for the bookmark is saved briefly appears on pressing shortcut; no bookmarking automatically, I press Num0 to save a bookmark, Ctrl+Num0 to erase the bookmark (and foo_skip starts playback from the time saved in the bookmark).

I describe my setting as they work for me, but I can't really help if something goes wrong with them for you.

foo_skip (starts playback from the bookmarked time, no special settings needed)

foo_customdb (stores time for bookmarks in the SKIP field of this component's database).
Settings:
(If the component crushes foobar, delete everything that was set by default in Preferences -> Tools -> Custom Database -> Actions and maybe in Custom  Database -> Fields too, not sure, I installed this component a long time ago)

1.
Preferences -> Tools -> Custom Database -> Fields. Add (edit) the Skip field:
Display: Skip
Name: SKIP
Key: Custom: $if($stricmp($left(%path%,4),'http'),%path%,%artist%-%album%-%title%)
(The key determines for what the bookmark will be saved. I set it up this way: if the path to the file starts with "http" the bookmark would be saved for that path, otherwise (= local file) the bookmark will be saved for Artist-Album-Title. You can change it however you want using Title Formatting Reference (i.e just leave %artist%-%title%) but keep in mind, if you change it in the future, the bookmarks saved before the change won't work).

2.
Preferences -> Tools -> Custom Database -> Actions. Add an action for setting up a bookmark:
Display: DB Skip - Bookmark time (or whatever name you want for it)
Field: SKIP
Update: contextmenu -> Dialog
Set Value:

3.
Preferences -> Tools -> Custom Database -> Actions. Add (edit) action to delete the bookmark:
Display: Set Skip Off (or whatever name you want for it)
Field: SKIP
Update: contextmenu -> Erase

4.
Restart foobar after changing setting for the foo_customdb.


foo_texttools (copies the current playback time as foo_customdb doesn't recognize %playback_time%). Settings:
Preferences -> Tools -> Text Tools -> Add new:
Name: playback time (or whatever name you want)
Pattern: %playback_time%

Preference -> Keyboard Shortcuts:
Key: Ctrl+Num0; Action: Set Skip Off (delete the bookmark on Ctrl+Num0)
Key: Ctrl+T; Action: Utilities / Text Tools / Copy: playback time
Key: Ctrl+Shift+B; Action: DB Skip - Bookmark time

At this point you can test it. Play an youtube link, press Ctrl+T, press Ctrl+Shift+B, type - and press Ctrl+V (in the window there should be the current playback time after the minus symbol), click on OK. Play another file and return to the previous youtube link. The playback should start from the bookmarked time.
If it all worked, the final thing is an AutoHotKey script that just does everything from the previous paragraph to save a bookmark.

AHK script (save it as a text file with .ahk extention and launch it with autohotkey):

Code: [Select]
#IfWinActive ahk_exe foobar2000.exe
{
; the hotkey on which the script will be executed = Numpad0 to save a bookmark
Numpad0::
; Ctrl+T = shortcut to copy %playback_time%
Send ^t
; Ctrl+Shift+B = shortcut for DB Skip - Bookmark time
Send ^+b
; typing - and then pasting (Ctrl+V) the copied playback time, TAB to move to the OK button and ENTER to save the bookmark
Send -
Send ^v
Send {Tab}
Send {Enter}
return
}
#IfWinActive


edit: Changed quoted username

Re: foo_skip: skip tracks that match a specified search query

Reply #609
Hello again!
Any chance for an update for foo_skip that would make YouTubeSouce component support BOOKMARK?
I released a new version of Skip Track component with bookmarking code largely rewritten. All local filesystem limits have been removed and bookmarks are now stored in foobar's metadb index store instead of tags. Old tag-based bookmarks can still be read but the component removes the bookmark tags from files when bookmarks are updated.

Edit: because of the large amount of changes and my limited spare time I initially only released the new version on my home page: https://foobar.hyv.fi/?view=foo_skip

edit: Changed quoted username

Re: foo_skip: skip tracks that match a specified search query

Reply #610
Case, how to see now at what time position of the track the bookmark is set? Previously, it was possible to see this in the playlist from the metadata.
Is it possible to display the bookmark on the Minibar (for example, with a colored label) for future versions of the component? Thank.

Re: foo_skip: skip tracks that match a specified search query

Reply #611
Bookmark is visible in the Details tab of the Properties dialog. There's a new section "Skip Track" that lists skip counts and bookmark timestamps. And it can be shown on playlist with titleformat string %bookmark%. I won't rule out possible future integration with Minibar.

Re: foo_skip: skip tracks that match a specified search query

Reply #612
Hey, I am too stupid to use this plugin after the updates.
Sooo How do I skip the forst 10 secodns or the last 10 secodns or 10 seconds in the middle of a track? Can someone give me an example for each? No matther what I put in the SKIP tag, it does skip sometimes, sometimes not and I dont get why ^^ thanks :3
And what is this bookmarking about?

Re: foo_skip: skip tracks that match a specified search query

Reply #613
Case, is it possible to use a bookmark for youtube and ftp: // playlist items?

Re: foo_skip: skip tracks that match a specified search query

Reply #614
Hello again!
Any chance for an update for foo_skip that would make YouTubeSouce component support BOOKMARK?
I released a new version of Skip Track component with bookmarking code largely rewritten. All local filesystem limits have been removed and bookmarks are now stored in foobar's metadb index store instead of tags. Old tag-based bookmarks can still be read but the component removes the bookmark tags from files when bookmarks are updated.

Edit: because of the large amount of changes and my limited spare time I initially only released the new version on my home page: https://foobar.hyv.fi/?view=foo_skip

This is an excellent news  :) Thank you, Case!

Re: foo_skip: skip tracks that match a specified search query

Reply #615
How does 'Stop playback after repeated skips' work? Does it only allow a certain number of skips in a row? Or does it just end when it has skipped the same track twice?
Think millionaire, but with cannons.

Re: foo_skip: skip tracks that match a specified search query

Reply #616
The feature records the information of the first track skipped in the playback session. If the exact same track is reached again the component asks foobar2000 to kindly stop playback. It was intented to be a helper feature to prevent too fast skipping from locking the player up.

Re: foo_skip: skip tracks that match a specified search query

Reply #617
Thank you for this plugin.

I was wondering if it's possible to use it to skip while playing radio streams.

I have "Enabled dynamic track titles" checked under Preferences/Networking. But, I can't figure out how to point this plugin to the new %artist% and %title% info received.

Any help would be very much appreciated. Thank you.

Re: foo_skip: skip tracks that match a specified search query

Reply #618
Like I mentioned a few posts earlier the player core doesn't process query strings at all for streams. So currently it's not doable.

Re: foo_skip: skip tracks that match a specified search query

Reply #619
I just released a new version that can skip streams. You'll have to enable the option "treat query as titleformat string" and then use titleformat string instead of the newer query language as the skip string.
At its simplest if you wish to skip everything from some artist you can use string $stricmp(%artist%,some artist).

Re: foo_skip: skip tracks that match a specified search query

Reply #620
I just released a new version that can skip streams. You'll have to enable the option "treat query as titleformat string" and then use titleformat string instead of the newer query language as the skip string.
At its simplest if you wish to skip everything from some artist you can use string $stricmp(%artist%,some artist).


Thank you very much! It works just fine. :)

Have a nice day.

Re: foo_skip: skip tracks that match a specified search query

Reply #621
Thank you @Case for adding the option to skip streams.
I'm now able to skip my non-5-star streams (in addition to my 1-star tracks).
$if($stricmp($left(%path%,4),http),$ifequal(%rating%,5,0,1),$ifequal(%rating%,1,1,0))
 :)

Re: foo_skip: skip tracks that match a specified search query

Reply #622
@Case , I sometimes use the "DSP Switcher" to load one of my old custom DSP chain presets".
I had created many presets before I've installed foo_skip for the first time so they don't include the "Skip Track" DSP.

The problem is that if I use the "DSP Switcher" to load one of those old presets it fails - foobar "ignores" the preset and the "DSP Switcher" returns to the previous preset.

I know there's a workaround : to load & edit all my old presets and add the "skip track" DSP to each preset but @Case , is there a way you can make Foobar work correctly on presets which don't include "Skip Track" (obviously without the user needing to remember to do any action) ?
Many thanks in advance.

foo_skip 1.32
foobar2000 1.5.3
Windows 7 x64

Re: foo_skip: skip tracks that match a specified search query

Reply #623
The component will always place itself to the playback DSP chain so any loaded preset that doesn't include it will be altered. This is unavoidable.

But I don't see the behavior you describe. If you load a unique preset that doesn't include Skip Track and the component then adds itself to the chain, the Switcher menu will keep displaying your old preset name for as long as the player is running. If you restart the player the Switcher menu will be blank as there's no matching preset. But if you happen to have another preset saved that matches the new configuration, the Swither menu will automatically switch to the matching preset.

Re: foo_skip: skip tracks that match a specified search query

Reply #624
Guys, bad news...
Recently at some point I got many tracks randomly marked as skipped in database, even my favorite songs. I used skip track feature a lot so now I have to reset it all, very disappointing. This is probably a bug of foo_customdb or foobar itself. I'm writing here because customdb thread is closed.
Help me to understand where to send bug report so no one else won't affect this in future.

foobar 2000 1.6.2
foo_customdb 0.1.0_beta1
foo_skip 1.32