Code Monkey home page Code Monkey logo

embyexternalurl's Introduction

主要功能

名称 功能
emby2Alist emby/jellyfin 挂载 alist 转直链
embyAddExternalUrl emby/jellyfin 全客户端(除TV端)添加调用外部播放器按钮
embyWebAddExternalUrl emby/jellyfin/alistWeb 调用外部播放器用户脚本,只支持网页
plex2Alist plex 挂载 alist 转直链

常见问题

FAQ

embyExternalUrl

emby调用外部播放器服务端脚本:

通过nginx的njs模块运行js脚本,在emby视频的外部链接处添加调用外部播放器链接,所有emby官方客户端可用, 不支持老 TV 客户端等没有外部媒体数据库链接处的情况,另外需要注意电视端内置的 web view 实现方式的兼容性

一. 单独使用方法

这里采用的是docker安装,也可以不使用docker,自己安装njs模块

先下载脚本:

wget https://github.com/bpking1/embyExternalUrl/releases/download/v0.0.1/addExternalUrl.tar.gz && mkdir -p ~/embyExternalUrl && tar -xzvf ./addExternalUrl.tar.gz -C ~/embyExternalUrl && cd ~/embyExternalUrl

然后看情况修改externalUrl.js文件里面的serverAddr

tags 和 groups是从视频版本中提取的关键字作为外链的名字,不需要就不用改

emby.conf默认反代emby-server是本机的8096端口,按需修改

docker-compose.yml默认映射8097端口,按需修改

然后启动docker

docker-compose up -d

访问8097端口,在视频信息页面的底部就添加了外部播放器链接

日志查看:

docker logs -f nginx-embyUrl 2>&1 | grep error

二. 与 emby2Alist 整合并共存

1.将 externalUrl.js 放到 emby2Alist 的 conf.d 下与 emby.js 处于同一级

2.将 emby.conf 中的 ## addExternalUrl SETTINGS ## 之间的内容复制到 emby2Alist 的 emby.conf 中 location / 块的上面

3.将 emby.conf 最上面的 js_import 复制到 emby2Alist 的 emby.conf 相同位置

4.重启 ngixn 或者输入命令 nginx -s reload 重载配置文件,注意此时使用 emby2Alist 的 nginx 对应端口访问

三. 集成版 docker 一键部署

1.简化配置,拉取镜像映射配置文件即可一键启动。

2.支持 SSL,内置 acme 自动申请证书、定时更新证书。

3.支持重启自动更新,简化更新流程。

项目地址

emby调用外部播放器用户脚本,只支持网页:

篡改猴地址

embyexternalurl's People

Contributors

akimio521 avatar ambitiousjun avatar bpking1 avatar chen3861229 avatar kriscris avatar l1cardo avatar peterzhenhh avatar sgpublic avatar shurelol avatar thsrite avatar xixka avatar ykchenc avatar yubanmeiqin9048 avatar zsbai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

embyexternalurl's Issues

调整emby.js相关代码

emby2Alist 的 emby.js

  • fetchEmbyFilePath函数,不支持语法导致nginx启动失败,即nginx -t 检查不通过
async function fetchEmbyFilePath(itemInfoUri, Etag) {
  // ......
      if (Etag) {
         // 不支持简化的三元运算符 ?? 
          return result.MediaSources.find(m => m.ETag == Etag)?.Path ?? result.MediaSources[0].Path;
      }
      return result.MediaSources[0].Path;
  // ......
}

修改为

// ......
    if (Etag) {
        var media=result.MediaSources.find(m => m.ETag == Etag);
        if(media && media.Path){
            return media.Path;
        }
    }
    return result.MediaSources[0].Path;
// ......
  • redirect2Pan 方法存在让人疑惑的硬编码
alistRes =  alistRes.includes('http://172.17.0.1') ? alistRes.replace('http://172.17.0.1',alistPublicAddr) : alistRes;
// ......
driverRes =  driverRes.includes('http://172.17.0.1') ? driverRes.replace('http://172.17.0.1',alistPublicAddr) : driverRes;

可用变量配置,并且说明作用,我的理解是勾选了web代理,alist的raw_url会是alist的url而不是直链,故带上形如http://172.17.0.1的地址。(盲猜的,没用过alist这种形式)

并且,为什么替换的 http://172.17.0.1 没有包含alist的端口的呢?
如何是njs访问的alist的地址,那么为什么不直接用 alistAddr 这个变量检测和替换?

关于外链没有端口号的解决放法

希望可以帮助遇到相同困难的网友,代码小白,一头雾水,摸索一下,发现

let serverAddr = 'https://yourdomain.com:端口号';        //外网emby地址
const tags = ['BluRay', 'REMUX', 'WEB-DL'];                 //添加视频tag
const groups = ['CMCT', 'WIKI', 'Z0N3', 'EbP', 'PTer', 'EPSILON', 'FRDS', 'SMURF'];   //添加制作组


let api_key = '';
let domain = ''; 
let oriData = '';
const redirectKey = 'redirect2external';

const addExternalUrl = async (r, data, flags) => {
    api_key = r.args['X-Emby-Token'] ? r.args['X-Emby-Token'] : r.headersIn['X-Emby-Token'];
    api_key = api_key ? api_key : r.args.api_key;
    //外链地址默认http,如果是https,则需要将这里的 http 改为 https,如果是反代服务器两种都有,可以将这一行注释掉,统一使用第一行填写的地址
    //serverAddr = r.headersIn.Host ? `https://${r.headersIn.Host}` : serverAddr;       //这一行注释掉就可以了

视频直链播放正常,海报图片不显示

用alist➕rclone的方案,根据教程修改相关配置,有点小问题求教一下。

用8096端口访问:

  • 海报和演员图片正常
  • 无法播放视频,显示没有兼容的流

用8095端口或绑定的域名访问:

  • 海报和演员图片无法显示
  • 视频正常播放,而且是阿里云直链

海报异常

求助大佬,用的最新版emby2alist无法加载外挂字幕

image
image
如图,下载的最新版代码,播放时已经选择字幕,但是字幕不会显示 ,或者字幕错乱,比如明明选择的是英文版字幕但是显示的是中文版,选择的是中文版字幕却没有出现字幕,求助大佬是什么原因,感觉是bug,因为我用之前版本的代码可以正确显示字幕,但是之前那个版本不支持直播源直接播放,所以更新到新版就出现了上述问题

请教大佬 直连网盘播放后 如何套证书 访问emby

我在VPS搭建Docker 版的 emby ,然后用Alist转换为Webdav,Rclone挂载,能正常的通过直连网盘的方式观看影片,看着 浏览器地址栏 显示不安全链接 强迫症来了,我尝试修改Nginx 配置文件添加ssl,证书是通过 https://freessl.cn/ 申请的年证书,证书格式是 Nginx 以下是我的emby访问域名配置文件 添加了 ssl 相关,但是并不生效,依然是没有证书 不安全的状态,望大佬指点

Load the njs script

js_path /etc/nginx/conf.d/;
js_import emby2Pan from emby.js;
#Cache images
proxy_cache_path /var/cache/nginx/emby levels=1:2 keys_zone=emby:100m max_size=1g inactive=30d use_temp_path=off;
proxy_cache_path /var/cache/nginx/emby/subs levels=1:2 keys_zone=embysubs:10m max_size=1g inactive=30d use_temp_path=off;
server{
gzip on;
listen 80;
listen [::]:80;
server_name tycl.cc;
listen 443;
listen [::]:443;
server_name tycl.cc;

ssl_certificate /etc/nginx/ssl/tycl.cc/tycl.cc.cer;
ssl_certificate_key /etc/nginx/ssl/tycl.cc/tycl.cc.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5"; 

location ~ /{
    return 301 https://$host$request_uri;
}

# aliDrive direct stream need no-referrer
add_header 'Referrer-Policy' 'no-referrer';
set $emby http://127.0.0.1:10010;  #emby address

# Proxy sockets traffic for jellyfin-mpv-shim and webClient
location ~ /(socket|embywebsocket) {
    # Proxy Emby Websockets traffic
    proxy_pass $emby;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Protocol $scheme;
    proxy_set_header X-Forwarded-Host $http_host;
}

# Redirect the stream to njs
location ~* /videos/(\d+)/stream {             
    js_content emby2Pan.redirect2Pan;
}
# for webClient download ,android is SyncService api
location ~* /Items/(\d+)/Download {
    js_content emby2Pan.redirect2Pan;
}

 #Cache the Subtitles
location ~* /videos/(.*)/Subtitles {
    proxy_pass $emby;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Protocol $scheme;
    proxy_set_header X-Forwarded-Host $http_host;

    proxy_cache embysubs;
    proxy_cache_revalidate on;
    proxy_cache_lock_timeout 10s;
    proxy_cache_lock on;
    proxy_cache_valid 200 30d;
    proxy_cache_key $proxy_host$uri;
    #add_header X-Cache-Status $upstream_cache_status; # This is only to check if cache is working
}

# Cache the images
location ~ /Items/(.*)/Images {
    proxy_pass $emby;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Protocol $scheme;
    proxy_set_header X-Forwarded-Host $http_host;

    proxy_cache emby;
    proxy_cache_revalidate on;
    proxy_cache_lock_timeout 10s;  
    proxy_cache_lock on; 
    # add_header X-Cache-Status $upstream_cache_status; # This is only to check if cache is working
}

location / {
    # Proxy main Emby traffic
    proxy_pass $emby;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Protocol $scheme;
    proxy_set_header X-Forwarded-Host $http_host;
    # Disable buffering when the nginx proxy gets very resource heavy upon streaming
    proxy_buffering off;
}

}

好像不支持4.8.3.X,希望大神再核实更新一下

关于视频直播跨域的问题

我是基于python的flask框架重写了您的emby.js 和 emby-live.js; 因为搭建环境比较复杂还有实在不懂js,就没有复现环境。现在重写之后,视频重定向完全没问题,但是直播的时候,会出现跨域的问题。请求一下,emby-live.js 我看里面没有解决跨域的问题,您是如何解决跨域的。

MKV文件播放失败

QQ截图20231017231009.png

MKV文件在电脑网页播放失败在手机上可以正常播放

2023/10/17 23:59:27 stdout 172.23.0.1 - - [17/Oct/2023:15:59:27 +0000] "GET /emby/Items/141/Images/Primary?maxHeight=300&maxWidth=200&tag=3ae4d2a2e73173d54d3175cab2d40576&quality=90 HTTP/1.1" 200 18582 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:27 stdout 172.23.0.1 - - [17/Oct/2023:15:59:27 +0000] "GET /emby/Items/143/Images/Primary?maxHeight=225&maxWidth=400&tag=6daf82ab69e6c12aa1b9591af9ba1c93&quality=90 HTTP/1.1" 200 13640 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:26 stdout 172.23.0.1 - - [17/Oct/2023:15:59:26 +0000] "POST /emby/Sessions/Playing/Stopped?X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn&reqformat=json HTTP/1.1" 204 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:26 stdout 172.23.0.1 - - [17/Oct/2023:15:59:26 +0000] "POST /emby/Videos/ActiveEncodings/Delete?deviceId=44bf517f-740a-48c2-a310-39c961bc071d&PlaySessionId=63fac4ecc2ba4004a99a401afa98b907&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn HTTP/1.1" 204 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:20 stdout 172.23.0.1 - - [17/Oct/2023:15:59:20 +0000] "GET /emby/videos/143/master.m3u8?DeviceId=44bf517f-740a-48c2-a310-39c961bc071d&MediaSourceId=fec3ecd10c6604008b6d9725752cee28&StartTimeTicks=1377690&PlaySessionId=8e24a8570b9c4991bbba92c739173020&api_key=541c89a2936849f7af1c692543ec3d66&VideoCodec=h264,h265,hevc&AudioCodec=mp3,aac&VideoBitrate=139808000&AudioBitrate=192000&AudioStreamIndex=1&TranscodingMaxAudioChannels=2&SegmentContainer=m4s,ts&MinSegments=1&BreakOnNonKeyFrames=True&SubtitleStreamIndexes=-1&ManifestSubtitles=vtt&h264-profile=high,main,baseline,constrainedbaseline,high10&h264-level=62&TranscodeReasons=DirectPlayError&allowVideoStreamCopy=false&allowAudioStreamCopy=false HTTP/1.1" 302 145 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:20 stderr 2023/10/17 15:59:20 [warn] 20#20: *2106 js: redirect to: http://192.168.50.170:5244/p/Videos/Animes/Anne%20Happy/Season%201/%5BSumiSora&CASO&FLsnow%5D%20Unhappy%20%20-%20S01E02%20-%20.mkv
2023/10/17 23:59:20 stderr 2023/10/17 15:59:20 [warn] 20#20: *2106 js: mount emby file path: /Videos/Animes/Anne Happy/Season 1/[SumiSora&CASO&FLsnow] Unhappy - S01E02 - .mkv
2023/10/17 23:59:20 stderr 2023/10/17 15:59:20 [warn] 20#20: *2106 js: itemInfoUri: http://192.168.50.170:8931/Items/143/PlaybackInfo?MediaSourceId=fec3ecd10c6604008b6d9725752cee28&api_key=541c89a2936849f7af1c692543ec3d66
2023/10/17 23:59:20 stderr 2023/10/17 15:59:20 [warn] 20#20: *2106 js: itemInfoUri: http://192.168.50.170:8931/Items/143/PlaybackInfo?api_key=541c89a2936849f7af1c692543ec3d66&AutoOpenLiveStream=true
2023/10/17 23:59:20 stdout 172.23.0.1 - - [17/Oct/2023:15:59:20 +0000] "POST /emby/Videos/ActiveEncodings/Delete?deviceId=44bf517f-740a-48c2-a310-39c961bc071d&PlaySessionId=63fac4ecc2ba4004a99a401afa98b907&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn HTTP/1.1" 204 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:20 stdout 172.23.0.1 - - [17/Oct/2023:15:59:20 +0000] "POST /emby/Items/143/PlaybackInfo?UserId=61f35782e03f452d9b7e1a7d6f0f3ab1&StartTimeTicks=1377690&IsPlayback=true&AutoOpenLiveStream=true&AudioStreamIndex=1&SubtitleStreamIndex=40&EnableDirectPlay=false&EnableDirectStream=false&AllowVideoStreamCopy=false&AllowAudioStreamCopy=false&MediaSourceId=fec3ecd10c6604008b6d9725752cee28&MaxStreamingBitrate=140000000&CurrentPlaySessionId=63fac4ecc2ba4004a99a401afa98b907&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn&reqformat=json HTTP/1.1" 200 26027 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:20 stdout 172.23.0.1 - - [17/Oct/2023:15:59:20 +0000] "POST /emby/Videos/ActiveEncodings/Delete?deviceId=44bf517f-740a-48c2-a310-39c961bc071d&PlaySessionId=4d2c1e597a414ac19040b2c0cd8e3af7&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn HTTP/1.1" 204 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:13 stdout 172.23.0.1 - - [17/Oct/2023:15:59:13 +0000] "GET /emby/videos/143/master.m3u8?DeviceId=44bf517f-740a-48c2-a310-39c961bc071d&MediaSourceId=fec3ecd10c6604008b6d9725752cee28&StartTimeTicks=1377690&PlaySessionId=63fac4ecc2ba4004a99a401afa98b907&api_key=541c89a2936849f7af1c692543ec3d66&VideoCodec=h264,h265,hevc&AudioCodec=mp3,aac&VideoBitrate=139808000&AudioBitrate=192000&AudioStreamIndex=1&TranscodingMaxAudioChannels=2&SegmentContainer=m4s,ts&MinSegments=1&BreakOnNonKeyFrames=True&SubtitleStreamIndexes=-1&ManifestSubtitles=vtt&h264-profile=high,main,baseline,constrainedbaseline,high10&h264-level=62&TranscodeReasons=DirectPlayError&allowVideoStreamCopy=false HTTP/1.1" 302 145 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:13 stderr 2023/10/17 15:59:13 [warn] 20#20: *2106 js: redirect to: http://192.168.50.170:5244/p/Videos/Animes/Anne%20Happy/Season%201/%5BSumiSora&CASO&FLsnow%5D%20Unhappy%20%20-%20S01E02%20-%20.mkv
2023/10/17 23:59:13 stderr 2023/10/17 15:59:13 [warn] 20#20: *2106 js: mount emby file path: /Videos/Animes/Anne Happy/Season 1/[SumiSora&CASO&FLsnow] Unhappy - S01E02 - .mkv
2023/10/17 23:59:13 stderr 2023/10/17 15:59:13 [warn] 20#20: *2106 js: itemInfoUri: http://192.168.50.170:8931/Items/143/PlaybackInfo?MediaSourceId=fec3ecd10c6604008b6d9725752cee28&api_key=541c89a2936849f7af1c692543ec3d66
2023/10/17 23:59:13 stderr 2023/10/17 15:59:13 [warn] 20#20: *2106 js: itemInfoUri: http://192.168.50.170:8931/Items/143/PlaybackInfo?api_key=541c89a2936849f7af1c692543ec3d66&AutoOpenLiveStream=true
2023/10/17 23:59:13 stdout 172.23.0.1 - - [17/Oct/2023:15:59:13 +0000] "POST /emby/Videos/ActiveEncodings/Delete?deviceId=44bf517f-740a-48c2-a310-39c961bc071d&PlaySessionId=4d2c1e597a414ac19040b2c0cd8e3af7&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn HTTP/1.1" 204 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:13 stdout 172.23.0.1 - - [17/Oct/2023:15:59:13 +0000] "POST /emby/Items/143/PlaybackInfo?UserId=61f35782e03f452d9b7e1a7d6f0f3ab1&StartTimeTicks=1377690&IsPlayback=true&AutoOpenLiveStream=true&AudioStreamIndex=1&SubtitleStreamIndex=40&EnableDirectPlay=false&EnableDirectStream=false&AllowVideoStreamCopy=false&MediaSourceId=fec3ecd10c6604008b6d9725752cee28&MaxStreamingBitrate=140000000&CurrentPlaySessionId=4d2c1e597a414ac19040b2c0cd8e3af7&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn&reqformat=json HTTP/1.1" 200 26000 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:13 stdout 172.23.0.1 - - [17/Oct/2023:15:59:13 +0000] "POST /emby/Videos/ActiveEncodings/Delete?deviceId=44bf517f-740a-48c2-a310-39c961bc071d&PlaySessionId=aa2c7b1a1c7c441b90f9fbceed99752b&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn HTTP/1.1" 204 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /web/modules/fonts/GoNotoCurrent.woff2 HTTP/1.1" 200 5439980 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /emby/Videos/143/fec3ecd10c6604008b6d9725752cee28/Subtitles/40/0/Stream.ass?api_key=541c89a2936849f7af1c692543ec3d66 HTTP/1.1" 200 44711 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /web/bower_components/javascriptsubtitlesoctopus/dist/subtitles-octopus-worker.wasm HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /web/bower_components/javascriptsubtitlesoctopus/dist/subtitles-octopus-worker.wasm HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /web/bower_components/javascriptsubtitlesoctopus/dist/subtitles-octopus-worker.wasm HTTP/1.1" 200 1922230 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /web/bower_components/javascriptsubtitlesoctopus/dist/subtitles-octopus-worker.js HTTP/1.1" 200 433549 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /emby/videos/143/master.m3u8?DeviceId=44bf517f-740a-48c2-a310-39c961bc071d&MediaSourceId=fec3ecd10c6604008b6d9725752cee28&StartTimeTicks=1377690&PlaySessionId=4d2c1e597a414ac19040b2c0cd8e3af7&api_key=541c89a2936849f7af1c692543ec3d66&VideoCodec=h264,h265,hevc&AudioCodec=mp3,aac&VideoBitrate=139808000&AudioBitrate=192000&AudioStreamIndex=1&TranscodingMaxAudioChannels=2&SegmentContainer=m4s,ts&MinSegments=1&BreakOnNonKeyFrames=True&SubtitleStreamIndexes=-1&ManifestSubtitles=vtt&h264-profile=high,main,baseline,constrainedbaseline,high10&h264-level=62&TranscodeReasons=DirectPlayError HTTP/1.1" 302 145 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stderr 2023/10/17 15:59:06 [warn] 20#20: *2106 js: redirect to: http://192.168.50.170:5244/p/Videos/Animes/Anne%20Happy/Season%201/%5BSumiSora&CASO&FLsnow%5D%20Unhappy%20%20-%20S01E02%20-%20.mkv
2023/10/17 23:59:06 stderr 2023/10/17 15:59:06 [warn] 20#20: *2106 js: mount emby file path: /Videos/Animes/Anne Happy/Season 1/[SumiSora&CASO&FLsnow] Unhappy - S01E02 - .mkv
2023/10/17 23:59:06 stderr 2023/10/17 15:59:06 [warn] 20#20: *2106 js: itemInfoUri: http://192.168.50.170:8931/Items/143/PlaybackInfo?MediaSourceId=fec3ecd10c6604008b6d9725752cee28&api_key=541c89a2936849f7af1c692543ec3d66
2023/10/17 23:59:06 stderr 2023/10/17 15:59:06 [warn] 20#20: *2106 js: itemInfoUri: http://192.168.50.170:8931/Items/143/PlaybackInfo?api_key=541c89a2936849f7af1c692543ec3d66&AutoOpenLiveStream=true
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "POST /emby/Videos/ActiveEncodings/Delete?deviceId=44bf517f-740a-48c2-a310-39c961bc071d&PlaySessionId=aa2c7b1a1c7c441b90f9fbceed99752b&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn HTTP/1.1" 204 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "POST /emby/Items/143/PlaybackInfo?UserId=61f35782e03f452d9b7e1a7d6f0f3ab1&StartTimeTicks=1377690&IsPlayback=true&AutoOpenLiveStream=true&AudioStreamIndex=1&SubtitleStreamIndex=40&EnableDirectPlay=false&EnableDirectStream=false&MediaSourceId=fec3ecd10c6604008b6d9725752cee28&MaxStreamingBitrate=140000000&CurrentPlaySessionId=aa2c7b1a1c7c441b90f9fbceed99752b&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn&reqformat=json HTTP/1.1" 200 25973 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "POST /emby/Sessions/Playing/Progress?X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn&reqformat=json HTTP/1.1" 204 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /emby/Items/15/Images/Primary?height=512&tag=efa010e75418a8efb2ce55ae227d75ef&quality=90 HTTP/1.1" 200 43586 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /emby/Items/15/Images/Primary?height=192&tag=efa010e75418a8efb2ce55ae227d75ef&quality=90 HTTP/1.1" 200 9716 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "POST /emby/Sessions/Playing?X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn&reqformat=json HTTP/1.1" 204 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /emby/videos/143/stream.mkv?DeviceId=44bf517f-740a-48c2-a310-39c961bc071d&MediaSourceId=fec3ecd10c6604008b6d9725752cee28&Static=true&PlaySessionId=aa2c7b1a1c7c441b90f9fbceed99752b&api_key=541c89a2936849f7af1c692543ec3d66 HTTP/1.1" 302 145 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stderr 2023/10/17 15:59:06 [warn] 20#20: *2103 js: redirect to: http://192.168.50.170:5244/p/Videos/Animes/Anne%20Happy/Season%201/%5BSumiSora&CASO&FLsnow%5D%20Unhappy%20%20-%20S01E02%20-%20.mkv
2023/10/17 23:59:06 stderr 2023/10/17 15:59:06 [warn] 20#20: *2103 js: mount emby file path: /Videos/Animes/Anne Happy/Season 1/[SumiSora&CASO&FLsnow] Unhappy - S01E02 - .mkv
2023/10/17 23:59:06 stderr 2023/10/17 15:59:06 [warn] 20#20: *2103 js: itemInfoUri: http://192.168.50.170:8931/Items/143/PlaybackInfo?MediaSourceId=fec3ecd10c6604008b6d9725752cee28&api_key=541c89a2936849f7af1c692543ec3d66
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "POST /emby/Items/143/PlaybackInfo?UserId=61f35782e03f452d9b7e1a7d6f0f3ab1&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=140000000&X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn&reqformat=json HTTP/1.1" 200 25544 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /emby/Users/61f35782e03f452d9b7e1a7d6f0f3ab1?X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn HTTP/1.1" 200 1048 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /emby/Users/61f35782e03f452d9b7e1a7d6f0f3ab1/Items/143?X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn HTTP/1.1" 200 3480 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
2023/10/17 23:59:06 stdout 172.23.0.1 - - [17/Oct/2023:15:59:06 +0000] "GET /emby/Users/61f35782e03f452d9b7e1a7d6f0f3ab1?X-Emby-Client=Emby%20Web&X-Emby-Device-Name=Google%20Chrome%20Windows&X-Emby-Device-Id=44bf517f-740a-48c2-a310-39c961bc071d&X-Emby-Client-Version=4.7.14.0&X-Emby-Token=541c89a2936849f7af1c692543ec3d66&X-Emby-Language=zh-cn HTTP/1.1" 200 1048 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" "-"
     

小秘版Emby客户端获取不到直链

大佬,小秘版Emby客户端近期更新了,脚本获取不到直链了,日志里面没任何反应,播放失败,希望大佬有空修复一下,感谢

设置完不生效

大佬,我这边设置好后发现同一目录下,有的子目录能正常生效,有一个子目录不生效,看日志没有任何输出,请问有可能是什么原因,跟视频格式有关系吗,不生效的子目录下都是TS格式的视频

无法获取正确的播放链接

//author: @Bpking https://github.com/bpking1/embyExternalUrl
let serverAddr = 'https://x.x.top:30443'; //外网emby地址
const tags = ['BluRay', 'REMUX', 'WEB-DL']; //添加视频tag
const groups = ['CMCT', 'WIKI', 'Z0N3', 'EbP', 'PTer', 'EPSILON', 'FRDS', 'SMURF']; //添加制作组

let api_key = '';
let domain = '';
let oriData = '';
const redirectKey = 'redirect2external'; 请问大佬这里是否需要填写 apikey跟下面的选项

现在无法获取正确的播放链接 使用油猴脚本就可以获取到正确的链接

plex直链播放

目前alist上有两种115挂载方式,挂载自己的115连接,和别人分享的115链接。
目前状态:plex2alist中两种类型的视频的直链都可以获取到(plex2alist中有打印)
但是,只能播放别人分享的115链接,直接访问自己挂载的那种方式的直链,http请求为
Resolving cdnfhnfile.115.com (cdnfhnfile.115.com)... 140.249.62.213, 183.131.234.30, 140.249.62.215 Connecting to cdnfhnfile.115.com (cdnfhnfile.115.com)|140.249.62.213|:443... connected. HTTP request sent, awaiting response... 403 Forbidden 2024-02-28 21:42:58 ERROR 403: Forbidden.

而在alist中115相关的视频是可以直接播放的,想问一下这个是alist的问题还是plex2alist的问题?

AList 和阿里云 webdav 都是阿里云官方接口,能否简化步骤?

如题,AList 和阿里云 webdav 目前都是使用阿里云的官方开放平台接口,小白想问下为什么要先用阿里云 webdav 挂载了,再用 AList ➕nginx中转,理由是什么?能否简化一下流程,去掉阿里云 webdav。

在 GitHub 看到另一个类似方案,原理应该一样,直接用 AList➕nginx 的,只是作者很久没更新项目了,不确定还用么。

外挂字幕

外挂字幕的视频外部播放器播放没有字幕,要下载下来

plex直链失败

使用了最新的plex方案,不过docker方面只用了其中的nignx服务,alist和plex都是单独安装的,plex是通过官方docker安装的。现在网页上通过8095端口可以访问到plex服务器,但实际测试下来,视频文件没有走直链,仍是plex服务器中转的。在网页端登录plex后台后,按照说明把公开访问的端口也设为8095,这时网页端通过8095端口仍是能找到plex服务器,但plex客户端就访问不到plex服务器,这是什么原因呢?

请问能否微调一下逻辑

想实现同时使用阿里和谷歌两个盘,如果alist找不到文件的话自动恢复成emby正常的播放模式

emby 4.8.1.0 不支持直链播放

  1. emby 4.8.1.0 不支持直链播放,4.7.14.0 是支持的
  2. 4.7.14.0 对strm不太友好,同文件夹下,如果 a.mp4 与 a.strm 同时存在,然后进详情页服务器必死机,播放 strm 文件 (路径非直链),服务器有时会失联,估计是死机了
  3. 用了一段时间,发现 4.8.1.0 挺稳定的,bug都改了......
  4. 请问是否能支持一下 4.8.1.0,谢谢!

emby2alist这个方案疑似会导致infuse识别错误

已经测试过的有web、fileball、Terminus Player正常播放,但是infuse pro最近的几个版本链接上8095或者8096端口后,都会将所有的电视剧资源识别成“其他”,导致首页无法分类,尚不清楚是infuse的问题还是这个方案的问题

image image image

emby2alist这个方案会导致8096这个端口没法被infuse pro正确识别吗?

然后有个问题问下,我这边用docker命令能看到redirect到直链,日志如下,是运行成功了吗?

image

不知现在是否兼容jellyfin。

我成功配置了反向代理,并且再8097端口打开了jellyfin的webui界面,但是没有看见外部播放按钮,但是我不确定此项目现在是否兼容jellyfin,很难进行进一步的故障排除。

[BUG] 反代PlaybackInfo导致响应内容缺少加载字幕相关的必须字段

1.此为注释反代PlaybackInfo路径后,外挂ass字幕的mkv文件测试,电脑Web浏览器播放条件。
49b983a0d03ea038c3f8af3fcc5affbc
47a5a31bb8705058ed835aa644740a1e

2.此为放开反代PlaybackInfo路径后,外挂ass字幕的mkv文件测试,电脑Web浏览器播放条件。
237dbe339a400116d23892fcac9a64ce
94c35c34775b73be46b3a296ba404511

2.1 此为放开反代PlaybackInfo路径后,内挂ass字幕的mkv文件测试,电脑Web浏览器播放条件。
ed8aea36acf85fc02e4d60b6267d6aac

3.此为Emby的Web端判断逻辑。
a57e5cba4d1a8128af0f01a34df38baa

@AmbitiousJun,希望能抽空修复下transferPlaybackInfo的逻辑,或者在constant.js中加一个开关控制也行,多谢了

[discussion] jellyfin 能实现直链吗?

成功方式:emby使用emby2Alist 获取alist网盘的直链
使用机器: vps
直链方式:alist + rclone + emby

失败方式:jellyfin使用emby2Alist 获取alist网盘的直链
使用机器: vps
直链方式:alist + rclone + jellyfin

请问emby2Alist能修改成jellfyin获取网盘的直链吗?看配置文件和描述应该是支持,请问具体怎么修改呢?
jellyfin报错信息:
[error] 20#20: *421 js: error: emby_api 400 Bad Request

挂载阿里云可以正常播放,但是存在本地的文件无法播放

我的embyserver有两个媒体库,一个是阿里云盘webdav挂载到本地的文件夹,一个是正常的本地文件夹。
在外网环境,目前阿里云webdav挂载可以正常直链播放,但是本地文件夹无法播放
我尝试注释掉了,本地文件夹就可以正常播放,但是阿里云直链功能就不生效了

#Redirect the stream to njs
location ~* /videos/(.*)/stream {
# Cache alist direct lin
add_header Cache-Control max-age=3600;
js_content emby2Pan.redirect2Pan;
}

获取不到正确路径

大佬帮忙看一下这是什么情况,我文件地址是sp/sp1/...搜索的路径变成了sp/...导致搜索不到image
这是我的配置
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.