有32人阅读过
创建一个web服务,获取群晖系统指定目录的文件直链
发布于2023/12/17 更新于2023/12/22
[ 教程仅保证更新时有效,请自行测试。]
发布于2023/12/17 更新于2023/12/22
[ 教程仅保证更新时有效,请自行测试。]
[ 教程仅保证更新时有效,请自行测试。]
安装web station, php 套件
打开web station, 新增一个网页服务
新增一个网络门户,绑定刚才创建的网页服务
去路由映射1217,使外网可以访问到此端口。
在 控制面板-计划任务 创建一个定时任务,
内容如下:
脚本详细内容如下:
注:根据自己文件的路径和需要提取文件的后缀名,及web服务的地址。修改后再添加到任务。
#!/bin/bash # 获取脚本所在目录路径 file_dir="/volume1/video" # 目标文件后缀名列表 target_extensions=("mp4" "mkv") # web服务地址 url_host="http://(ip或域名):1217/" # 输出文件名称 file_name="filelist.txt" output_file="$file_dir/$file_name" > "$output_file" urlencode() { # Usage: urlencode "string" local string="$1" echo -n "$string" | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g' } find "$file_dir" -type f \( -iname "*.mp4" -o -iname "*.mkv" \) -print0 | while IFS= read -r -d '' file_name; do base_name=$(basename "$file_name") relative_path="${file_name#"$file_dir/"}" extension="${base_name##*.}" if [[ " ${target_extensions[@]} " =~ " $extension " ]]; then encoded_relative_path=$(urlencode "$relative_path") url="$url_host$encoded_relative_path" # 输出文件,格式未“文件名,url” echo "$base_name,$url" fi # 按文件名排序输出 done | sort -t',' -k1 | paste -sd'\n' - > "$output_file"
网页访问 ip或域名:1217/filelist.txt ,即可看到生成的文件内容。
将此文件订阅到自己的iptv即可使用iptv客户端进行观看。
如需获取其他目录的文件名,请同步修改web station中网页服务的位置。
文章对你有帮助吗?
- 一般[0]
- 很赞[0]
- 没用[0]
- 垃圾[0]
- 无语[0]