Index: action.py ================================================================== --- action.py +++ action.py @@ -85,17 +85,17 @@ "audio/xm+zip": "mod", } # Player command placeholders for playlist formats placeholder_map = dict( - pls = "(%url | %pls | %u | %l | %r) \\b", - m3u = "(%m3u | %f | %g | %m) \\b", - xspf= "(%xspf | %xpsf | %x) \\b", - jspf= "(%jspf | %j) \\b", - asx = "(%asx) \\b", - smil= "(%smil) \\b", - srv = "(%srv | %d | %s) \\b", + pls = "(%url | %pls | %u | %l | %r)", + m3u = "(%m3u | %f | %g | %m)", + xspf= "(%xspf | %xpsf | %x)", + jspf= "(%jspf | %j)", + asx = "(%asx)", + smil= "(%smil)", + srv = "(%srv | %d | %s)", ) # Playlist format content probing (assert type) playlist_content_map = [ ("pls", r""" (?i)\[playlist\].*NumberOfEntries """), @@ -256,19 +256,20 @@ cmd = cmd + " %pls" # "pls" as default requires no conversion for most channels, and seems broadly supported by players # Playlist type placeholders (%pls, %m3u, %xspf, etc.) for dest, rx in placeholder_map.items(): + rx = "(?