For streams it looks like the page no longer includes the player JS used to read the stream server URL when loading the page without JS enabled. However it is included in the already existing call to the private API.
For VODs it seems to just complain about the type of the video ID.
Tested with some random streams.
# Stream
streamlink https://picarto.tv/Noxcuro best
[cli][info] Found matching plugin picarto for URL https://picarto.tv/Noxcuro
[plugins.picarto][error] Could not find server netloc
error: No playable streams found on this URL: https://picarto.tv/Noxcuro
#VOD
streamlink https://picarto.tv/sate/videos/681901
[cli][info] Found matching plugin picarto for URL https://picarto.tv/sate/videos/681901
error: Unable to validate response text: ValidationError(dict):
Unable to validate value of key 'data'
Context(dict):
Unable to validate value of key 'video'
Context(AnySchema):
ValidationError(equality):
<{'id': 681901, 'title': 'tropical depression stream', '...> does not equal None
ValidationError(dict):
Unable to validate value of key 'id'
Context(type):
Type of 681901 should be str, but is int
#Stream
streamlink https://picarto.tv/Noxcuro
[cli][info] Found matching plugin picarto for URL https://picarto.tv/Noxcuro
Available streams: 478p (worst), 720p (best)
#VOD
streamlink https://picarto.tv/sate/videos/681901
[cli][info] Found matching plugin picarto for URL https://picarto.tv/sate/videos/681901
Available streams: 1080p (worst, best)