【支持视频外挂字幕】TCShare目录列表 天翼 OD 和彩云

如果我自己收藏的有你喜欢的,可联系vx: kanyingvip

地址

演示地址兼下载站:Xia.ST
Github开源地址:xyToki/TCShare

安装教程(虚拟主机)

应该会比readme详细点吧。

  1. 整一个虚拟主机或者vps。需要php7,建议php7.3。有php7.4更好。
  2. 下载代码。你可以直接git clone到空间里,也可以下载到本地。
  3. 准备好composer。切换到程序目录,然后执行composer install

    提醒x 如果你的服务器在国内,这里你可能需要设置一下国内镜像源:

    composer config repo.packagist composer https://mirrors.aliyun.com/composer/
  4. 如果你是在本地安装的依赖,现在把程序包上传到服务器。
  5. 设置伪静态规则:
    Nginx用户请完整填写以下规则。Apache用户可以无需理会,程序已经包含开箱即用的.htaccess文件。
    try_files $uri $uri/ /index.php$is_args$args;
    location ~ /\.env {
        deny all;
    }
  6. 创建.env文件,并按配置填写如下内容:
    #   XS 是前缀
    #   | -KEY 是配置种类,可选KEY,APP,SEC
    #   | | - -ct是key的ID(类似config.php)
    #   | | - | - something是配置名称
    #   | | - | - | - - - - value在等号右边
    #   XS_KEY_ct_something=value
    
        XS_KEY_ct=ctyun   #必填,值为ctyun
        XS_KEY_ct_FD=     #应用文件夹名
        XS_KEY_ct_AK=     #AK
        XS_KEY_ct_SK=     #SK
    
    #   这里APP后面的可以是任意值,一般就123456下去
    #          ↓
        XS_APP_1=/              #挂载路径
        XS_APP_1_NAME=TCShare   #网盘名称
        XS_APP_1_THEME=mdui     #界面主题
        XS_APP_1_BASE=/         #网盘内路径
        XS_APP_1_KEY=ct         #对应上面Key的ID

    这里的AK、SK、FD需要你自己获取。

    如果你需要多盘挂载,你可以在上述配置之后继续追加:

    XS_KEY_ct2=ctyun   #必填,值为ctyun
    XS_KEY_ct2_FD=     #应用文件夹名
    XS_KEY_ct2_AK=     #AK
    XS_KEY_ct2_SK=     #SK
    
    XS_APP_2=/disk2         #挂载路径
    XS_APP_2_NAME=TCSecond  #网盘名称
    XS_APP_2_THEME=mdui     #界面主题
    XS_APP_2_BASE=/         #网盘内路径
    XS_APP_2_KEY=ct2        #对应上面Key的ID

    这里我们将第二个网盘挂载到/disk2,但是你只能通过/disk2访问。
    一个小技巧是:在第一个网盘里新建一个disk2文件夹,就能点击进入了。
    注意:除非你知道自己在做什么,不要把两个网盘挂载到相同路径。

  7. 访问你的服务器地址,点击链接授权。

    如果你是多盘用户,请为你的每个网盘单独授权。
    如,先访问http://tcshare.website/授权第一个,再访问http://tcshare.website/disk2/授权第二个。
    如果您是按本文进行配置(且并非运行在SCF上),只需要登录账号就能完成授权。

  8. 请每个月手动为每个网盘的token续期。如,你的网盘安装在http://tcshare.website/,你需要每个月访问一次http://tcshare.website/-renew

    不要使用计划任务访问,这不会起到任何作用。

这就结束了。

在腾讯云函数(SCF)运行

  1. 按上面安装教程,执行到第五步。记得下载程序到本地并使用composer安装依赖。
  2. 打包上传到腾讯云,函数名是index.main_handler
  3. 本地写配置文件,然后一条一条添加到环境变量里。
  4. 每次授权后,请按程序指示添加环境变量。
  5. 若绑定域名,请增加一条环境变量:scf_base=/,其中/是绑定的路径。

故事

2017年,我在(不知道谁)的怂恿下,建立了一个叫做易云共享的分享平台(1gx.win),但并没有多少人用。最后就 拿来自己看番或者传文件了。
那时候它长这个样子,支持多用户、多盘那时候它长这个样子,支持多用户、多盘
基本上该有的功能都有(吧?)基本上该有的功能都有(吧?)
那时候为了测试买了个10T号,现在已经是理财产品了。
然后就一直撑到了自己API被封的一天。
现在这个又能撑多久呢?现在这个又能撑多久呢?
还好Github什么都有,2019年我找到了github上“开源”的APIKEY———也就是现在网上唯一流传的一个,safebox。然后我注册了xia.st的域名,TCShare v1也就在那时候完成了。
然后就是 一个月内重构多次 的 v1升级v2的故事了。

未来

很多人说天翼云API开源必死,那又有什么问题呢?
死了之后自用存储就稳了嘛。
至于项目,接下来会支持onedrive等多种后端。
程序也是不会死的。

License

本项目使用LGPL协议开源。

用户协议

  1. 凡以任何方式安装、使用本项目者,均被视为自愿接受LGPL与此协议。
  2. 使用本项目挂载各大云盘,均被视为自愿接受各云盘服务协议相关法律法规
  3. 请勿使用本项目分发违反云盘服务协议或相关法律法规的文件
  4. 因不当使用本软件而导致的任何意外、疏忽、合约毁坏、诽谤、版权或其他知识产权侵犯及其所造成的任何损失(如以上第三条),本项目概不负责,亦不承担任何法律责任

Demo

天翼云
和彩云
OneDrive国际
OneDrive世纪互联

安装方式:

若你要挂载一个网盘到/

  1. 获取一个API,并设置环境变量(如SCF等)或填入.env.env.local
  2. 上传到服务器,用composer安装依赖
  3. 配置伪静态
  4. 访问/-install进行账号授权,获取token。
  5. 记得每个月访问/-renew续期一次。续期的时候不需要重新填写token。
  6. OneDrive不需要手动续期。

若将网盘挂载到/disk,则授权地址会变成/disk/-install/disk/-renew,回调地址会变成/disk/-callback,请注意区分。

v3版本仅支持使用.env文件或环境变量配置。

请一定禁止访问env文件!

#   XS 是前缀
#   | -KEY 是配置种类,可选KEY,APP,SEC
#   | | - -ct是key的ID(类似config.php)
#   | | - | - something是配置名称
#   | | - | - | - - - - value在等号右边
#   XS_KEY_ct_something=value

    #天翼云配置
    XS_KEY_ct=ctyun   #必填,值为ctyun
    XS_KEY_ct_FD=     #应用文件夹名
    XS_KEY_ct_AK=     #AK
    XS_KEY_ct_SK=     #SK
    #Onedrive配置
    XS_KEY_od=onedrive
    #世纪互联配置
    XS_KEY_od=onedriveCN

#   这里APP后面的可以是任意值,一般就123456下去
#          ↓
    XS_APP_1=/              #挂载路径
    XS_APP_1_NAME=TCShare   #网盘名称
    XS_APP_1_THEME=mdui     #界面主题
    XS_APP_1_BASE=/         #网盘内路径
    XS_APP_1_KEY=ct         #对应上面Key的ID

OneDrive特别说明

程序已经内置了一组OneDrive的Client ID和Secret,正常情况下不需要手动设置。
你的授权会经过https://tcshare-r.now.sh中转。该网页为纯静态页面,源码位于_app/redirect/index.html,不会获取您的个人信息。如仍有疑虑,你可以配置自己的应用:

    XS_KEY_od_AK=client_id
    XS_KEY_od_SK=client_secret
    XS_KEY_od_FD=redirect_uri  #格式:http://domain/_app/redirect

SharePoint使用方式

前期配置与onedrive相同,只需要在app配置处加上

    XS_APP_<id>_MODE=sharepoint
    XS_APP_<id>_SITE=
    #sharepoint的网站名,若地址是http://xxx.sharepoint.cn/site/<name>,只要填写<name>这部分

也就是说你可以一个key挂一个od和多个sharepoint。

和彩云使用方式

  1. 正常登录和彩云,记得勾选【下次自动登录】。
  2. 打开这个地址
  3. 复制里面所有内容,两边加上单引号(重要!),填入到配置文件/环境变量的XS_KEY_<name>_TOKEN字段中
  4. 理论上可用。和彩云cookie有效期理论一年,够用了。
  5. 为什么不做自动登录?因为有验证码。
    配置示例:
XS_KEY_cm=caiyun
XS_KEY_cm_TOKEN='{"cyToken":"******|*|RCS|******|******","encryPhone":"******"}'
XS_APP_<id>_NAME="TCShare 和彩云"
XS_APP_<id>_THEME=mdui
XS_APP_<id>_BASE=/
XS_APP_<id>_KEY=cm
XS_APP_<id>=/caiyun

由于和彩云服务端接口限制,在线播放视频将默认播放经过和彩云服务器转码后的文件,这将导致视频分辨率降至720p(1280×720),码率降至1Mbps
这不会影响文件下载(包括外链播放)。如果遇到外链播放失败的问题,可以尝试在链接后加上?TC_transcode请求转码链接。
你也可以在配置文件中加入XS_APP_<id>_NO_TRANSCODE=true禁用转码功能,但这可能导致部分情况下视频播放失败(如目前已知iOS设备无法播放)。
如仅希望对iOS设备启用转码,可以设置XS_APP_<id>_NO_TRANSCODE=except_ios

功能

已支持

  • 文件下载
  • 文件夹打包下载(仅和彩云)
  • 视频播放 (mp4,webm,mkv),PC使用ArtPlayer,手机使用DPlayer
  • 视频外挂字幕,需为同名在同目录下。目前支持ass特效字幕(ASS.js),PC支持srt(artplayer自带)
  • 音频播放 (mp3,aac,m4a,flac,ogg,wav) 使用APlayer
  • Office预览 (doc(x),ppt(x),xls(x),pdf)
  • 图片预览 (bmp,jpg,jpeg,png,gif,webp),使用glightbox
  • 多盘
  • 腾讯云函数(SCF)
  • 数据缓存(文件,memcache,redis)
  • 密码加密
  • 防盗链
  • Token鉴权
  • 服务器直接输出(1M以下,?TC_direct

TODO

  • 其他文件类型的预览
  • header,footer,readme

Rewrite规则:

Apache:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
<FilesMatch "^\.">
    Order allow,deny
    Deny from all
</FilesMatch>

Nginx:

try_files $uri $uri/ /index.php$is_args$args;
location ~ /\.env {
    deny all;
}

配置缓存

默认情况下,TCShare将使用文件缓存数据,您可以设置如下配置而是用memcache或Redis:

  XS_CACHE_MODE=memcached
  XS_CACHE_PATH=memcached://127.0.0.1:11211
# XS_CACHE_PATH=memcached:///tmp/memcached.sock
# XS_CACHE_PATH=memcached://127.0.0.1:11211;memcached://127.0.0.12:11211
# https://symfony.com/doc/current/components/cache/adapters/memcached_adapter.html

  XS_CACHE_MODE=redis
  XS_CACHE_PATH=redis://127.0.0.1:6379
# XS_CACHE_PATH=redis:///tmp/redis.sock
# https://symfony.com/doc/current/components/cache/adapters/redis_adapter.html

安全规则

支持密码保护、Token鉴权、Referrer防盗链三种方式。 该功能仅支持在环境变量中配置,不支持config.php。 配置如下:

XS_SEC_1=/dir1/* 
# 路径规则,参照http://flightphp.com/learn/#routing
# 例如,/dir1 会匹配/dir1 /dir1/
# /dir1/* 匹配 /dir1 /dir1/ 和dir1之下的所有文件
XS_SEC_1_TYPE=referrer
# 模式
XS_SEC_1_MODE=black
# 如果是referrer,设置黑白名单
XS_SEC_1_VAL=baidu.com,google.com
# 黑白名单的域名,逗号分隔
XS_SEC_1_EMPTY=true
# 允许空referrer

# Token鉴权,需要和密码配合使用
# 若token正确优先级在token之后的所有规则都将被跳过
# token不正确将继续下一条规则
# Token计算方式见下
XS_SEC_2=/dir2/*
XS_SEC_2_TYPE=token
XS_SEC_2_VAL=tcshare_demo_key #secret值

# 密码保护
XS_SEC_3=/dir2/*
XS_SEC_3_TYPE=password
XS_SEC_3_VAL=password123
#      ↑
# 此数字决定优先级,优先级高的规则将先执行。
# 除了Token之外,其他规则返回失败时将终止程序
# Token失败会跳到下一条规则 争取会忽略下面所有
# 所以目前如需使用token必须在下面放置password。

XS_SEC_<id>_IGNORE=file    #此规则对文件无效
XS_SEC_<id>_IGNORE=folder  #此规则对文件夹无效
XS_SEC_<id>_IGNORE=mp4;mkv #此规则对mp4 mkv后缀文件无效

Token计算方式

可用于附件CDN等高级用途。

function token($path,$secret,$exps){
    $baseTime=1580646002;        
    // Magic Number, 实际上是2020-02-02 20:20:02 CST, 别管我为啥这么写
    $exptime=time()+$exps-$baseTime;
    // 过期时间减去上面的magic number
    $usign=substr(md5($path.$secret.$exptime),0,16);
    // 16位MD5
    return $usign.dechex($exptime);
    // 16进制的过期时间
}
$path   = "/dir1/1.jpg?query_string=should_be_calcuated";
    // querystring也需要计算
$secret = "tcshare_demo_key";
$expire = 300;
echo $path."&_tcshare=",token($path,$secret,$expire);
// returns /dir1/1.jpg?query_string=should_be_calcuated&_tcshare=1d435a917e04e8c824eb21

其他配置项

    XS_SUBTITLE_FIND='${dir}subs/${name}.srt;${dir}subs/${name}.ass'
    # 设置播放器如何搜索字幕文件。仅PC版。记得写配置文件要有两侧单引号。

在腾讯云云函数(SCF)运行

  1. 下载程序
  2. 使用composer安装依赖
  3. 上传到腾讯云,函数名是index.main_handler
  4. 设置环境变量,然后安装
  5. 若绑定域名,请增加一条环境变量:scf_base=/,其中/是绑定的路径。
  6. 设置环境变量的时候注意不需要两侧引号!!!
可以使用,不定时分享有价值的信息
天时网 » 【支持视频外挂字幕】TCShare目录列表 天翼 OD 和彩云

发表评论

提供最优质的资源集合

立即查看 了解详情