use v6.d.PREVIEW; use JSON::Fast; class Ultramarine::Model::MusicFile { has $.path is required; submethod BUILD(IO() :$!path!) {} method metadata() { my $proc = run 'avprobe', '-show_format','-of', 'json', $.path.absolute, :err,:out; CATCH { when X::Proc::Unsuccessful { return %() } } my $json-str = $proc.out.slurp(:close); $proc.err.close(); return (from-json $json-str){'format'}; } }