VideoHelp Forum





Try StreamFab Downloader and download streaming video from Netflix, Amazon!



+ Reply to Thread
Results 1 to 14 of 14
  1. Code:
    ceb1333b11d79085cf30eecd1f254969:50c22b8d1071dc0a667bfb01acd8cc1c
    Quote Quote  
  2. Code:
    ceb1333b11d79085cf30eecd1f254969:50c22b8d1071dc0a667bfb01acd8cc1c
    Thanks!
    Quote Quote  
  3. Code:
    42095c4a98de2d937e8dd9d59a0da424:8a4f2ab708e8af3daf9e5bf071f98d05
    Quote Quote  
  4. Originally Posted by CopyPasteDev View Post
    Code:
    42095c4a98de2d937e8dd9d59a0da424:8a4f2ab708e8af3daf9e5bf071f98d05
    Thanks!
    Quote Quote  
  5. hi,
    can anyone get me the key for this little video, please ?
    (wvg-next gives me an error...)
    Code:
    https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/invite-david-castello-lopes-le-grincheux-le-plus-drole-de-france-nous-raconte-lorigine-de-tout-96445389.html?programSlug=quotidien-avec-yann-barthes
    (french IP, free account)
    Quote Quote  
  6. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    Code:
    --key e0cef04afd53536a82b9b6903e656640:8fe9082000ebc3bf4f0be0501da8a157
    Quote Quote  
  7. Originally Posted by iamghost View Post
    Code:
    --key e0cef04afd53536a82b9b6903e656640:8fe9082000ebc3bf4f0be0501da8a157
    thanks a lot !
    Quote Quote  
  8. Originally Posted by CopyPasteDev View Post
    Code:
    ceb1333b11d79085cf30eecd1f254969:50c22b8d1071dc0a667bfb01acd8cc1c
    Which tool do you use to get the information? I have WidevineProxy2, Vineless, and PlayReadyProxy 2, but I can't get the keys from that site.

    https://telegratuita.st/live/golden.php
    Quote Quote  
  9. Originally Posted by aLGUN0 View Post
    Originally Posted by CopyPasteDev View Post
    Code:
    ceb1333b11d79085cf30eecd1f254969:50c22b8d1071dc0a667bfb01acd8cc1c
    Which tool do you use to get the information? I have WidevineProxy2, Vineless, and PlayReadyProxy 2, but I can't get the keys from that site.

    https://telegratuita.st/live/golden.php
    Using a script with the help of AI

    Code:
    MPD URL: https://otte.live.fly.ww.aiv-cdn.net/gru-nitro/live/clients/dash/enc/ox4csgyamg/out/v1/95cf9c4df3d542f6812f382a52771327/cenc.mpd
    KEY: 38dbcf2d094923f94aca4f913045e993:a475a0bcc6f77b04f07ed1487619d626
    if anyone interested in the script (just type the channel name when prompted for channel id)
    Code:
    #!/usr/bin/env python3
    """Fetch msvhub.sbs/drm.php?id=<channel>, decode obfuscation, print mpd + kid:key."""
    
    from __future__ import annotations
    
    import base64
    import re
    import sys
    
    try:
        import requests
    except ImportError:
        print("pip install requests", file=sys.stderr)
        sys.exit(1)
    
    HEADERS = {
        "User-Agent": (
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:151.0) "
            "Gecko/20100101 Firefox/151.0"
        ),
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "Accept-Language": "en-US,en;q=0.9",
        "Sec-Fetch-Storage-Access": "none",
        "Sec-GPC": "1",
        "Connection": "keep-alive",
        "Referer": "https://telegratuita.st/",
        "Upgrade-Insecure-Requests": "1",
        "Sec-Fetch-Dest": "iframe",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "cross-site",
        "Priority": "u=4",
    }
    URL = "https://msvhub.sbs/drm.php"
    
    
    def decode_obfuscated(text: str) -> str:
        arr = re.search(r"var\s+\w+\s*=\s*\[(.*?)\];", text, re.S)
        off = re.search(r"\)\s*-\s*(\d+)\s*\)", text)
        if not arr or not off:
            raise ValueError("obfuscation array/offset not found")
        offset = int(off.group(1))
        chars = []
        for s in re.findall(r'"([A-Za-z0-9+/=]+)"', arr.group(1)):
            try:
                digits = re.sub(r"\D", "", base64.b64decode(s).decode("utf-8", "replace"))
                if not digits:
                    continue
                cp = int(digits) - offset
                if 0 <= cp < 0x110000:
                    chars.append(chr(cp))
            except Exception:
                continue
        return "".join(chars)
    
    
    def extract_keys(html: str) -> tuple[str, str, str]:
        mpd = re.search(r'var\s+url\s*=\s*"([^"]+)"', html)
        kid = re.search(r'ck_keyid\s*=\s*"([0-9a-fA-F]+)"', html)
        key = re.search(r'ck_key\s*=\s*"([0-9a-fA-F]+)"', html)
        if not mpd or not kid or not key:
            raise ValueError("ck_keyid / ck_key / url not found in decoded page")
        u = mpd.group(1)
        if u.startswith("//"):
            u = "https:" + u
        return u, kid.group(1).lower(), key.group(1).lower()
    
    
    def fetch_channel_keys(channel_id: str) -> tuple[str, str, str]:
        r = requests.get(
            URL,
            params={"id": channel_id.strip()},
            headers=HEADERS,
            timeout=30,
        )
        r.raise_for_status()
        html = decode_obfuscated(r.text)
        return extract_keys(html)
    
    
    def main() -> int:
        channel = input("channel id: ").strip()
        if not channel:
            print("empty id", file=sys.stderr)
            return 1
        try:
            mpd, kid, key = fetch_channel_keys(channel)
        except Exception as e:
            print(f"error: {e}", file=sys.stderr)
            return 2
        print(mpd)
        print(f"{kid}:{key}")
        return 0
    
    
    if __name__ == "__main__":
        sys.exit(main())
    Quote Quote  
  10. Originally Posted by CopyPasteDev View Post
    Using a script with the help of AI

    Code:
    MPD URL: https://otte.live.fly.ww.aiv-cdn.net/gru-nitro/live/clients/dash/enc/ox4csgyamg/out/v1/95cf9c4df3d542f6812f382a52771327/cenc.mpd
    KEY: 38dbcf2d094923f94aca4f913045e993:a475a0bcc6f77b04f07ed1487619d626
    if anyone interested in the script (just type the channel name when prompted for channel id)
    Code:
    #!/usr/bin/env python3
    """Fetch msvhub.sbs/drm.php?id=<channel>, decode obfuscation, print mpd + kid:key."""
    
    from __future__ import annotations
    
    import base64
    import re
    import sys
    
    try:
        import requests
    except ImportError:
        print("pip install requests", file=sys.stderr)
        sys.exit(1)
    
    HEADERS = {
        "User-Agent": (
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:151.0) "
            "Gecko/20100101 Firefox/151.0"
        ),
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "Accept-Language": "en-US,en;q=0.9",
        "Sec-Fetch-Storage-Access": "none",
        "Sec-GPC": "1",
        "Connection": "keep-alive",
        "Referer": "https://telegratuita.st/",
        "Upgrade-Insecure-Requests": "1",
        "Sec-Fetch-Dest": "iframe",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "cross-site",
        "Priority": "u=4",
    }
    URL = "https://msvhub.sbs/drm.php"
    
    
    def decode_obfuscated(text: str) -> str:
        arr = re.search(r"var\s+\w+\s*=\s*\[(.*?)\];", text, re.S)
        off = re.search(r"\)\s*-\s*(\d+)\s*\)", text)
        if not arr or not off:
            raise ValueError("obfuscation array/offset not found")
        offset = int(off.group(1))
        chars = []
        for s in re.findall(r'"([A-Za-z0-9+/=]+)"', arr.group(1)):
            try:
                digits = re.sub(r"\D", "", base64.b64decode(s).decode("utf-8", "replace"))
                if not digits:
                    continue
                cp = int(digits) - offset
                if 0 <= cp < 0x110000:
                    chars.append(chr(cp))
            except Exception:
                continue
        return "".join(chars)
    
    
    def extract_keys(html: str) -> tuple[str, str, str]:
        mpd = re.search(r'var\s+url\s*=\s*"([^"]+)"', html)
        kid = re.search(r'ck_keyid\s*=\s*"([0-9a-fA-F]+)"', html)
        key = re.search(r'ck_key\s*=\s*"([0-9a-fA-F]+)"', html)
        if not mpd or not kid or not key:
            raise ValueError("ck_keyid / ck_key / url not found in decoded page")
        u = mpd.group(1)
        if u.startswith("//"):
            u = "https:" + u
        return u, kid.group(1).lower(), key.group(1).lower()
    
    
    def fetch_channel_keys(channel_id: str) -> tuple[str, str, str]:
        r = requests.get(
            URL,
            params={"id": channel_id.strip()},
            headers=HEADERS,
            timeout=30,
        )
        r.raise_for_status()
        html = decode_obfuscated(r.text)
        return extract_keys(html)
    
    
    def main() -> int:
        channel = input("channel id: ").strip()
        if not channel:
            print("empty id", file=sys.stderr)
            return 1
        try:
            mpd, kid, key = fetch_channel_keys(channel)
        except Exception as e:
            print(f"error: {e}", file=sys.stderr)
            return 2
        print(mpd)
        print(f"{kid}:{key}")
        return 0
    
    
    if __name__ == "__main__":
        sys.exit(main())
    Thank you so much for the reply and the script; it works perfectly. I learn something new every day thanks to your valuable information.
    Quote Quote  
  11. Originally Posted by CopyPasteDev View Post
    Originally Posted by aLGUN0 View Post
    Originally Posted by CopyPasteDev View Post
    Code:
    ceb1333b11d79085cf30eecd1f254969:50c22b8d1071dc0a667bfb01acd8cc1c
    Which tool do you use to get the information? I have WidevineProxy2, Vineless, and PlayReadyProxy 2, but I can't get the keys from that site.

    https://telegratuita.st/live/golden.php
    Using a script with the help of AI

    Code:
    MPD URL: https://otte.live.fly.ww.aiv-cdn.net/gru-nitro/live/clients/dash/enc/ox4csgyamg/out/v1/95cf9c4df3d542f6812f382a52771327/cenc.mpd
    KEY: 38dbcf2d094923f94aca4f913045e993:a475a0bcc6f77b04f07ed1487619d626
    if anyone interested in the script (just type the channel name when prompted for channel id)
    Code:
    #!/usr/bin/env python3
    """Fetch msvhub.sbs/drm.php?id=<channel>, decode obfuscation, print mpd + kid:key."""
    
    from __future__ import annotations
    
    import base64
    import re
    import sys
    
    try:
        import requests
    except ImportError:
        print("pip install requests", file=sys.stderr)
        sys.exit(1)
    
    HEADERS = {
        "User-Agent": (
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:151.0) "
            "Gecko/20100101 Firefox/151.0"
        ),
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "Accept-Language": "en-US,en;q=0.9",
        "Sec-Fetch-Storage-Access": "none",
        "Sec-GPC": "1",
        "Connection": "keep-alive",
        "Referer": "https://telegratuita.st/",
        "Upgrade-Insecure-Requests": "1",
        "Sec-Fetch-Dest": "iframe",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "cross-site",
        "Priority": "u=4",
    }
    URL = "https://msvhub.sbs/drm.php"
    
    
    def decode_obfuscated(text: str) -> str:
        arr = re.search(r"var\s+\w+\s*=\s*\[(.*?)\];", text, re.S)
        off = re.search(r"\)\s*-\s*(\d+)\s*\)", text)
        if not arr or not off:
            raise ValueError("obfuscation array/offset not found")
        offset = int(off.group(1))
        chars = []
        for s in re.findall(r'"([A-Za-z0-9+/=]+)"', arr.group(1)):
            try:
                digits = re.sub(r"\D", "", base64.b64decode(s).decode("utf-8", "replace"))
                if not digits:
                    continue
                cp = int(digits) - offset
                if 0 <= cp < 0x110000:
                    chars.append(chr(cp))
            except Exception:
                continue
        return "".join(chars)
    
    
    def extract_keys(html: str) -> tuple[str, str, str]:
        mpd = re.search(r'var\s+url\s*=\s*"([^"]+)"', html)
        kid = re.search(r'ck_keyid\s*=\s*"([0-9a-fA-F]+)"', html)
        key = re.search(r'ck_key\s*=\s*"([0-9a-fA-F]+)"', html)
        if not mpd or not kid or not key:
            raise ValueError("ck_keyid / ck_key / url not found in decoded page")
        u = mpd.group(1)
        if u.startswith("//"):
            u = "https:" + u
        return u, kid.group(1).lower(), key.group(1).lower()
    
    
    def fetch_channel_keys(channel_id: str) -> tuple[str, str, str]:
        r = requests.get(
            URL,
            params={"id": channel_id.strip()},
            headers=HEADERS,
            timeout=30,
        )
        r.raise_for_status()
        html = decode_obfuscated(r.text)
        return extract_keys(html)
    
    
    def main() -> int:
        channel = input("channel id: ").strip()
        if not channel:
            print("empty id", file=sys.stderr)
            return 1
        try:
            mpd, kid, key = fetch_channel_keys(channel)
        except Exception as e:
            print(f"error: {e}", file=sys.stderr)
            return 2
        print(mpd)
        print(f"{kid}:{key}")
        return 0
    
    
    if __name__ == "__main__":
        sys.exit(main())
    Thanks!
    Quote Quote  



Similar Threads