本帖最后由 tugar 于 2023-1-23 16:15 编辑
直接在播放器内观看 YouTube 的视频。仅解析 m3u8 格式,视频分辨率最高到 1080p

[hide]
- [/code][/hide]
- [img]static/image/hrline/2.gif[/img]
- [size=3]以上代码对获取到的原始m3u8进行了再处理,默认播放1080p 30fps,若要自适应分辨率请删除本部分内容。如要指定分辨率,则加一个参数。[/size]
- [code]https:\/.*\/96\/.*index.m3u8
复制代码 下面列出分辨率对应表,可根据需求修改:
Code | Container | Video Codec | Video Res. | Audio Codec | Audio Bitrate | Still offered? | 91 | MPEG-TS (HLS) | H.264 (Baseline, L1.1) | 144p | AAC (HE v1) | 48 Kbps | Yes | 92 | MPEG-TS (HLS) | H.264 (Main, L2.1) | 240p | AAC (HE v1) | 48 Kbps | Yes | 93 | MPEG-TS (HLS) | H.264 (Main, L3.0) | 360p | AAC (LC) | 128 Kbps | Yes | 94 | MPEG-TS (HLS) | H.264 (Main, L3.1) | 480p | AAC (LC) | 128 Kbps | Yes | 95 | MPEG-TS (HLS) | H.264 (Main, L3.1) | 720p | AAC (LC) | 256 Kbps | Yes | 96 | MPEG-TS (HLS) | H.264 (High, L4.0) | 1080p | AAC (LC) | 256 Kbps | Yes | 300 | MPEG-TS (HLS) | H.264 (Main, L3.2) | HFR 720p | AAC (LC) | 128 Kbps | Yes | 301 | MPEG-TS (HLS) | H.264 (High, L4.2) | HFR 1080p | AAC (LC) | 128 Kbps | Yes |
更新方案:
这个PHP效率实在太低了,因为要下载整个页面,导致速度太慢,代码有待优化,但是找到了更好的解决方案,就是利用GitHub Action和yt-dlp工具直接生成播放链接,YouTube的播放链接只有6小时时效,所以Action自动触发的时间需小于6小时,以下是Action yml代码:
- name: Get YouTube Live m3u8
- on:
- schedule:
- - cron: "0 */6 * * *"
- workflow_dispatch:
- jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - name: Install yt-dlp
- run: |
- sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
- sudo chmod a+rx /usr/local/bin/yt-dlp
- - name: Get ttvnews.m3u8
- run: |
- touch ./ttvnews.m3u8
- sudo cat >./ttvnews.m3u8 <<EOL
- #EXTM3U
- #EXT-X-VERSION:3
- #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5400000
- $(yt-dlp -g https://www.youtube.com/watch?v=xL0ch83RAK8)
- EOL
- - name: Get ftvnews.m3u8
- run: |
- touch ./ftvnews.m3u8
- sudo cat >./ftvnews.m3u8 <<EOL
- #EXTM3U
- #EXT-X-VERSION:3
- #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5400000
- $(yt-dlp -g https://www.youtube.com/watch?v=ylYJSBUgaMA)
- EOL
- - name : Upload artifact
- uses: actions/upload-artifact@master
- with:
- name: ytblive m3u8
- path: .
- - name: Git push assets to "ytblive" branch
- run: |
- git init
- git config --local user.name "actions"
- git config --local user.email "action@github.com"
- git checkout -b ytblive
- git add .
- git commit -m "Update ytblive"
- git remote add origin "https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}"
- git push -f -u origin ytblive
复制代码
https://raw.cmfly.co/https://raw ... rkflows/youtube.yml
生成的播放链接:
#EXTINF:-1 tvg-id="7200" tvg-name="ABC News" tvg-logo="" group-title="海外",ABC Newshttps://raw.kgithub.com/jianyuann/live-url@ytblive/cnnnews.m3u8#EXTINF:-1 tvg-id="734" tvg-name="France24" tvg-logo="" group-title="海外",France24https://raw.kgithub.com/jianyuann/live-url/ytblive/france24.m3u8
发帖注意事项
请勿胡乱发帖:https://www.right.com.cn/forum/thread-8307840-1-1.html
账户手机验证:https://www.right.com.cn/forum/home.php?mod=spacecp&ac=plugin&id=jzsjiale_sms:home
|