cargo install only works for programs that don't need any auxiliary files. For programs that do, there is little use in cargo publishing them.
Cargo in general doesn't deal with auxiliary files and nontrivial packaging/distribution problems — its job stops at producing an executable. You have to do the rest yourself. (And libraries are expected to not need any such files at all.)
Note that if you want to, it is easy to embed files in the program (so they are read at compile time, and not needed later), with include_str!("playlist/jay.json"). Many Rust programs do this. Of course, this is less flexible in that users can't edit the files after compilation.