Skip to content

Conversation

@amontariol
Copy link

Description

Adds a new plugin that automatically tries to skip most non-studio recordings, live performances, and concert versions of songs to ensure users only listen to studio recordings.

What does this plugin do?

The Skip Live Songs plugin monitors song titles and automatically skips to the next track when it detects patterns indicating a non-studio recording, such as:

  • Live performances (e.g., "Song Title (Live)", "Live at Wembley")
  • Concert recordings and festival performances
  • Acoustic/unplugged versions
  • Radio sessions and rehearsals
  • Songs with venue names (e.g., "Madison Square Garden", "Glastonbury")
  • Recordings with dates or location markers

Implementation Details

  • The plugin listens to the peard:update-song-info event
  • Checks song titles against a comprehensive set of regex patterns defined in patterns.ts
  • Automatically clicks the next button when a non-studio version is detected
  • Includes debug logging for troubleshooting
  • Properly cleans up event listeners on stop to prevent memory leaks

Files Changed

  • src/plugins/skip-live-songs/index.ts - Main plugin logic
  • src/plugins/skip-live-songs/patterns.ts - Pattern definitions for detecting live/non-studio recordings using regex
  • src/i18n/resources/en.json - English translations for plugin name and description
  • (Additional language files if translated)

Related Plugins

Similar to the existing "Skip Disliked Songs" plugin, but focuses on filtering out live performances and non-studio recordings instead of user-marked dislikes.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ················

/\b[A-Z][a-z]+,\s*[A-Z]{2}\b/, // Locations: "Oakland, CA", "London, UK"


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ·····················

/\b[A-Z][a-z]+\s+City\b/i, // Cities: "Mexico City", "New York City"


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ············

/\b(tokyo|paris|berlin|sydney)\b/i, // More cities


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ·····················

/\b(bbc|radio|session)\b/i, // Radio sessions

amontariol and others added 18 commits November 19, 2025 11:07
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
amontariol and others added 2 commits November 19, 2025 11:11
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

export const nonStudioPatterns = [
// "Live" in specific contexts (not as part of song title)
/[\(\[]live[\)\]]/i, // "(Live)" or "[Live]" in parentheses/brackets
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <no-useless-escape> reported by reviewdog 🐶
Unnecessary escape character: (.


export const nonStudioPatterns = [
// "Live" in specific contexts (not as part of song title)
/[\(\[]live[\)\]]/i, // "(Live)" or "[Live]" in parentheses/brackets
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <no-useless-escape> reported by reviewdog 🐶
Unnecessary escape character: [.


export const nonStudioPatterns = [
// "Live" in specific contexts (not as part of song title)
/[\(\[]live[\)\]]/i, // "(Live)" or "[Live]" in parentheses/brackets
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <no-useless-escape> reported by reviewdog 🐶
Unnecessary escape character: ).

amontariol and others added 4 commits November 19, 2025 11:16
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Comment on lines +4 to +7
import type { SongInfo } from '@/providers/song-info';
import { nonStudioPatterns } from './patterns';

import type { SongInfo } from '@/providers/song-info';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <importPlugin/no-duplicates> reported by reviewdog 🐶
'/home/runner/work/pear-desktop/pear-desktop/src/providers/song-info.ts' imported multiple times.

Suggested change
import type { SongInfo } from '@/providers/song-info';
import { nonStudioPatterns } from './patterns';
import type { SongInfo } from '@/providers/song-info';
import type { SongInfo } from '@/providers/song-info';
import { nonStudioPatterns } from './patterns';

import type { SongInfo } from '@/providers/song-info';
import { nonStudioPatterns } from './patterns';

import type { SongInfo } from '@/providers/song-info';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <importPlugin/no-duplicates> reported by reviewdog 🐶
'/home/runner/work/pear-desktop/pear-desktop/src/providers/song-info.ts' imported multiple times.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Successfully merging this pull request may close these issues.

1 participant