VideoHelp Forum




+ Reply to Thread
Results 1 to 25 of 25
  1. hi all,

    Yeah, i know i'm in for a ruckin',... (it's plebs at play here).
    I have stream detector set up as per the instructions... tried running angelas itv script from within wks-keys folder,... using a cmd prompt.... and this was my outcome..
    D:\YT_Rips\WKS-KEYS>bestitvx.py
    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 32, in <module>
    import requests
    ModuleNotFoundError: No module named 'requests'

    So I wanted to know what would happen if i simply tried curl https://www.itv.com/watch/significant-other/10a1755/10a1755a0001 (i'm not after this program, its just random)

    and this is what was returned...

    (which to me, looks like the web page of the above)..

    D:\YT_Rips\WKS-KEYS>curl https://www.itv.com/watch/significant-other/10a1755/10a1755a0001
    <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><script id="GTM-MXQXBVC" async="">
    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-MXQXBVC');
    </script><script id="json-ld" type="application/ld+json">{"@context":"http://schema.org","@type":"WebPage","description":"ITVX is the streaming home for all of ITV and so much more! With exclusive new series launching every week, an ever-changing library of blockbuster movies, the nation's biggest live events, curated live streaming channels, thousands of box sets and the ability to access BritBox all in one place! Get ready for the UK's freshest streaming service. Stream for free or upgrade for more.","url":"https://www.itv.com/","publisher":{"@type":"Organization","name":"ITVX ","logo":"https://app.10ft.itv.com/itvstatic/assets/images/brands/itvx/itvx-logo-for-light-backgrounds.jpg?q=80&format=jpg&w=1366&h=769&bg=fa lse&blur=0"},"name":"ITVX","alternateName":"ITV Hub","sameAs":["https://en.wikipedia.org/wiki/ITVX"]}</script><meta name="next-head-count" content="4"/><meta name="google-site-verification" content="y8ofqZeKaLhUPlLVuPHRGcv17-F0ayz1mhk4y0_y0Xw"/><link rel="apple-touch-icon" href="https://app.10ft.itv.com/itvstatic/assets/images/brands/itvx/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="48x48" href="https://app.10ft.itv.com/itvstatic/assets/images/brands/itvx/favicon-48x48.png"/><link rel="shortcut icon" type="image/x-icon" href="https://app.10ft.itv.com/itvstatic/assets/images/brands/itvx/favicon.ico"/><meta property="fb:app_id" content="829452750420831"/><meta property="og:type" content="website"/><meta property="ogite_name" content="ITVX"/><meta name="twitter:card" content="summary"/><meta name="twitterite" content="@itvx"/><link rel="stylesheet" type="text/css" href="https://app.10ft.itv.com/itvstatic/assets/cookies-prompt/cassie-v2.css" data-testid="cassie-stylesheet"/><script src="https://cscript-cdn-irl.cassiecloud.com/loader.js" data-testid="cassie-loader"></script><script src="https://app.10ft.itv.com/itvstatic/assets/cookies-prompt/cassie-init-v2.js" type="text/javascript" data-testid="cassie-init-script" data-cassie-widget-profile-id="3" data-cassie-licence-id="9FA306B9-83BD-4F83-A061-52D3589ABADB" data-cassie-language-code="Default" data-cassie-region="irl" data-cassie-environment="production" data-cassie-excluded-paths="&#x27;/terms/articles/cookies&#x27;"></script><link rel="preload" href="/hades-assets/_next/static/css/fdd2e0559dd4c09a.css" as="style"/><link rel="stylesheet" href="/hades-assets/_next/static/css/fdd2e0559dd4c09a.css" data-n-g=""/><link rel="preload" href="/hades-assets/_next/static/css/fc8f6ac334de7421.css" as="style"/><link rel="stylesheet" href="/hades-assets/_next/static/css/fc8f6ac334de7421.css" data-n-p=""/><link rel="preload" href="/hades-assets/_next/static/css/1f3d7a29e9781aca.css" as="style"/><link rel="stylesheet" href="/hades-assets/_next/static/css/1f3d7a29e9781aca.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/hades-assets/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/hades-assets/_next/static/chunks/webpack-d180705eac591d3e.js" defer=""></script><script src="/hades-assets/_next/static/chunks/framework-57c79218954dfb32.js" defer=""></script><script src="/hades-assets/_next/static/chunks/main-f1084c18c118aa42.js" defer=""></script><script src="/hades-assets/_next/static/chunks/pages/_app-8d72693351faf0fb.js" defer=""></script><script src="/hades-assets/_next/static/chunks/73-302e637df8e6e0b4.js" defer=""></script><script src="/hades-assets/_next/static/chunks/144-623e2b817c7bb44c.js" defer=""></script><script src="/hades-assets/_next/static/chunks/682-966dbcad4eb859d0.js" defer=""></script><script src="/hades-assets/_next/static/chunks/406-d83e9564cfd30560.js" defer=""></script><script src="/hades-assets/_next/static/chunks/551-957a4f242c994ed5.js" defer=""></script><script src="/hades-assets/_next/static/chunks/148-21cd64b90aac86b8.js" defer=""></script><script src="/hades-assets/_next/static/chunks/pages/watch/%5BprogrammeSlug%5D/%5BprogrammeId%5D/%5BepisodeId%5D-8cfc7ae4fa87a9fd.js" defer=""></script><script src="/hades-assets/_next/static/sjBhvUOKsNp6SWLkTez-y/_buildManifest.js" defer=""></script><script src="/hades-assets/_next/static/sjBhvUOKsNp6SWLkTez-y/_ssgManifest.js" defer=""></script></head><body class="app_body"><div id="__next" data-reactroot=""><div class="cp_app-wrapper" data-cpt="https://cpt.itv.com/0.0.1/event" data-web-vitals="https://http-inputs-itv.splunkcloud.com/services/collector"><div data-testid="cck-wrapper"><div class="dialogs-container-wrapper"><div class="cp_grid cp_dialog cp_dialog--hide" role="dialog" aria-modal="true"><div data-testid="dialog-box" class="cp_grid__item cp_width--five-sixths cp_width--sponge--five-sixths cp_width--cream--one-half cp_dialog__box cp_dialog--centered" data-show="false"></div></div></div><header class="cp_navigation header" data-testid="header" style="top:0px"><nav class="cp_navigation__main cp_grid__wrapper"><div class="cp_navigation__main__wrapper cp_grid cp_grid--align-items-center cp_width--auto"><div class="cp_navigation__main__column cp_navigation__main__column__brand cp_navigation__main__column__brand--with-sponsor"><a class="cp_link cp_navigation__main__column__brand__logo__link" href="/" title="ITVX Homepage"><i class="cp_icon cp_icon__logo-itvx-mono cp_channel-logo cp_icon--custom-size cp_navigation__main__column__brand__logo" aria-hidden="false"><svg viewBox="0 0 300 101" xmlns="http://www.w3.org/2000/svg" aria-label="ITVX Homepage" role="img"><title>ITVX Homepage</title><path fill-rule="evenodd" clip-rule="evenodd" d="M13.303 26.39c8.224 0 13.304-5.833 13.304-13.2C26.607 5.833 21.527 0 13.304 0 5.08 0 0 5.833 0 13.2c0 7.357 5.08 13.19 13.303 13.19Zm285.48 63.894-28.502-39.209c-.613-.836-.624-1.651-.031-2.508l26.374-38.32c.772-1.09 1.291-1.937 1.291-3.546 0-1.398-.931-3.112-2.381-4.563C294.084.688 292.623 0 290.708 0c-1.08 0-2.032.445-3.091 1.25l-36.1 27.723c-.868.667-1.778.667-2.646 0l-36.09-27.724C211.733.445 210.77 0 209.691 0c-1.905 0-3.376.688-4.816 2.138-1.45 1.45-2.381 3.165-2.381 4.563 0 1.62.519 2.456 1.291 3.546l26.374 38.32c.582.846.572 1.661-.031 2.508l-28.502 39.21c-.762 1.047-1.227 1.99-1.227 3.239 0 1.799.783 3.292 2.233 4.731 1.45 1.45 3.027 2.266 4.762 2.266 1.238 0 2.18-.487 3.218-1.25l38.312-27.882a2.175 2.175 0 0 1 2.55 0l38.313 27.882c1.048.763 1.989 1.25 3.228 1.25 1.735 0 3.312-.816 4.762-2.266 1.44-1.44 2.223-2.932 2.223-4.731.01-1.25-.455-2.192-1.217-3.24ZM191.731 35.832c1.915.582 5.747 1.757 7.175 2.212 1.471.477 2.085 1.218 2.085 2.16 0 .931-.529 2.403-1.28 4.425-5.959 16.164-14.235 33.725-23.951 48.577-3.704 5.674-7.81 7.314-14.658 7.314-7.228 0-10.467-1.937-14.012-7.176-2.084-3.072-4.239-6.412-6.976-10.654l-1.343-2.081c-7.641 12.533-20.744 19.901-38.566 19.901-13.494 0-25.718-4.139-32.439-10.268-6.847 6.33-18.447 10.278-29.57 10.278-11.144 0-22.86-3.059-29.718-9.918C3.207 85.32.18 78.629.18 66.9V37.526c0-1.45.508-2.064 2.064-2.064h22.088c1.576 0 2.106.635 2.106 2.053v32.498c0 5.187 1.122 8.712 3.513 11.242 2.297 2.424 6.15 3.874 10.5 3.874 4.455 0 8.498-1.493 11.08-4.266 2.932-3.154 4.265-7.643 4.265-15.942v-49.9c0-2.445.635-4.129 2.011-5.378 2.022-1.852 6.117-2.752 11.113-2.752 4.921 0 9.102.91 11.123 2.752 1.376 1.25 2.011 2.933 2.011 5.378v20.43h20.775c1.567 0 2.117.635 2.117 2.054v12.49c0 1.42-.54 2.054-2.117 2.054H91.166c-3.64 0-6.657-.54-9.112-1.588v12.957c0 7.728 1.63 12.364 4.985 15.804 3.513 3.61 8.911 5.59 15.896 5.59 14.722 0 22.353-9.242 22.353-19.457 0-4.096-1.207-7.43-3.609-11.538-2.117-3.61-2.678-5.145-2.678-7.177 0-6.002 10.626-12.449 17.801-12.449 3.482 0 5.25 1.154 7.896 5.473 1.815 2.958 4.866 8.317 8.323 14.388 1.541 2.706 3.162 5.553 4.79 8.392 3.418 5.96 7.091 12.555 9.08 16.355 6.075-10.395 12.88-27.12 17.357-42.014.455-1.493 1.154-2.213 2.445-2.213.688 0 1.852.286 5.038 1.26Z" fill="currentColor"/></svg></i></a></div><div class="cp_sponsorship cp_grid cp_grid--align-items-bottom cp_navigation__main__column__sponsorship" data-testid="sponsorship"></div><div class="cp_navigation__main__column__primary cp_navigation__main__column cp_navigation__main__column__primary__menu--background" data-testid="navigation-primary-menu"><ul class="cp_navigation__main__column__primary__menu cp_grid cp_grid--align-items-center cp_grid--justify-center"><li class="cp_navigation-item__link--adult-link--hidden"><a class="cp_link cp_navigation-item__link" href="/watch">Live</a></li><li class="cp_navigation-item__link--adult-link--hidden"><a class="cp_link cp_navigation-item__link" href="/watch/collections/films/6D2ZDICRbTr3UnRebcr0D8">Films</a></li><li class="cp_navigation-item__link--adult-link--hidden"><a class="cp_link cp_navigation-item__link" href="/watch/categories">Categories</a></li><li class="cp_navigation-item__link--adult-link--hidden"><a class="cp_link cp_navigation-item__link" href="/news">News</a></li><li class="cp_navigation-item__link--child-link--hidden"><a class="cp_link cp_navigation-item__link" href="/watch/kids/a-z">Shows A-Z</a></li><li class="cp_navigation-item__link--adult-link--hidden"><a class="cp_link cp_navigation-item__link" href="/watch/user/mylist">My List</a></li></ul></div><div class="cp_navigation__main__column cp_navigation__main__column__secondary" data-testid="navigation-secondary-menu"><ul class="cp_navigation__main__column__secondary__men u cp_grid cp_grid--align-items-center cp_grid--justify-center"><li class="cp_navigation__main__premium--primary"><a class="cp_link cp_navigation-item__link cp_navigation-item__link__premium-primary cp_navigation-item__link--adult-link--hidden" href="/watch/itvx-premium" title="Upgrade to premium">Upgrade to <!-- --> <b class="cp_navigation__main__premium--bold">Premium</b></a></li></ul></div><div class="cp_navigation__main__column__icons"><div class="cp_navigation__main__column__icons__wrapper "><a class="cp_link cp_navigation__main__column__icons__wrapper__link" href="/watch/user/signin" title="Sign in" data-testid="navigation-user-link"><i class="cp_icon cp_icon__account cp_icon--large cp_icon--baseline" aria-hidden="true"><svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="Account icon" role="img"><title>Account icon</title><path fill-rule="evenodd" clip-rule="evenodd" d="M9.00024 0C6.79111 0 5.00024 1.79086 5.00024 4C5.00024 6.20914 6.79111 8 9.00024 8C11.2094 8 13.0002 6.20914 13.0002 4C13.0002 1.79086 11.2094 0 9.00024 0ZM7.00024 4C7.00024 2.89543 7.89567 2 9.00024 2C10.1048 2 11.0002 2.89543 11.0002 4C11.0002 5.10457 10.1048 6 9.00024 6C7.89567 6 7.00024 5.10457 7.00024 4Z" fill="currentColor"/><path d="M3.00026 10C2.55378 10 2.16139 10.296 2.03873 10.7253L0.0387335 17.7253C-0.112991 18.2563 0.194501 18.8098 0.725536 18.9615C1.25657 19.1132 1.81006 18.8058 1.96178 18.2747L3.75456 12H14.246L16.0387 18.2747C16.1905 18.8058 16.7439 19.1132 17.275 18.9615C17.806 18.8098 18.1135 18.2563 17.9618 17.7253L15.9618 10.7253C15.8391 10.296 15.4467 10 15.0003 10H3.00026Z" fill="currentColor"/></svg></i></a></div><div class="cp_navigation__main__column__icons__wrapper "><a class="cp_link cp_navigation__main__column__icons__wrapper__link" href="" id="search-btn" icon="[object Object]"><i class="cp_icon cp_icon__search cp_icon--medium" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="Search icon" role="img"><title>Search icon</title><path fill-rule="evenodd" clip-rule="evenodd" d="M14 0.666672C6.63619 0.666672 0.666656 6.63621 0.666656 14C0.666656 21.3638 6.63619 27.3333 14 27.3333C17.2017 27.3333 20.1398 26.2048 22.4383 24.3239L25.0572 26.9428C25.5779 27.4635 26.4221 27.4635 26.9428 26.9428C27.4635 26.4221 27.4635 25.5779 26.9428 25.0572L24.3239 22.4383C26.2048 20.1398 27.3333 17.2017 27.3333 14C27.3333 6.63621 21.3638 0.666672 14 0.666672ZM3.33332 14C3.33332 8.10897 8.10895 3.33334 14 3.33334C19.891 3.33334 24.6667 8.10897 24.6667 14C24.6667 19.891 19.891 24.6667 14 24.6667C8.10895 24.6667 3.33332 19.891 3.33332 14Z" fill="currentColor"/></svg></i><span class="cp_navigation--is-off-page">open<!-- --> search bar</span></a></div><div class="cp_navigation__main__column__icons__wrapper cp_navigation__main__column__icons__wrapper--burger" data-testid="navigation-burger-button"><a class="cp_link cp_navigation__main__column__icons__wrapper__link" href=""><i class="cp_icon cp_icon__burger cp_icon--xxlarge" aria-hidden="true"><svg width="18" height="14" viewBox="0 0 18 14" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="Burger menu" role="img"><title>Burger menu</title><path fill-rule="evenodd" clip-rule="evenodd" d="M0 1C0 0.447715 0.447715 0 1 0H17C17.5523 0 18 0.447715 18 1C18 1.55228 17.5523 2 17 2H1C0.447715 2 0 1.55228 0 1Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M0 7C0 6.44772 0.447715 6 1 6H17C17.5523 6 18 6.44772 18 7C18 7.55228 17.5523 8 17 8H1C0.447715 8 0 7.55228 0 7Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M0 13C0 12.4477 0.447715 12 1 12H17C17.5523 12 18 12.4477 18 13C18 13.5523 17.5523 14 17 14H1C0.447715 14 0 13.5523 0 13Z" fill="currentColor"/></svg></i><span class="cp_navigation--is-off-page">open mobile menu</span></a></div></div></div></nav></header><main class="pageContentWrapper"><section class="spinner-wrapper"><i class="cp_icon cp_icon__spinner cp_icon--xxlarge" aria-hidden="false"> <style> .loading-spinner { -webkit-animation: loading-spinner 1s cubic-bezier(1, 0.8, 0.6, 0.3) infinite; animation: spin 1s cubic-bezier(1, 0.8, 0.6, 0.3) infinite; } @-webkit-keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes loading-spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }</style><svg class="loading-spinner" width="50" height="50" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="Loading spinner" role="img"><title>Loading spinner</title> <path d="M3.05022 3.05026 C 2.65969 3.44078 2.65969 4.07394 3.05022 4.46447 C 3.44074 4.85499 4.07391 4.85499 4.46443 4.46447 L 3.05022 3.05026Z M 4.46443 4.46447 C 5.16369 3.76521 6.05461 3.289 7.02451 3.09608 L 6.63433 1.13451 C 5.27647 1.4046 4.02918 2.07129 3.05022 3.05026 L 4.46443 4.46447Z M 7.02451 3.09608 C 7.99442 2.90315 8.99975 3.00217 9.91338 3.3806 L 10.6787 1.53285C9.39967 1.00303 7.9922 0.864409 6.63433 1.13451 L 7.02451 3.09608ZM9.91338 3.3806C10.827 3.75904 11.6079 4.39991 12.1573 5.22215L13.8203 4.11101C13.0511 2.95987 11.9578 2.06266 10.6787 1.53285L9.91338 3.3806ZM12.1573 5.22215C12.7067 6.0444 13 7.01109 13 8L15 8C15 6.61553 14.5894 5.26215 13.8203 4.11101L12.1573 5.22215Z" fill="url(#paint0_linear_11825_47664)" /> <path d="M3 8C3 7.44772 2.55228 7 2 7C1.44772 7 1 7.44772 1 8L3 8ZM1 8C1 8.91925 1.18106 9.82951 1.53284 10.6788L3.3806 9.91342C3.12933 9.30679 3 8.65661 3 8L1 8ZM1.53284 10.6788C1.88463 11.5281 2.40024 12.2997 3.05025 12.9497L4.46447 11.5355C4.00017 11.0712 3.63188 10.52 3.3806 9.91342L1.53284 10.6788ZM3.05025 12.9497C3.70026 13.5998 4.47194 14.1154 5.32122 14.4672L6.08658 12.6194C5.47996 12.3681 4.92876 11.9998 4.46447 11.5355L3.05025 12.9497ZM5.32122 14.4672C6.1705 14.8189 7.08075 15 8 15L8 13C7.34339 13 6.69321 12.8707 6.08658 12.6194L5.32122 14.4672ZM8 15C8.91925 15 9.82951 14.8189 10.6788 14.4672L9.91342 12.6194C9.30679 12.8707 8.65661 13 8 13L8 15ZM10.6788 14.4672C11.5281 14.1154 12.2997 13.5998 12.9497 12.9497L11.5355 11.5355C11.0712 11.9998 10.52 12.3681 9.91342 12.6194L10.6788 14.4672ZM12.9497 12.9497C13.5998 12.2997 14.1154 11.5281 14.4672 10.6788L12.6194 9.91342C12.3681 10.52 11.9998 11.0712 11.5355 11.5355L12.9497 12.9497ZM14.4672 10.6788C14.8189 9.8295 15 8.91925 15 8L13 8C13 8.65661 12.8707 9.30679 12.6194 9.91342L14.4672 10.6788Z" fill="url(#paint1_linear_11825_47664)" /> <defs> <linearGradient id="paint0_linear_11825_47664" x1="14" y1="8" x2="2" y2="8" gradientUnits="userSpaceOnUse" > <stop stop-color="currentColor" stop-opacity="0.5" /> <stop offset="1" stop-color="currentColor" stop-opacity="0" /> </linearGradient> <linearGradient id="paint1_linear_11825_47664" x1="2" y1="8" x2="14" y2="8" gradientUnits="userSpaceOnUse" > <stop stop-color="currentColor" /> <stop offset="1" stop-color="currentColor" stop-opacity="0.5" /> </linearGradient> </defs> </svg></i></section></main><footer class="cp_footer cp_grid__wrapper" data-testid="footer"><div class="cp_footer__sections cp_grid cp_grid--align-items-baseline"><section class="cp_footer__section cp_grid__item--align-top cp_width--one-half cp_width--sponge--one-third"><ul class="cp_footer__items"><li class="cp_footer__item"><a class="cp_link cp_footer__link" href="/itvprivacy">Privacy &amp; Cookie Information</a></li></ul></section></div><div class="cp_footer__legal"><p class="cp_copyright">© ITV Consumer Limited <!-- -->2023</p></div><a class="cp_link cp_footer__logo__link" href="/" title="ITVX Homepage"><i class="cp_icon cp_icon__logo-itvx-mono cp_channel-logo cp_icon--custom-size cp_footer__logo" aria-hidden="false"><svg viewBox="0 0 300 101" xmlns="http://www.w3.org/2000/svg" aria-label="ITVX Homepage" role="img"><title>ITVX Homepage</title><path fill-rule="evenodd" clip-rule="evenodd" d="M13.303 26.39c8.224 0 13.304-5.833 13.304-13.2C26.607 5.833 21.527 0 13.304 0 5.08 0 0 5.833 0 13.2c0 7.357 5.08 13.19 13.303 13.19Zm285.48 63.894-28.502-39.209c-.613-.836-.624-1.651-.031-2.508l26.374-38.32c.772-1.09 1.291-1.937 1.291-3.546 0-1.398-.931-3.112-2.381-4.563C294.084.688 292.623 0 290.708 0c-1.08 0-2.032.445-3.091 1.25l-36.1 27.723c-.868.667-1.778.667-2.646 0l-36.09-27.724C211.733.445 210.77 0 209.691 0c-1.905 0-3.376.688-4.816 2.138-1.45 1.45-2.381 3.165-2.381 4.563 0 1.62.519 2.456 1.291 3.546l26.374 38.32c.582.846.572 1.661-.031 2.508l-28.502 39.21c-.762 1.047-1.227 1.99-1.227 3.239 0 1.799.783 3.292 2.233 4.731 1.45 1.45 3.027 2.266 4.762 2.266 1.238 0 2.18-.487 3.218-1.25l38.312-27.882a2.175 2.175 0 0 1 2.55 0l38.313 27.882c1.048.763 1.989 1.25 3.228 1.25 1.735 0 3.312-.816 4.762-2.266 1.44-1.44 2.223-2.932 2.223-4.731.01-1.25-.455-2.192-1.217-3.24ZM191.731 35.832c1.915.582 5.747 1.757 7.175 2.212 1.471.477 2.085 1.218 2.085 2.16 0 .931-.529 2.403-1.28 4.425-5.959 16.164-14.235 33.725-23.951 48.577-3.704 5.674-7.81 7.314-14.658 7.314-7.228 0-10.467-1.937-14.012-7.176-2.084-3.072-4.239-6.412-6.976-10.654l-1.343-2.081c-7.641 12.533-20.744 19.901-38.566 19.901-13.494 0-25.718-4.139-32.439-10.268-6.847 6.33-18.447 10.278-29.57 10.278-11.144 0-22.86-3.059-29.718-9.918C3.207 85.32.18 78.629.18 66.9V37.526c0-1.45.508-2.064 2.064-2.064h22.088c1.576 0 2.106.635 2.106 2.053v32.498c0 5.187 1.122 8.712 3.513 11.242 2.297 2.424 6.15 3.874 10.5 3.874 4.455 0 8.498-1.493 11.08-4.266 2.932-3.154 4.265-7.643 4.265-15.942v-49.9c0-2.445.635-4.129 2.011-5.378 2.022-1.852 6.117-2.752 11.113-2.752 4.921 0 9.102.91 11.123 2.752 1.376 1.25 2.011 2.933 2.011 5.378v20.43h20.775c1.567 0 2.117.635 2.117 2.054v12.49c0 1.42-.54 2.054-2.117 2.054H91.166c-3.64 0-6.657-.54-9.112-1.588v12.957c0 7.728 1.63 12.364 4.985 15.804 3.513 3.61 8.911 5.59 15.896 5.59 14.722 0 22.353-9.242 22.353-19.457 0-4.096-1.207-7.43-3.609-11.538-2.117-3.61-2.678-5.145-2.678-7.177 0-6.002 10.626-12.449 17.801-12.449 3.482 0 5.25 1.154 7.896 5.473 1.815 2.958 4.866 8.317 8.323 14.388 1.541 2.706 3.162 5.553 4.79 8.392 3.418 5.96 7.091 12.555 9.08 16.355 6.075-10.395 12.88-27.12 17.357-42.014.455-1.493 1.154-2.213 2.445-2.213.688 0 1.852.286 5.038 1.26Z" fill="currentColor"/></svg></i></a></footer></div></div><noscript>
    <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MXQXBVC" height="0" width="0" style="display:none;visibility:hidden"></iframe>
    </noscript></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"title":{"brandAvaila bleEpisodeCount":6,"audioDescription":false,"avail ableUntil":"2028-02-09T23:59:00Z","broadcastDateTime":null,"categories ":{"queryable":["DRAMA_AND_SOAPS"],"formatted":["DRAMA \u0026 SOAPS"],"formattedCapitalised":["Drama \u0026 Soaps"]},"isChildrenCategory":false,"channel":"ITV","days Left":"","duration":"30m","legacyId":"10/1755/0001","brandLegacyId":"10/1755","episodeNumber":1,"episodeTitle":null,"guida nce":"With dark humour and adult themes, including suicide.","hasBrand":true,"headerTitle":"Significa nt Other - Series 1 - Episode 1","href":"/significant-other/10a1755/10a1755a0001","imageUrl":"https://ovp.itv.com/images/episode/whlmsxl/itv_hub/{class}/{aspect_ratio}?distributionPartner={distributionPa rtner}\u0026fallback={fallback}\u0026treatment={tr eatment}\u0026w={width}\u0026h={height}\u0026q={qu ality}\u0026blur={blur}\u0026bg={bg}","playlistUrl ":"https://magni.itv.com/playlist/itvonline/ITV/10_1755_0001.005","productionId":"10/1755/0001#005","productionIdEncoded":"10-1755-0001#005","programmeTitle":"Significant Other","regionalisation":true,"redirectUrl":"https ://www.stv.tv","seriesNumber":1,"showTitle":"Signific ant Other","showTitleSlug":"significant-other","subtitles":false,"synopsis":"Brand new comedy-drama. After both hitting rock bottom, the lives of two lonely neighbours are changed forever following an ill-fated first encounter.","titleType":"EPISODE","variants":[],"CTAText":"Series 1, Episode 1","longRunning":false,"description":{"description TextStrong":"Episode 1","descriptionTextNormal":"Brand new comedy-drama. After both hitting rock bottom, the lives of two lonely neighbours are changed forever following an ill-fated first encounter."},"accessibilityTags":["ad","s"],"contentInfo":["DRAMA \u0026 SOAPS","30m"],"contentOwner":null,"partnership":null,"tier":["FREE"],"numberedEpisodeTitle":"Episode 1","imagePresets":{"0":{"1x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=767\u0026q=65\u0026blur=0\u0 026bg=false","2x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1074\u0026q=65\u0026blur=0\u 0026bg=false"},"768":{"1x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1279\u0026q=80\u0026blur=0\u 0026bg=false","2x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1791\u0026q=80\u0026blur=0\u 0026bg=false"},"1280":{"1x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1597\u0026q=80\u0026blur=0\u 0026bg=false","2x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=2236\u0026q=80\u0026blur=0\u 0026bg=false"},"1920":{"1x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1597\u0026q=80\u0026blur=0\u 0026bg=false","2x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=2236\u0026q=80\u0026blur=0\u 0026bg=false"}},"brand":{"imagePresets":{},"legacy Id":"10/1755","tier":["FREE"],"title":"Significant Other","imageUrl":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/{class}/{aspect_ratio}?distributionPartner={distributionPa rtner}\u0026fallback={fallback}\u0026treatment={tr eatment}\u0026w={width}\u0026h={height}\u0026q={qu ality}\u0026blur={blur}\u0026bg={bg}","synopses":{ "ninety":"An anti-romantic love story - don’t miss ITVX’s brand new comedy-drama"},"series":[{"title":"Series 1","seriesNumber":1,"seriesAvailableEpisodeCount": 6,"fullSeries":false,"longRunning":false,"legacyId ":"10/1755-01","episodes":[{"audioDescription":false,"availableUntil":"202 8-02-09T23:59:00Z","broadcastDateTime":null,"categories ":{"queryable":["DRAMA_AND_SOAPS"],"formatted":["DRAMA \u0026 SOAPS"],"formattedCapitalised":["Drama \u0026 Soaps"]},"isChildrenCategory":false,"channel":"ITV","days Left":"","duration":"30m","legacyId":"10/1755/0001","brandLegacyId":"10/1755","episodeNumber":1,"episodeTitle":null,"guida nce":"With dark humour and adult themes, including suicide.","hasBrand":true,"headerTitle":"Significa nt Other - Series 1 - Episode 1","href":"/significant-other/10a1755/10a1755a0001","imageUrl":"https://ovp.itv.com/images/episode/whlmsxl/itv_hub/{class}/{aspect_ratio}?distributionPartner={distributionPa rtner}\u0026fallback={fallback}\u0026treatment={tr eatment}\u0026w={width}\u0026h={height}\u0026q={qu ality}\u0026blur={blur}\u0026bg={bg}","playlistUrl ":"https://magni.itv.com/playlist/itvonline/ITV/10_1755_0001.005","productionId":"10/1755/0001#005","productionIdEncoded":"10-1755-0001#005","programmeTitle":"Significant Other","regionalisation":true,"redirectUrl":"https ://www.stv.tv","seriesNumber":1,"showTitle":"Signific ant Other","showTitleSlug":"significant-other","subtitles":false,"synopsis":"Brand new comedy-drama. After both hitting rock bottom, the lives of two lonely neighbours are changed forever following an ill-fated first encounter.","titleType":"EPISODE","variants":[],"CTAText":"Series 1, Episode 1","longRunning":false,"description":{"description TextStrong":"Episode 1","descriptionTextNormal":"Brand new comedy-drama. After both hitting rock bottom, the lives of two lonely neighbours are changed forever following an ill-fated first encounter."},"accessibilityTags":["ad","s"],"contentInfo":["DRAMA \u0026 SOAPS","30m"],"contentOwner":null,"partnership":null,"tier":["FREE"],"numberedEpisodeTitle":"Episode 1"},{"audioDescription":false,"availableUntil":"20 28-02-09T23:59:00Z","broadcastDateTime":null,"categories ":{"queryable":["DRAMA_AND_SOAPS"],"formatted":["DRAMA \u0026 SOAPS"],"formattedCapitalised":["Drama \u0026 Soaps"]},"isChildrenCategory":false,"channel":"ITV","days Left":"","duration":"30m","legacyId":"10/1755/0002","brandLegacyId":"10/1755","episodeNumber":2,"episodeTitle":null,"guida nce":"With strong language and adult humour.","hasBrand":true,"headerTitle":"Significan t Other - Series 1 - Episode 2","href":"/significant-other/10a1755/10a1755a0002","imageUrl":"https://ovp.itv.com/images/episode/1l3p3rv/itv_hub/{class}/{aspect_ratio}?distributionPartner={distributionPa rtner}\u0026fallback={fallback}\u0026treatment={tr eatment}\u0026w={width}\u0026h={height}\u0026q={qu ality}\u0026blur={blur}\u0026bg={bg}","playlistUrl ":"https://magni.itv.com/playlist/itvonline/ITV/10_1755_0002.005","productionId":"10/1755/0002#005","productionIdEncoded":"10-1755-0002#005","programmeTitle":"Significant Other","regionalisation":true,"redirectUrl":"https ://www.stv.tv","seriesNumber":1,"showTitle":"Signific ant Other","showTitleSlug":"significant-other","subtitles":false,"synopsis":"Anna decides to grab life by the horns after a stark wake-up call from her doctor, and Sam's striving to win back his wife has some unexpected results.","titleType":"EPISODE","variants":[],"CTAText":"Series 1, Episode 2","longRunning":false,"description":{"description TextStrong":"Episode 2","descriptionTextNormal":"Anna decides to grab life by the horns after a stark wake-up call from her doctor, and Sam's striving to win back his wife has some unexpected results."},"accessibilityTags":["ad","s"],"contentInfo":["DRAMA \u0026 SOAPS","30m"],"contentOwner":null,"partnership":null,"tier":["FREE"],"numberedEpisodeTitle":"Episode 2"},{"audioDescription":false,"availableUntil":"20 28-02-09T23:59:00Z","broadcastDateTime":null,"categories ":{"queryable":["DRAMA_AND_SOAPS"],"formatted":["DRAMA \u0026 SOAPS"],"formattedCapitalised":["Drama \u0026 Soaps"]},"isChildrenCategory":false,"channel":"ITV","days Left":"","duration":"30m","legacyId":"10/1755/0003","brandLegacyId":"10/1755","episodeNumber":3,"episodeTitle":null,"guida nce":"With strong language and adult humour.","hasBrand":true,"headerTitle":"Significan t Other - Series 1 - Episode 3","href":"/significant-other/10a1755/10a1755a0003","imageUrl":"https://ovp.itv.com/images/episode/nyq1pv2/itv_hub/{class}/{aspect_ratio}?distributionPartner={distributionPa rtner}\u0026fallback={fallback}\u0026treatment={tr eatment}\u0026w={width}\u0026h={height}\u0026q={qu ality}\u0026blur={blur}\u0026bg={bg}","playlistUrl ":"https://magni.itv.com/playlist/itvonline/ITV/10_1755_0003.005","productionId":"10/1755/0003#005","productionIdEncoded":"10-1755-0003#005","programmeTitle":"Significant Other","regionalisation":true,"redirectUrl":"https ://www.stv.tv","seriesNumber":1,"showTitle":"Signific ant Other","showTitleSlug":"significant-other","subtitles":false,"synopsis":"After a humiliating run-in with Sam, Anna decides to step outside her comfort zone and embrace the world of online dating... how will it go?","titleType":"EPISODE","variants":[],"CTAText":"Series 1, Episode 3","longRunning":false,"description":{"description TextStrong":"Episode 3","descriptionTextNormal":"After a humiliating run-in with Sam, Anna decides to step outside her comfort zone and embrace the world of online dating... how will it go?"},"accessibilityTags":["ad","s"],"contentInfo":["DRAMA \u0026 SOAPS","30m"],"contentOwner":null,"partnership":null,"tier":["FREE"],"numberedEpisodeTitle":"Episode 3"},{"audioDescription":false,"availableUntil":"20 28-02-09T23:59:00Z","broadcastDateTime":null,"categories ":{"queryable":["DRAMA_AND_SOAPS"],"formatted":["DRAMA \u0026 SOAPS"],"formattedCapitalised":["Drama \u0026 Soaps"]},"isChildrenCategory":false,"channel":"ITV","days Left":"","duration":"30m","legacyId":"10/1755/0004","brandLegacyId":"10/1755","episodeNumber":4,"episodeTitle":null,"guida nce":"With strong language and adult humour.","hasBrand":true,"headerTitle":"Significan t Other - Series 1 - Episode 4","href":"/significant-other/10a1755/10a1755a0004","imageUrl":"https://ovp.itv.com/images/episode/lyd2lhh/itv_hub/{class}/{aspect_ratio}?distributionPartner={distributionPa rtner}\u0026fallback={fallback}\u0026treatment={tr eatment}\u0026w={width}\u0026h={height}\u0026q={qu ality}\u0026blur={blur}\u0026bg={bg}","playlistUrl ":"https://magni.itv.com/playlist/itvonline/ITV/10_1755_0004.005","productionId":"10/1755/0004#005","productionIdEncoded":"10-1755-0004#005","programmeTitle":"Significant Other","regionalisation":true,"redirectUrl":"https ://www.stv.tv","seriesNumber":1,"showTitle":"Signific ant Other","showTitleSlug":"significant-other","subtitles":false,"synopsis":"Anna is surprised by a blast from her past and some tough love forces Sam into action, but his return to the family home does not go as planned...","titleType":"EPISODE","variants":[],"CTAText":"Series 1, Episode 4","longRunning":false,"description":{"description TextStrong":"Episode 4","descriptionTextNormal":"Anna is surprised by a blast from her past and some tough love forces Sam into action, but his return to the family home does not go as planned..."},"accessibilityTags":["ad","s"],"contentInfo":["DRAMA \u0026 SOAPS","30m"],"contentOwner":null,"partnership":null,"tier":["FREE"],"numberedEpisodeTitle":"Episode 4"},{"audioDescription":false,"availableUntil":"20 28-02-09T23:59:00Z","broadcastDateTime":null,"categories ":{"queryable":["DRAMA_AND_SOAPS"],"formatted":["DRAMA \u0026 SOAPS"],"formattedCapitalised":["Drama \u0026 Soaps"]},"isChildrenCategory":false,"channel":"ITV","days Left":"","duration":"30m","legacyId":"10/1755/0005","brandLegacyId":"10/1755","episodeNumber":5,"episodeTitle":null,"guida nce":"With strong language and adult humour.","hasBrand":true,"headerTitle":"Significan t Other - Series 1 - Episode 5","href":"/significant-other/10a1755/10a1755a0005","imageUrl":"https://ovp.itv.com/images/episode/l57dphx/itv_hub/{class}/{aspect_ratio}?distributionPartner={distributionPa rtner}\u0026fallback={fallback}\u0026treatment={tr eatment}\u0026w={width}\u0026h={height}\u0026q={qu ality}\u0026blur={blur}\u0026bg={bg}","playlistUrl ":"https://magni.itv.com/playlist/itvonline/ITV/10_1755_0005.001","productionId":"10/1755/0005#001","productionIdEncoded":"10-1755-0005#001","programmeTitle":"Significant Other","regionalisation":true,"redirectUrl":"https ://www.stv.tv","seriesNumber":1,"showTitle":"Signific ant Other","showTitleSlug":"significant-other","subtitles":false,"synopsis":"When Anna is caught in the crossfire as Sam receives a surprise visit and a devastating blow from Shelley, she and Sam enter unchartered territory.","titleType":"EPISODE","variants":[],"CTAText":"Series 1, Episode 5","longRunning":false,"description":{"description TextStrong":"Episode 5","descriptionTextNormal":"When Anna is caught in the crossfire as Sam receives a surprise visit and a devastating blow from Shelley, she and Sam enter unchartered territory."},"accessibilityTags":["ad","s"],"contentInfo":["DRAMA \u0026 SOAPS","30m"],"contentOwner":null,"partnership":null,"tier":["FREE"],"numberedEpisodeTitle":"Episode 5"},{"audioDescription":false,"availableUntil":"20 28-02-09T23:59:00Z","broadcastDateTime":null,"categories ":{"queryable":["DRAMA_AND_SOAPS"],"formatted":["DRAMA \u0026 SOAPS"],"formattedCapitalised":["Drama \u0026 Soaps"]},"isChildrenCategory":false,"channel":"ITV","days Left":"","duration":"30m","legacyId":"10/1755/0006","brandLegacyId":"10/1755","episodeNumber":6,"episodeTitle":null,"guida nce":"With strong language and adult humour.","hasBrand":true,"headerTitle":"Significan t Other - Series 1 - Episode 6","href":"/significant-other/10a1755/10a1755a0006","imageUrl":"https://ovp.itv.com/images/episode/jv08cd6/itv_hub/{class}/{aspect_ratio}?distributionPartner={distributionPa rtner}\u0026fallback={fallback}\u0026treatment={tr eatment}\u0026w={width}\u0026h={height}\u0026q={qu ality}\u0026blur={blur}\u0026bg={bg}","playlistUrl ":"https://magni.itv.com/playlist/itvonline/ITV/10_1755_0006.001","productionId":"10/1755/0006#001","productionIdEncoded":"10-1755-0006#001","programmeTitle":"Significant Other","regionalisation":true,"redirectUrl":"https ://www.stv.tv","seriesNumber":1,"showTitle":"Signific ant Other","showTitleSlug":"significant-other","subtitles":false,"synopsis":"A surprise phone call changes everything for Anna and Sam, finally forcing them to confront what they really mean to each other.","titleType":"EPISODE","variants":[],"CTAText":"Series 1, Episode 6","longRunning":false,"description":{"description TextStrong":"Episode 6","descriptionTextNormal":"A surprise phone call changes everything for Anna and Sam, finally forcing them to confront what they really mean to each other."},"accessibilityTags":["ad","s"],"contentInfo":["DRAMA \u0026 SOAPS","30m"],"contentOwner":null,"partnership":null,"tier":["FREE"],"numberedEpisodeTitle":"Episode 6"}]}],"guidance":"With strong language and adult humour.","channel":"ITV","categories":{"queryable" :["DRAMA_AND_SOAPS"],"formatted":["DRAMA \u0026 SOAPS"],"formattedCapitalised":["Drama \u0026 Soaps"]},"latestEpisode":null,"contentOwner":null,"partne rship":null,"availableEpisodeCount":6,"href":"/significant-other/10a1755"}},"forceRefresh":true,"subnav":null,"epis odeHeroWrapperProps":{"heroProps":{"imagePresets": {"0":{"1x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=767\u0026q=65\u0026blur=0\u0 026bg=false","2x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1074\u0026q=65\u0026blur=0\u 0026bg=false"},"768":{"1x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1279\u0026q=80\u0026blur=0\u 0026bg=false","2x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1791\u0026q=80\u0026blur=0\u 0026bg=false"},"1280":{"1x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1597\u0026q=80\u0026blur=0\u 0026bg=false","2x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=2236\u0026q=80\u0026blur=0\u 0026bg=false"},"1920":{"1x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=1597\u0026q=80\u0026blur=0\u 0026bg=false","2x":"https://ovp.itv.com/images/programme/jh1wtjh/itv_hub/01_Hero_DesktopCTV/16x9?distributionPartner=\u0026fallback=standard\u 0026treatment=\u0026w=2236\u0026q=80\u0026blur=0\u 0026bg=false"}},"titleText":"Significant Other","description":{"descriptionTextStrong":"Epi sode 1","descriptionTextNormal":"Brand new comedy-drama. After both hitting rock bottom, the lives of two lonely neighbours are changed forever following an ill-fated first encounter."},"guidance":{"guidanceText":"With dark humour and adult themes, including suicide.","link":{}},"CTAText":"Series 1, Episode 1","accessibilityTags":["ad","s"],"contentInfo":["DRAMA \u0026 SOAPS","30m"],"contentOwner":null,"partnership":null,"episodeId ":"10/1755/0001","programmeIdUnderscore":"10_1755"},"modalPro ps":{"programmeTitle":"Significant Other","episodeCount":6,"synopsis":"Brand new comedy-drama. After both hitting rock bottom, the lives of two lonely neighbours are changed forever following an ill-fated first encounter.","contentOwner":null,"partnership":null ,"programmeCategory":"DRAMA \u0026 SOAPS","series":1,"episode":1,"productionId":"10/1755/0001#005"},"playerProps":{"tier":["FREE"],"episodeNumber":1,"seriesNumber":1,"CTAText":"Ser ies 1, Episode 1","isChildrenCategory":false,"playlistUrl":"https ://magni.itv.com/playlist/itvonline/ITV/10_1755_0001.005","productionId":"10/1755/0001#005","productionIdEncoded":"10-1755-0001#005","categories":{"queryable":["DRAMA_AND_SOAPS"],"formatted":["DRAMA \u0026 SOAPS"],"formattedCapitalised":["Drama \u0026 Soaps"]},"guidance":"With dark humour and adult themes, including suicide.","regionalisation":true,"programmeId":"10/1755","programmeTitle":"Significant Other","imageUrl":"https://ovp.itv.com/images/episode/whlmsxl/itv_hub/{class}/{aspect_ratio}?distributionPartner={distributionPa rtner}\u0026fallback={fallback}\u0026treatment={tr eatment}\u0026w={width}\u0026h={height}\u0026q={qu ality}\u0026blur={blur}\u0026bg={bg}","channel":"i tv","episodeId":"10/1755/0001","episodeInfo":"Episode 1","redirectUrl":"https://www.stv.tv"}},"newsVideos":null,"navAdServerParams ":{"programmeTitle":"Significant Other","area":"video","episodeId":"10/1755/0001","category":["DRAMA_AND_SOAPS"],"channel":"ITV"},"isAccessibleByKids":false},"con fig":{"baseUrl":"","canonicalUrl":"https://www.itv.com","imagesUrl":"https://static.10ft.itv.com/images","playerBaseUrl":"https://player.prd.mp.itv.com/1.10.2/","playerFilename":{"desktop":"main.html5-desktop.min.js","mobile":"main.html5-mobile.min.js"},"services":{"promoted":"https://promoted.hubsvc.itv.com","discovery":"https://discovery.hubsvc.itv.com","contentInventory":"http s://content-inventory.prd.oasvc.itv.com","thalia":"https://thalia.prd.fe.itv.com"},"features":{"amplitude":tr ue,"userServices":true,"conductrics":false,"fullSe ries":true,"customisableSlider":false,"itvPlus":tr ue,"itvPlusPayments":true,"britbox":false,"targete dContainerSliders":true,"myList":true,"myListPage" :true,"continueWatching":true,"becauseYouWatched": true,"newsShortForm":true,"newsShortFormAutoplay": false,"newsCategoryPage":true,"sportShortForm":fal se,"inlinePlayerOnwardJourney":true,"euPortability ":false,"communicationSettings":true,"homepageSpon sorship":true,"recommendedForYou":true,"blockDupli cateCards":true,"regionalisation":true,"cassieCook iesManagement":true,"isCuratedImages":true,"itvPre miumDiscounts":true,"playerUpsellButton":true,"mos tPopular":true,"emailVerification":true,"nowNextPo llingInterval":"900000","playerStartAgain":true,"p layerRewind":true,"simCastEnabled":true,"vodCastEn abled":true,"convivaTrackingEnabled":true,"svodExp erience":true,"profilesManagement":true,"cckEnable d":true,"switchProfilesManagement":true},"analytic s":{"gtm":"GTM-MXQXBVC","cpt":{"url":"https://cpt.itv.com/0.0.1/event"},"webVitals":{"url":"https://http-inputs-itv.splunkcloud.com/services/collector"}},"amplitudeDeployKey":"client-YKVVRsZUOnAPVh7Dr53rQokD5B7d0ko5","stripe":{"publi cKey":"pk_live_vbaeHtOKe3k0UNTPfpkiHhZv"},"cassieE xcludedPaths":"'/terms/articles/cookies'"},"__N_SSP":true},"page":"/watch/[programmeSlug]/[programmeId]/[episodeId]","query":{"programmeSlug":"significant-other","programmeId":"10a1755","episodeId":"10a175 5a0001"},"buildId":"sjBhvUOKsNp6SWLkTez-y","assetPrefix":"/hades-assets","isFallback":false,"gssp":true,"customServ er":true,"appGip":true,"scriptLoader":[]}</script><script type="text/javascript" nonce="db9f6013c342cccad70e768af9d11457" src="/lvXD3n0mF8/HVDuEjzS/Lu/5chcXGw60m9Q/GjcXUEtfBg/clAeFX/QHLwEB"></script></body></html>

    Anyone throw any light on what I'm doing wrong please...
    Quote Quote  
  2. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    python uses Modules - small scripts that help your main script.
    Standard python only comes with so many modules and extra ones need to be added to the library.

    You do it with;

    pip install requests


    there most likely will be others needed because all these modules are imported and I have no idea what you have or haven't got already installed.
    eg
    pip install --pre ttconv
    pip install termcolor
    pip install httpx
    pip install pyperclip
    pip install selectolax

    bestITVX.py says to also install tt for subtitle conversion so its in the mix above. How to run python is available on the web. It is always a good idea to pop your error 'No module found' into a search engine. Mention python as it was that that gave you the error. In this way you can help yourself. You've grown dependent for some reason.
    Quote Quote  
  3. I have the most up to date version of python installed.... but none of the pip install items were installed (they are now)
    seems i may have had "pip install requests" missing as well...

    I suppose this is better,... at least I'm kind of getting somewhere...

    D:\YT_Rips\WKS-KEYS>bestitvx.py
    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 42, in <module>
    from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt
    File "D:\YT_Rips\WKS-KEYS\pywidevine\L3\decrypt\wvdecryptcustom.py", line 6, in <module>
    from pywidevine.L3.cdm import cdm, deviceconfig
    File "D:\YT_Rips\WKS-KEYS\pywidevine\L3\cdm\cdm.py", line 7, in <module>
    from google.protobuf.message import DecodeError
    ModuleNotFoundError: No module named 'google'


    from selectolax.lexbor import LexborHTMLParser
    import os
    import pyperclip as PC
    from pywidevine.L3.cdm import deviceconfig
    from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt ----------- is this the part that's failing??
    import pyfiglet as PF
    from termcolor import colored
    import json
    Last edited by LastResort; 16th Jul 2023 at 12:54. Reason: edit...
    Quote Quote  
  4. Code:
    pip install google
    pip install --upgrade google-api-python-client
    Quote Quote  
  5. Thanks lomero, I've now installed these,...
    This probably sounds stupid but after logging into i t v, do i need to copy the .mpd from stream detector....

    I have stream detector setup exactly as shown in bestitvdownloader thread....

    this is my outcome after doing the last 2 pip installs...

    D:\YT_Rips\WKS-KEYS>bestitvx.py
    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 42, in <module>
    from pywidevine.L3.decrypt.wvdecryptcustom import WvDecrypt
    File "D:\YT_Rips\WKS-KEYS\pywidevine\L3\decrypt\wvdecryptcustom.py", line 6, in <module>
    from pywidevine.L3.cdm import cdm, deviceconfig
    File "D:\YT_Rips\WKS-KEYS\pywidevine\L3\cdm\cdm.py", line 10, in <module>
    from pywidevine.L3.cdm.formats import wv_proto2_pb2 as wv_proto2
    File "D:\YT_Rips\WKS-KEYS\pywidevine\L3\cdm\formats\wv_proto2_pb2.py", line 33, in <module>
    _descriptor.EnumValueDescriptor(
    File "C:\Users\Westhamboy\AppData\Local\Programs\Python \Python311\Lib\site-packages\google\protobuf\descriptor.py", line 796, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
    TypeError: Descriptors cannot not be created directly.
    If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
    If you cannot immediately regenerate your protos, some other possible workarounds are:
    1. Downgrade the protobuf package to 3.20.x or lower.
    2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

    More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
    Quote Quote  
  6. thanks angela, so its not "remove" but uninstall.... remove is no good on a p.c.

    installed protobuf 3.20.3
    installed pycryptodomex as well...

    So sorry for this but WTH is pyfiglet ??? as i'm getting a modulenotfound error. When one installs python, as in a "full install" does it not install these other requirements at the same time.
    okay so i get it, pyfiglet converts ASCII text into ASCII art.
    Right i'm going on guesswork now,.... pip install pyfiglet....

    A_n_g_e_l_a, within your best i t v script, is the information pulled from stream detector, i only ask because mpd detector see's the stream but stream detector says No URLs available.

    Copy stream URL as user-defined command 1

    Image
    [Attachment 72453 - Click to enlarge]


    where I'm at...

    Image
    [Attachment 72454 - Click to enlarge]
    Quote Quote  
  7. I decided to copy the detected video from mpd detector into the clipboard just to see what would happen when i press enter.... this is what i got back:

    The URL list has 1 video(s)
    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 274, in <module>
    main()
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 268, in main
    myITV.download(url)
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 104, in download
    title, data = self.get_data(url)
    ^^^^^^^^^^^^^^^^^^
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 190, in get_data
    jsondata = tree.root.css_first('#__NEXT_DATA__').text()
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    AttributeError: 'NoneType' object has no attribute 'text'

    ------------------- forget about that ------------- I've got it working.... well sort of...

    my error is this now...

    it looks even worse...

    Press enter with PAGE urls in clipboard
    The URL list has 1 video(s)
    Traceback (most recent call last):
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_transports\default.py", line 60, in map_httpcore_exceptions
    yield
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_transports\default.py", line 218, in handle_request
    resp = self._pool.handle_request(req)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpcore\_sync\connection_pool.py", line 214, in handle_request
    raise UnsupportedProtocol(
    httpcore.UnsupportedProtocol: Request URL is missing an 'http://' or 'https://' protocol.

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 274, in <module>
    main()
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 268, in main
    myITV.download(url)
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 104, in download
    title, data = self.get_data(url)
    ^^^^^^^^^^^^^^^^^^
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 188, in get_data
    r = self.client.get(url)
    ^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 1041, in get
    return self.request(
    ^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 814, in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 901, in send
    response = self._send_handling_auth(
    ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 929, in _send_handling_auth
    response = self._send_handling_redirects(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxxx\AppData\Local\Programs\Pytho n\Python311\Lib\site-packages\httpx\_client.py", line 966, in _send_handling_redirects
    response = self._send_single_request(request)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 1002, in _send_single_request
    response = transport.handle_request(request)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_transports\default.py", line 217, in handle_request
    with map_httpcore_exceptions():
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\contextlib.py", line 155, in __exit__
    self.gen.throw(typ, value, traceback)
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_transports\default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
    httpx.UnsupportedProtocol: Request URL is missing an 'http://' or 'https://' protocol.
    Quote Quote  
  8. After reading some more posts and rechecking what was'nt in the same folder (n_m3u8dl-re.exe and mkvmerge)

    I now get the following message,.... i've tried looking through the code, and used google but its has all been in vain...
    I have also changed Local cdm to this REMOTE = False

    D:\YT_Rips\WKS-KEYS>python bestitvx.py
    ←[32m ____ ______ _ __ _ __
    / _/ /_ __/ | | / / | |/_/
    _/ / / / | |/ / _> <
    /___/ /_/ |___/ /_/|_|

    ←[0m
    Press enter with PAGE urls in clipboard
    The URL list has 1 video(s)
    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestitvx.py", line 274, in <module>
    main()
    File "D:\YT_Rips\WKS-KEYS\bestitvx.py", line 268, in main
    myITV.download(url)
    File "D:\YT_Rips\WKS-KEYS\bestitvx.py", line 104, in download
    title, data = self.get_data(url)
    ^^^^^^^^^^^^^^^^^^
    File "D:\YT_Rips\WKS-KEYS\bestitvx.py", line 192, in get_data
    title = myjson["props"]["pageProps"]["title"]["headerTitle"]
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    KeyError: 'title'
    Quote Quote  
  9. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Your error output suggests your webpage input was not as expected.

    I've just checked everything to make sure ITVX haven't changed anything and get this.

    Image
    [Attachment 72461 - Click to enlarge]


    I suggest you use the remote cdm as it is known working - yours and your setup are still not proven. but that isn't the issue above. why it shouldn't find 'ttile when its already found other parts of the the path are a mystery.
    Last edited by A_n_g_e_l_a; 17th Jul 2023 at 03:50.
    Quote Quote  
  10. Member
    Join Date
    Mar 2023
    Location
    Australia
    Search Comp PM
    @LastResort Could it be because it is saved as bestITVX (caps) but your input is bestitvx (lower) ? Just a guess on my part not sure if it makes a difference?
    Quote Quote  
  11. Thanks ringy9, but i looked at A_n_g_e_l_a's and it's both upper and lower,... i doubt it would make much difference.

    Good news about the remote..... But I'm getting this: cdrm-project.com unexpectedly closed the connection. that's a first for me.

    A_n_g_e_l_a, I see on your prompt it shows "The URL list has 1 video" same here

    But what I don't get is the title of the program,... I did think for a moment could i.t.v have changed something, but obviously not.

    From a freshly booted p.c. cmd running from wks-keys folder

    I now get this....

    Press enter with PAGE urls in clipboard
    The URL list has 1 video(s)
    Traceback (most recent call last):
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_transports\default.py", line 60, in map_httpcore_exceptions
    yield
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_transports\default.py", line 218, in handle_request
    resp = self._pool.handle_request(req)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpcore\_sync\connection_pool.py", line 214, in handle_request
    raise UnsupportedProtocol(
    httpcore.UnsupportedProtocol: Request URL is missing an 'http://' or 'https://' protocol.

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 274, in <module>
    main()
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 268, in main
    myITV.download(url)
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 104, in download
    title, data = self.get_data(url)
    ^^^^^^^^^^^^^^^^^^
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 188, in get_data
    r = self.client.get(url)
    ^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 1041, in get
    return self.request(
    ^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 814, in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 901, in send
    response = self._send_handling_auth(
    ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 929, in _send_handling_auth
    response = self._send_handling_redirects(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 966, in _send_handling_redirects
    response = self._send_single_request(request)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_client.py", line 1002, in _send_single_request
    response = transport.handle_request(request)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_transports\default.py", line 217, in handle_request
    with map_httpcore_exceptions():
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\contextlib.py", line 155, in __exit__
    self.gen.throw(typ, value, traceback)
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\httpx\_transports\default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
    httpx.UnsupportedProtocol: Request URL is missing an 'http://' or 'https://' protocol.

    (could it be the version of python that is running)??? Has anyone else got this running on a p.c.??
    Quote Quote  
  12. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Copy here what you have in your clipboard before starting the python script.
    Quote Quote  
  13. I tried it with remote = True

    I got this in return:

    D:\YT_Rips\WKS-KEYS>bestitvx.py
    ←[32m ____ ______ _ __ _ __
    / _/ /_ __/ | | / / | |/_/
    _/ / / / | |/ / _> <
    /___/ /_/ |___/ /_/|_|

    ←[0m
    Press enter with PAGE urls in clipboard
    The URL list has 1 video(s)
    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 274, in <module>
    main()
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 268, in main
    myITV.download(url)
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 104, in download
    title, data = self.get_data(url)
    ^^^^^^^^^^^^^^^^^^
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 190, in get_data
    jsondata = tree.root.css_first('#__NEXT_DATA__').text()
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    AttributeError: 'NoneType' object has no attribute 'text'
    Quote Quote  
  14. "Current Session"
    "Copy all visible URL's

    Image
    [Attachment 72475 - Click to enlarge]


    Image
    [Attachment 72476 - Click to enlarge]


    This makes no sense.... my paste from "copy all visible URL's" https://www.itv.com

    angry is the word i'm thinking of right now....
    Quote Quote  
  15. I've gone back and rechecked your script page and went back to the images posted.... I will try "Current Tab"

    Copy all visible URL's using "current tab" (same as your image posted)

    this is what i get... to be honest i was expecting the mpd.... but all i got was what's below..... again.

    https://www.itv.com
    Quote Quote  
  16. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    It should be:-

    https://www.itv.com/watch/significant-other/10a1755/10a1755a0001

    so copy that and try the script again
    Quote Quote  
  17. Why on earth is'nt it picking up

    Image
    [Attachment 72477 - Click to enlarge]


    my output is almost there.....

    D:\YT_Rips\WKS-KEYS>bestitvx.py
    ←[32m ____ ______ _ __ _ __
    / _/ /_ __/ | | / / | |/_/
    _/ / / / | |/ / _> <
    /___/ /_/ |___/ /_/|_|

    ←[0m
    Press enter with PAGE urls in clipboard
    The URL list has 1 video(s)
    Significant_Other_S01E01
    The system cannot find the path specified.
    Using a remote CDM
    Keys found 9d45e765392b49758f1246684220f57c:42b89810c4370d2b5 798f47638726377

    17:47:42.917 INFO : N_m3u8DL-RE (Beta version) 20230628
    17:47:42.939 ERROR: ffmpeg not found, please download at: https://ffmpeg.org/download.html
    Error: The file '01_Significant_Other_S01E01.mp4' could not be opened for reading: open file error.
    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 274, in <module>
    main()
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 268, in main
    myITV.download(url)
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 182, in download
    subprocess.run(["mv", f"{myvideoname}.mkv", f"{OUT_PATH}"])
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\subprocess.py", line 1538, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    FileNotFoundError: [WinError 2] The system cannot find the file specified

    D:\YT_Rips\WKS-KEYS>

    I have copied over ffmpeg.exe and will try again:
    Each time I run it i'm finding more items that are missing.... mp4decrypt.exe which I use but was in another folder... copied that over.
    I have tried one thing slightly different... (although i doubt it makes any difference... these attempts are being dome through admin powershell, them "cmd" through that.

    It worked....

    one small caveat right at the end...

    Error: The file 'Significant_Other_S01E01.subs.srt' could not be opened for reading: open file error.
    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 274, in <module>
    main()
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 268, in main
    myITV.download(url)
    File "D:\YT_Rips\WKS-KEYS\bestITVX.py", line 182, in download
    subprocess.run(["mv", f"{myvideoname}.mkv", f"{OUT_PATH}"])
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\subprocess.py", line 1538, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    FileNotFoundError: [WinError 2] The system cannot find the file specified

    Could you possibly explain what the error code is at the end please... is it just for the subtitles?

    Grateful is beyond words right now.... all that time using stream detector... I can see the mpd listed but its not going into the clipboard.


    I suppose for ease it would be good to enclose the subs... but i usually run all my .vtt or other unusual subs through "subtitle edit" it doesn't mess with colour or anything else and the saved .srt's are perfect.
    Quote Quote  
  18. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    have you done this?

    pip install --pre ttconv

    And create a folder called output in the WKS-KEYS folder to contain all the downloaded videos
    Last edited by A_n_g_e_l_a; 17th Jul 2023 at 12:50.
    Quote Quote  
  19. Image
    [Attachment 72482 - Click to enlarge]


    output folder is empty?

    I left this alone (## pip install --pre ttconv) within the script (didn't want to create another problem).

    See the image and let me know what you think please...
    Quote Quote  
  20. I ran pip install --pre ttconv

    D:\YT_Rips\WKS-KEYS>pip install --pre ttconv
    Requirement already satisfied: ttconv in c:\users\westhamboy\appdata\local\programs\python\ python311\lib\site-packages (1.0.6)
    Quote Quote  
  21. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Ok it is installed

    find this line

    os.system(f"tt convert -i {videoname}.subs.vtt -o {videoname}.subs.srt > /dev/null 2>&1")

    it is line 132; change it to

    os.system(f"tt convert -i {videoname}.subs.vtt -o {videoname}.subs.srt > $null")
    Quote Quote  
  22. Edited that line, checked and re-checked.... still able to download, no problems there,... but i have this at the beginning:

    D:\YT_Rips\WKS-KEYS>bestitvx_subedit.py
    ←[32m ____ ______ _ __ _ __
    / _/ /_ __/ | | / / | |/_/
    _/ / / / | |/ / _> <
    /___/ /_/ |___/ /_/|_|

    ←[0m
    Press enter with PAGE urls in clipboard
    The URL list has 1 video(s)
    George_and_Mildred_S01E01
    Input file is George_and_Mildred_S01E01.subs.vtt
    Output file is George_and_Mildred_S01E01.subs.srt
    The first line of the file does not start with WEBVTT
    Bad alignment setting value: middle
    Reading: |--------------------------------------------------| 0% CompleteTraceback (most recent call last):
    File "<frozen runpy>", line 198, in _run_module_as_main
    File "<frozen runpy>", line 88, in _run_code
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Scripts\tt.exe\__main__.py", line 7, in <module>
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\ttconv\tt.py", line 438, in main
    args.func(args)
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\ttconv\tt.py", line 347, in convert
    model = vtt_reader.to_model(f, None, progress_callback_read)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\site-packages\ttconv\vtt\reader.py", line 527, in to_model
    subtitle_text = subtitle_text.strip('\r\n').replace(r"\n\r", "\n")
    ^^^^^^^^^^^^^
    UnboundLocalError: cannot access local variable 'subtitle_text' where it is not associated with a value

    where it states "The first line of the file does not start with WEBVTT" this is not right.... opening the .vtt subs shows this:


    WEBVTT



    00:00:00.000 --> 00:00:02.160 align:middle line:-2

    .



    00:00:05.000 --> 00:00:07.160 align:middle line:-2

    .



    00:00:30.000 --> 00:00:32.160 align:middle line:-2

    .



    00:00:39.960 --> 00:00:43.800 align:middle line:-2

    # Underneath the arches



    00:00:43.800 --> 00:00:45.960 align:middle line:-2

    # I dream my dreams #

    (I didn't create the spaces, that's how it looks.)

    ---------------------------------------------

    and this still appears at the end


    Error: The file 'George_and_Mildred_S01E01.subs.srt' could not be opened for reading: open file error.
    Traceback (most recent call last):
    File "D:\YT_Rips\WKS-KEYS\bestITVX_subedit.py", line 274, in <module>
    main()
    File "D:\YT_Rips\WKS-KEYS\bestITVX_subedit.py", line 268, in main
    myITV.download(url)
    File "D:\YT_Rips\WKS-KEYS\bestITVX_subedit.py", line 182, in download
    subprocess.run(["mv", f"{myvideoname}.mkv", f"{OUT_PATH}"])
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
    File "C:\Users\xxxxxxxxxx\AppData\Local\Programs\Python \Python311\Lib\subprocess.py", line 1538, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    FileNotFoundError: [WinError 2] The system cannot find the file specified
    Last edited by LastResort; 17th Jul 2023 at 16:13. Reason: forgot to add..
    Quote Quote  
  23. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    line 46 add import shutil
    line 133 os.system(f"tt convert -i {videoname}.subs.vtt -o {videoname}.subs.srt > /dev/null 2>&1") comment-out by adding # at the start
    line 178 edit f"{videoname}.subs.srt" to f"{videoname}.subs.vtt"
    line 184 replace subprocess.run(["mv", f"{myvideoname}.mkv", f"{OUT_PATH}"])
    with
    shutil.move(f"{myvideoname}.mkv", f"{OUT_PATH}")
    line 185 delete the line os.system(f"rm {myvideoname}.mp4 {videoname}.subs.vtt {videoname}.subs.srt")
    and
    replace with
    os.remove(f".\{myvideoname}.mp4")
    os.remove(f".\{videoname}.subs.vtt" )

    I hate Windows. I still have no idea why you are getting crazy characters around ITVX heading. But this works on windows 11 but without subtitle conversion.
    ttconv just will not run so I have left the subs as VTT - it was that giving the file not found error at the start.

    I have installed Windows 11 as a virtual machine to test this and it runs fine with these changes; so no more help.
    https://anonfiles.com/D0u5Od21za/bestITVX_py Belt and braces
    Last edited by A_n_g_e_l_a; 18th Jul 2023 at 15:28.
    Quote Quote  
  24. Sorry for the late reply A_n_g_e_l_a....

    Script works a treat..... subs are merged into video file, but as .vtt files. but do go into the output folder. As you say, it's a windows problem. Really appreciate all your help with this.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!