Skip to content

Instantly share code, notes, and snippets.

@random-robbie
Last active July 14, 2026 05:40
Show Gist options
  • Select an option

  • Save random-robbie/e56919b5603ecc87af885391e7331657 to your computer and use it in GitHub Desktop.

Select an option

Save random-robbie/e56919b5603ecc87af885391e7331657 to your computer and use it in GitHub Desktop.
BBC HLS Streams - let me know if i missed any
#EXTM3U
#EXTINF:-1 tvg-id="BBC One HD" tvg-name="BBC One HD" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One HD
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/abr_hdtv/ak/bbc_one_hd.m3u8
#EXTINF:-1 tvg-id="BBC One London" tvg-name="BBC One London" tvg-logo="https://s4.postimg.org/z61nj8qd9/Bbc_london_logo.jpg" group-title="BBC",BBC One London
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_london.m3u8
#EXTINF:-1 tvg-id="BBC One Northern Ireland HD" tvg-name="BBC One Northern Ireland HD" tvg-logo="https://s3.postimg.org/ltztuojqr/6y_QROLCn_400x400.png" group-title="BBC",BBC One Northern Ireland HD
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/abr_hdtv/ak/bbc_one_northern_ireland_hd.m3u8
#EXTINF:-1 tvg-id="BBC One Scotland HD" tvg-name="BBC One Scotland HD" tvg-logo="https://s3.postimg.org/ltztuojqr/6y_QROLCn_400x400.png" group-title="BBC",BBC One Scotland HD
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/abr_hdtv/ak/bbc_one_scotland_hd.m3u8
#EXTINF:-1 tvg-id="BBC Two HD" tvg-name="BBC Two HD" tvg-logo="https://s3.postimg.org/3oa6ilk4j/BBC_Two_HD_svg.png" group-title="BBC",BBC Two HD
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/abr_hdtv/ak/bbc_two_england.m3u8
#EXTINF:-1 tvg-id="BBC Two Wales" tvg-name="BBC Two Wales" tvg-logo="https://s3.postimg.org/87e8w998z/BBC_Two_Wales_logo_svg.png" group-title="BBC",BBC Two Wales
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_two_wales_digital.m3u8
#EXTINF:-1 tvg-id="BBC Two Northen Ireland" tvg-name="BBC Two Northen Ireland" tvg-logo="https://s4.postimg.org/kkaws79e5/BBC_Two_Northern_Ireland_svg.png" group-title="BBC",BBC Two Northen Ireland
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_two_northern_ireland_digital.m3u8
#EXTINF:-1 tvg-id="BBC Two Scotland" tvg-name="BBC Two Scotland" tvg-logo="https://s3.postimg.org/969t1ltyr/BBC_Two_Scotland_svg.png" group-title="BBC",BBC Two Scotland
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_two_scotland.m3u8
#EXTINF:-1 tvg-id="BBC Four HD" tvg-name="BBC Four HD" tvg-logo="https://s3.postimg.org/odxup7toz/BBC_Four_HD_Logo_svg.png" group-title="BBC",BBC Four HD
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/abr_hdtv/ak/bbc_four.m3u8
#EXTINF:-1 tvg-id="CBBC HD" tvg-name="CBBC HD" tvg-logo="https://s3.postimg.org/5rli5k0kj/CBBC_HD_svg.png" group-title="BBC",CBBC HD
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/abr_hdtv/ak/cbbc.m3u8
#EXTINF:-1 tvg-id="CBeebies HD" tvg-name="CBeebies HD" tvg-logo="https://s3.postimg.org/718r6aq9v/CBeebies_svg.png" group-title="BBC",CBeebies HD
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/abr_hdtv/ak/cbeebies.m3u8
#EXTINF:-1 tvg-id="BBC News HD" tvg-name="BBC News HD" tvg-logo="https://s3.postimg.org/hxublo6hv/bbc_news_logo.png" group-title="BBC",BBC News HD
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/abr_hdtv/ak/bbc_news24.m3u8
#EXTINF:-1 tvg-id="BBC Parliament" tvg-name="BBC Parliament" tvg-logo="https://s3.postimg.org/r7up5r603/BBC_Parliament_Logo_svg.png" group-title="BBC",BBC Parliament
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_parliament.m3u8
#EXTINF:-1 tvg-id="BBC ALBA" tvg-name="BBC ALBA" tvg-logo="https://s4.postimg.org/kne4o8bsd/1280px_BBC_Alba_svg.png" group-title="BBC",BBC ALBA
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_alba.m3u8
#EXTINF:-1 tvg-id="S4C" tvg-name="S4C" tvg-logo="https://s4.postimg.org/gczb0pjod/S4_C_logo_2014_svg.png" group-title="BBC",S4C
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/s4cpbs.m3u8
#EXTINF:-1 tvg-id="BBC One Cambridge" tvg-name="BBC One Cambridge" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One Cambridge
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_cambridge.m3u8
#EXTINF:-1 tvg-id="BBC One North West" tvg-name="BBC One North West" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One North West
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_north_west.m3u8
#EXTINF:-1 tvg-id="BBC One North East" tvg-name="BBC One North East" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One North East
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_north_east.m3u8
#EXTINF:-1 tvg-id="BBC One South West" tvg-name="BBC One South West" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One South West
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_south_west.m3u8
#EXTINF:-1 tvg-id="BBC One South East" tvg-name="BBC One South East" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One South East
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_south_east.m3u8
#EXTINF:-1 tvg-id="BBC One South" tvg-name="BBC One South" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One South
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_south.m3u8
#EXTINF:-1 tvg-id="BBC One East Yorkshire" tvg-name="BBC One East Yorkshire" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One East Yorkshire
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_east_yorkshire.m3u8
#EXTINF:-1 tvg-id="BBC One Yorks" tvg-name="BBC One Yorks" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One Yorks
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_yorks.m3u8
#EXTINF:-1 tvg-id="BBC One West" tvg-name="BBC One West" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One West
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_west.m3u8
#EXTINF:-1 tvg-id="BBC One South East" tvg-name="BBC One South East" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One South East
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_south_east.m3u8
#EXTINF:-1 tvg-id="BBC One South East" tvg-name="BBC One South" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One South
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_south.m3u8
#EXTINF:-1 tvg-id="BBC One Oxford" tvg-name="BBC One Oxford" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One Oxford
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_oxford.m3u8
#EXTINF:-1 tvg-id="BBC One East Midlands" tvg-name="BBC One East Midlands" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One East Midlands
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_east_midlands.m3u8
#EXTINF:-1 tvg-id="BBC One East" tvg-name="BBC One East" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One East
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_east.m3u8
#EXTINF:-1 tvg-id="BBC One Channel Islands" tvg-name="BBC One Channel Islands" tvg-logo="https://s4.postimg.org/k5xl5dmf1/bbc_one.png" group-title="BBC",BBC One Channel Islands
http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_tablet/ak/bbc_one_channel_islands.m3u8
@Delitants

Delitants commented Jun 14, 2026

Copy link
Copy Markdown

UHD World Cup Stream... https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_041/iptv_uhd_v1.mpd

Out of interest when you sniffed for that what was the media selector being used to fetch it, do you know?

https @ 0x5597d5f70bc0] HTTP error 404 Not Found
[dash @ 0x5597d5bb1f80] Failed to open fragment of playlist
[https @ 0x5597d5f70bc0] HTTP error 404 Not Found
[dash @ 0x5597d5bb1f80] Failed to open fragment of playlist

This one works: https://vs-cmaf-pushb-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:video_pop_up_channel_02/pc_hd_abr_v2.fmp4.m3u8

@CasperMcFadden95

CasperMcFadden95 commented Jun 15, 2026

Copy link
Copy Markdown

Temporary UHD streams can be found with Python code. uk_bbc_stream_42 was previously active

from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError

url_fmt_uhd = (
    "https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/"
    "x=4/i=urn:bbc:pips:service:uk_bbc_stream_{:03d}/"
    "iptv_uhd_v1.mpd"
)

for i in range(1, 101):
    url = url_fmt_uhd.format(i)

    req = Request(url, method="HEAD")

    try:
        with urlopen(req, timeout=1) as resp:
            if resp.status == 200:
                print(f"#EXTINF:-1,BBC Stream {i} UHD")
                print(url)

    except Exception:
        pass

Just because a link returns 200 doesn't mean it's up. Script could be extended to check the link with ffprobe

EDIT: Updated Script that only prints active streams https://gist.github.com/random-robbie/e56919b5603ecc87af885391e7331657?permalink_comment_id=6202579#gistcomment-6202579

@Delitants

Copy link
Copy Markdown

Temporary UHD streams can be found with Python code. uk_bbc_stream_42 was previously active

from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError

url_fmt_uhd = (
    "https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/"
    "x=4/i=urn:bbc:pips:service:uk_bbc_stream_{:03d}/"
    "iptv_uhd_v1.mpd"
)

for i in range(1, 101):
    url = url_fmt_uhd.format(i)

    req = Request(url, method="HEAD")

    try:
        with urlopen(req, timeout=1) as resp:
            if resp.status == 200:
                print(f"#EXTINF:-1,BBC Stream {i} UHD")
                print(url)

    except Exception:
        pass

None of them work.


python3 bbc_uhd.py

#EXTINF:-1,BBC Stream 41 UHD
https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_041/iptv_uhd_v1.mpd
#EXTINF:-1,BBC Stream 42 UHD
https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_042/iptv_uhd_v1.mpd
#EXTINF:-1,BBC Stream 43 UHD
https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_043/iptv_uhd_v1.mpd
#EXTINF:-1,BBC Stream 44 UHD
https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_044/iptv_uhd_v1.mpd
root@cdn1-uk:~# ffprobe -i https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_044/iptv_uhd_v1.mpd
ffprobe version 6.1.1-3ubuntu5 Copyright (c) 2007-2023 the FFmpeg developers
  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist

@Smark223

Copy link
Copy Markdown

Temporary UHD streams can be found with Python code. uk_bbc_stream_42 was previously active

from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError

url_fmt_uhd = (
    "https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/"
    "x=4/i=urn:bbc:pips:service:uk_bbc_stream_{:03d}/"
    "iptv_uhd_v1.mpd"
)

for i in range(1, 101):
    url = url_fmt_uhd.format(i)

    req = Request(url, method="HEAD")

    try:
        with urlopen(req, timeout=1) as resp:
            if resp.status == 200:
                print(f"#EXTINF:-1,BBC Stream {i} UHD")
                print(url)

    except Exception:
        pass

None of them work.


python3 bbc_uhd.py

#EXTINF:-1,BBC Stream 41 UHD
https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_041/iptv_uhd_v1.mpd
#EXTINF:-1,BBC Stream 42 UHD
https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_042/iptv_uhd_v1.mpd
#EXTINF:-1,BBC Stream 43 UHD
https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_043/iptv_uhd_v1.mpd
#EXTINF:-1,BBC Stream 44 UHD
https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_044/iptv_uhd_v1.mpd
root@cdn1-uk:~# ffprobe -i https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/x=4/i=urn:bbc:pips:service:uk_bbc_stream_044/iptv_uhd_v1.mpd
ffprobe version 6.1.1-3ubuntu5 Copyright (c) 2007-2023 the FFmpeg developers
  built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist
[https @ 0x581fd0295280] HTTP error 404 Not Found
[dash @ 0x581fcfee1f80] Failed to open fragment of playlist

They're only active during live games on the BBC.

@marco79cgn

Copy link
Copy Markdown

BBC mpds gone message": "Object not found."
Can someone provide the new ones please.

https://tinyurl.com/4628yhfy

Are the 1080p links outdated? I can play all 720p (including geo-restricted) streams without problems but none of the 1080p Links work.

For example:
BBC1 London 720p (geo-restricted) works:
https://vs-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:bbc_one_london/iptv_hd_abr_v1.mpd

BBC1 London 1080p (geo-restricted) doesn't:
https://vs-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:bbc_one_london/iptv_mse_v0_hevc.mpd

Output:

[cli][info] Found matching plugin dash for URL https://vs-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:bbc_one_london/iptv_mse_v0_hevc.mpd
error: Unable to open URL: https://vs-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:bbc_one_london/iptv_mse_v0_hevc.mpd (404 Client Error: Not Found for url: https://vs-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:bbc_one_london/iptv_mse_v0_hevc.mpd)

@CasperMcFadden95

Copy link
Copy Markdown

@CasperMcFadden95

CasperMcFadden95 commented Jun 16, 2026

Copy link
Copy Markdown

Script to print live BBC stream urls

from urllib.request import Request, urlopen
import urllib.request
import urllib.parse
import json
import subprocess
from datetime import datetime

def fetch_data(service_id: str):
    base_url = "https://ess.api.bbci.co.uk/schedules"

    params = urllib.parse.urlencode({"serviceId": service_id})
    url = f"{base_url}?{params}"

    try:
        with urllib.request.urlopen(url, timeout=1) as response:
            raw_data = response.read().decode("utf-8")
            return json.loads(raw_data)

    except Exception:
        return None

def url_is_up(url):
    try:
        req = Request(url, method="HEAD")
        with urlopen(req, timeout=1) as resp:
            return resp.status == 200
    except Exception:
        return False

hevc = True

mpd_suffix = "hevc_iptv_mse_v0.mpd" if hevc else "iptv_hd_abr_v1.mpd"

url_fmt_hd = (
        "https://ve-cmaf-push-uk-live.akamaized.net/"
        "x=4/i=urn:bbc:pips:service:{}/"
        + mpd_suffix
)

url_fmt_uhd = (
    "https://ve-uhd-push-uk.live.fastly.md.bbci.co.uk/"
    "x=4/i=urn:bbc:pips:service:{}/"
    "iptv_uhd_v1.mpd"
)

service_id_fmt = 'uk_bbc_stream_{:03d}'
for i in range(1, 101):
    service_id = service_id_fmt.format(i)

    data = fetch_data(service_id)
    if data:
        def parse(ts):
            return datetime.fromisoformat(ts.replace("Z", "+00:00"))

        now = datetime.now().astimezone()

        item = next(
            (
                item for item in data['items']
                if parse(item["published_time"]["start"]) <= now < parse(item["published_time"]["end"])
            ),
            None
        )

        if item:
            name = data['service']['name'] + ' - ' + item['episode']['title']

            hd_url = url_fmt_hd.format(service_id)
            if url_is_up(hd_url):
                print(f"#EXTINF:-1,{name}")
                print(hd_url)
            uhd_url = url_fmt_uhd.format(service_id)
            if url_is_up(uhd_url):
                print(f"#EXTINF:-1,{name} (UHD)")
                print(uhd_url)

@marco79cgn

marco79cgn commented Jun 16, 2026

Copy link
Copy Markdown

Here's a plain shell script (bash) which checks the found urls with streamlink (if installed) and writes the result to an m3u8-Playlist:

get-bbc-uhd-stream.sh:

#!/bin/bash
playlist="bbc-uhd.m3u8"
echo "#EXTM3U" > "$playlist"

for i in $(seq 1 101); do
    url=$(printf \
        "https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_%03d/iptv_uhd_v1.mpd" \
        "$i")
    code=$(curl -sI --connect-timeout 4 --max-time 6 -o /dev/null -w "%{http_code}" "$url")
    if [ "$code" = "200" ]; then
      echo "Found BBC Stream ${i}: $url"
      if command -v streamlink >/dev/null 2>&1; then
        available_streams=$(streamlink "$url" | grep '^Available streams:')
        if echo "$available_streams" | grep -q '2160p'; then
          name="BBC Stream ${i}"
          {
            echo "#EXTINF:-1,${name}"
            echo "$url"
          } >> "$playlist"
        fi
      fi
    fi
done
echo
cat "$playlist"

Result:

Found BBC Stream 41: https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_041/iptv_uhd_v1.mpd
Found BBC Stream 42: https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_042/iptv_uhd_v1.mpd
Found BBC Stream 43: https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_043/iptv_uhd_v1.mpd
Found BBC Stream 44: https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_044/iptv_uhd_v1.mpd

#EXTM3U
#EXTINF:-1,BBC Stream 41
https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_041/iptv_uhd_v1.mpd
#EXTINF:-1,BBC Stream 42
https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_042/iptv_uhd_v1.mpd
#EXTINF:-1,BBC Stream 43
https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_043/iptv_uhd_v1.mpd
#EXTINF:-1,BBC Stream 44
https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_044/iptv_uhd_v1.mpd

@shantiq

shantiq commented Jun 17, 2026

Copy link
Copy Markdown

France 🇫🇷 vs. Senegal 🇸🇳 LIVE

720p: https://vs-cmaf-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:bbc_one_london/pc_hd_abr_v2.fmp4.m3u8

This one I could watch on 720p BBC but also on M6 from France network all the French games will be there and this works in UK too and prob elsewhere tested on VLC and mpv https://origin-m6web.live.6cloud.fr/out/v1/6play/6play-m6/cmaf_q2hyb21h/index-hd720.m3u8

Fun to move back and forth

@marco79cgn

Copy link
Copy Markdown

This one I could watch on 720p BBC but also on M6 from France network all the French games will be there and this works in UK too and prob elsewhere tested on VLC and mpv https://origin-m6web.live.6cloud.fr/out/v1/6play/6play-m6/cmaf_q2hyb21h/index-hd720.m3u8

Fun to move back and forth

It worked til today, but now this link returns {"Message":"Access denied."}

@shantiq

shantiq commented Jun 21, 2026

Copy link
Copy Markdown

This one I could watch on 720p BBC but also on M6 from France network all the French games will be there and this works in UK too and prob elsewhere tested on VLC and mpv https://origin-m6web.live.6cloud.fr/out/v1/6play/6play-m6/cmaf_q2hyb21h/index-hd720.m3u8
Fun to move back and forth

It worked til today, but now this link returns {"Message":"Access denied."}

just found that out damn ... any ideas or other trix?
i hope this was not as a result of this post 🙂🙃😉

@marco79cgn

marco79cgn commented Jun 22, 2026

Copy link
Copy Markdown

just found that out damn ... any ideas or other trix? i hope this was not as a result of this post 🙂🙃😉

Totally possible. They are using Fairplay DRM (cenc) on their official website and clients. The stream URLs look like this but are not playable in VLC due to DRM. Quite similar to your url, except for the cenc* or cmaf_fp0** at the end:

https://edge-cf-m6web.live.6cloud.fr/out/v1/6play/6play-m6/cmaf_cenc00_N2/dash-short-hd.mpd
https://edge-fastly-m6web.live.6cloud.fr/out/v1/6play/6play-m6/cmaf_fp00_N1/hls-short-hd.m3u8

Both no DRM and no geo-protection is not normal, especially not for live Sports.

@TheDevFreak

Copy link
Copy Markdown

Script to print live BBC stream urls

works great... but for some reason when I play them via streamlink <link> best they play from the start rather than live? In VLC they play live...

@shantiq

shantiq commented Jun 26, 2026

Copy link
Copy Markdown

Hi could anyone please assist with ITV1 please? Thanks all for your help

Anyone out of all you skillful guys? Surely 🙃😉 must be one
Thanx ahead

@Mark1796

Copy link
Copy Markdown

Hi could anyone please assist with ITV1 please? Thanks all for your help

Anyone out of all your skillful guys? Surely 🙃😉 must be one Thanx ahead

This works for me with STV1 but it is virtually the same channel as ITV1.
https://stvwest.akamaized.net/out/v1/0a8c175eec414b0d8bf7ac8178ad7aae/index.m3u8

@simondavis20

Copy link
Copy Markdown

Is there any ITV links that don’t have the subtitles there can’t be turned off on that last link as you can see
IMG_0114

@shantiq

shantiq commented Jun 26, 2026

Copy link
Copy Markdown

Hi could anyone please assist with ITV1 please? Thanks all for your help

Anyone out of all your skillful guys? Surely 🙃😉 must be one Thanx ahead

This works for me with STV1 but it is virtually the same channel as ITV1. https://stvwest.akamaized.net/out/v1/0a8c175eec414b0d8bf7ac8178ad7aae/index.m3u8

thank you Mark I'll give it a whirl later on

shan

@timecheck

Copy link
Copy Markdown

Does anyone have the new Wimbledon HEVC domain?

@manueldev

Copy link
Copy Markdown

Does anyone have the new Wimbledon HEVC domain?

They are using the same links they use for the World Cup.

@timecheck

Copy link
Copy Markdown

Does anyone have the new Wimbledon HEVC domain?

They are using the same links they use for the World Cup.

Thanks, I found it

@DragonQ

DragonQ commented Jun 30, 2026

Copy link
Copy Markdown

Does anyone have the new Wimbledon HEVC domain?

They are using the same links they use for the World Cup.

Wimbledon is broadcasting currently but I cannot get any of the 4 UHD streams posted above working. N_m3u8DL-RE just says Response status code does not indicate success: 404 (Not Found) over and over. Streamlink says 404 Client Error: Not Found for url: https://ve-uhd-push-uk-live.akamaized.net/x=4/i=urn:bbc:pips:service:uk_bbc_stream_044/t=3840/a=pa6/al=en-GB/ap=main/b=320000/63063.m4s and similar.

@jimbo2018

jimbo2018 commented Jun 30, 2026 via email

Copy link
Copy Markdown

@DragonQ

DragonQ commented Jun 30, 2026

Copy link
Copy Markdown

Turned out I was using an ancient version of Streamlink, a newer one seems to work fine. Not sure why N_m3u8DL-RE isn't happy though!

@jimbo2018

jimbo2018 commented Jun 30, 2026 via email

Copy link
Copy Markdown

@CasperMcFadden95

Copy link
Copy Markdown

Contains BBC Two low latency links
https://open.live.bbc.co.uk/mediaselector/6/select/version/3.0/mediaset/iptv-mse/cvid/urn:bbc:pips:pid:bbc_two_england/format/json/proto/https/cors/1

    {
      "connection": [
        {
          "dpw": -1,
          "protocol": "https",
          "supplier": "akamai_live_uk",
          "href": "https://vs-dash-uk-rd-live.akamaized.net/cl/urn:bbc:pips:service:bbc_two_hd/iptv_mse_v0.mpd",
          "transferFormat": "dash_lowlatency"
        },
        {
          "dpw": 20,
          "protocol": "https",
          "supplier": "cloudfront_live_uk",
          "href": "https://vs-dash-uk-rd.live.cf.md.bbci.co.uk/cl/urn:bbc:pips:service:bbc_two_hd/iptv_mse_v0.mpd",
          "transferFormat": "dash_lowlatency"
        },
        {
          "dpw": 80,
          "protocol": "https",
          "supplier": "fastly_live_uk",
          "href": "https://vs-dash-uk-rd.live.fastly.md.bbci.co.uk/cl/urn:bbc:pips:service:bbc_two_hd/iptv_mse_v0.mpd",
          "transferFormat": "dash_lowlatency"
        }
      ],
      "width": 1920,
      "bitrate": 6500,
      "height": 1080,
      "presentation_type": "dynamic",
      "kind": "video",
      "type": "video/mp4",
      "encoding": "h265",
      "expires": "2099-01-01T00:00:00Z"
    }

@DragonQ

DragonQ commented Jul 9, 2026

Copy link
Copy Markdown

Contains BBC Two low latency links https://open.live.bbc.co.uk/mediaselector/6/select/version/3.0/mediaset/iptv-mse/cvid/urn:bbc:pips:pid:bbc_two_england/format/json/proto/https/cors/1

    {
      "connection": [
        {
          "dpw": -1,
          "protocol": "https",
          "supplier": "akamai_live_uk",
          "href": "https://vs-dash-uk-rd-live.akamaized.net/cl/urn:bbc:pips:service:bbc_two_hd/iptv_mse_v0.mpd",
          "transferFormat": "dash_lowlatency"
        },
        {
          "dpw": 20,
          "protocol": "https",
          "supplier": "cloudfront_live_uk",
          "href": "https://vs-dash-uk-rd.live.cf.md.bbci.co.uk/cl/urn:bbc:pips:service:bbc_two_hd/iptv_mse_v0.mpd",
          "transferFormat": "dash_lowlatency"
        },
        {
          "dpw": 80,
          "protocol": "https",
          "supplier": "fastly_live_uk",
          "href": "https://vs-dash-uk-rd.live.fastly.md.bbci.co.uk/cl/urn:bbc:pips:service:bbc_two_hd/iptv_mse_v0.mpd",
          "transferFormat": "dash_lowlatency"
        }
      ],
      "width": 1920,
      "bitrate": 6500,
      "height": 1080,
      "presentation_type": "dynamic",
      "kind": "video",
      "type": "video/mp4",
      "encoding": "h265",
      "expires": "2099-01-01T00:00:00Z"
    }

Wow, about a second ahead of my local DSat tvheadend stream!

@trancer1994

trancer1994 commented Jul 9, 2026 via email

Copy link
Copy Markdown

@DragonQ

DragonQ commented Jul 10, 2026

Copy link
Copy Markdown

Does anyone know if streamlink can restream these via HTTP as live? I know I can do: streamlink "mpd_url" best --player-external-http --player-external-http-port 8111 and then watch the stream via http://127.0.0.1:8111 but this always starts at the beginning of the stream and no seeking is available. I'm hoping it's possible for streamlink to just go to the live point instead?

@shantiq

shantiq commented Jul 14, 2026

Copy link
Copy Markdown

works for the first few days of Le Tour then conks out yesterday; any other URLs working anyone knows of thanx

http://69.64.57.208/france2/mono.m3u8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment