Resource icon

VLC Now Playing Monitor - Metadata Display 1.2.5

icy404

New Member
icy404 submitted a new resource:

VLC Now Playing Monitor - Metadata Display - Automatically detects and displays currently playing song metadata from VLC Video Source real-time

VLC Now Playing Monitor

Automatically detects and displays the currently playing song from your VLC Video Source, reading actual ID3 metadata tags (title, artist, album) instead of relying on manual timing.

✨ Features

  • Real-time Detection: Automatically detects which song VLC is currently playing
  • Metadata Support: Reads ID3 tags (title, artist, album) from MP3, FLAC, OGG, M4A, WAV, OPUS, AAC files
  • Customizable Format: Use variables like `{title} -...

Read more about this resource...
 

icy404

New Member
icy404 updated VLC Now Playing Monitor - Metadata Display with a new update entry:

5 Major Changes coming with v1.0.5

Added Multi-Platform Support
Prior to version 1.0.0, the script used lsof, which is primarily a Linux based library.

Fixed Performance Issues (direct source reading)
  • VLC source reading is now the primary method (instant, no file system scanning)
  • lsof now only checks obs process, not entire folder.
  • Much faster and more reliable

Module-Level Imports
  • mutagen imported at top with...

Read the rest of this update entry...
 

icy404

New Member
icy404 updated VLC Now Playing Monitor - Metadata Display with a new update entry:

Parse text error

All users are pleased to not download or run the script. It has a fatal error which im trying to find and fix. If you still have the old version of the file, please use that, otherwise it wont work.

I will fix this as soon as humanly possible, and i know some might be frustrated, but mistakes happen, and im really sorry for that. See ya in a bit lads.

Read the rest of this update entry...
 

icy404

New Member
icy404 updated VLC Now Playing Monitor - Metadata Display with a new update entry:

Update v1.2.5 - Bug Fixes

Fixed Issues:
  1. File output not working by default - The script now automatically writes to a default output file path. Previously, users had to manually configure the output file path in settings.
  2. Song titles with dashes displayed incorrectly - Fixed formatting logic that was removing dashes from song names. Files like "Song Title - Artist Name.mp3" now display correctly with the dash preserved.
  3. Folder monitoring mode parsing metadata instead of...

Read the rest of this update entry...
 

dr0nk

New Member
Hello, just wanted to say thanks for the script. However, it doesn't exactly do what it should (on Windows). There were two problems that I've experienced:

  1. The script itself contained a minor error - easily fixable - but still one that prohibited execution:
Python:
16 # ==================== Version Info ====================
17 __version__ = "1.2.5
18 __author__ = "icy404"
19 __updated__ = "2025-11-11"
20 
21 # ==================== Configuration ====================
The python interpreter (at least in my 3.12 version) was complaining about line 17 having an unterminated string literal - fixed by appending '"' to the end - no biggie.

2. Once problem #1 is out of the way, and proper sources are created (which isn't explained all that great - especially the VLC source that needs to be created in obs and populated with the playlist), the script only recognizes the first item in the playlist. Even if the playback continues to further items. The text in the text source remains the same, the same one displayed for the first item. Maybe I'll play around with the script to see what can be done to fix this.​
Thanks,
dr0nk
 

dr0nk

New Member
Ok, I think I found the reason why it doesn't work:
Python:
419 def get_playing_file():
420     """Cross-platform file detection"""
421     # Method 1: Try VLC source first (most reliable and cross-platform)
422     if vlc_source_name:
423         file = get_vlc_current_file()
424         if file:
425             return file
426    
427     # Method 2: Fallback to file monitoring
428     if not music_folder:
429         return None
430    
431     system = platform.system()
432    
433     if system == 'Windows':
434         return get_playing_file_windows()
435     elif system in ['Linux', 'Darwin']:  # Darwin = macOS
Even with proper configuration the function get_vlc_current_file() on line 423 gets called on windows (which I assume - it shouldn't be?) and the return is 'None'. Swapping this call for get_playing_file_windows() does the trick and the text source gets updated with the currently playing song. Unfortunately, this is very inefficient since every time get_playing_file_windows() gets called it searches for the obs process via psutil - but I will fix that for myself.

Thanks again,
dr0nk
 
Top