如何从终端生成 M3U 播放列表(http URL 格式)?

3k-*_*3k- 13 command-line music mp3 playlists

我想从终端为我的服务器上包含 mp3 文件的目录生成 M3U 播放列表。由于我想确保每个播放器都能够流式传输这些文件,因此我想在每个文件条目前加上该目录的绝对 URL,如下所示:

http://server.com/dir/file1.mp3
http://server.com/dir/file2.mp3
...

所以不幸的是,仅仅做ls -1 *.mp3 > play.m3u是不够的。有没有一种单线来实现这一目标?

bis*_*oco 9

这是@chronitis 答案,有一些改进:

  • 将文件名存储在变量 $playlist 上以备后用
  • 如果以前存在,将删除该文件
  • 将文件的完整路径写入播放列表

命令

playlist='play.m3u' ; if [ -f $playlist ]; then rm $playlist ; fi ; for f in *.mp3; do echo "$(pwd)/$f" >> "$playlist"; done
Run Code Online (Sandbox Code Playgroud)

也可以在命令行上用 mplayer 播放

mplayer -playlist play.m3u
Run Code Online (Sandbox Code Playgroud)


chr*_*tis 8

我认为以下单行应该有效:

for f in *.mp3; do echo "http://..../$f" >> play.m3u; done