a
    h#                    @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlm  m	Z ddl
mZ ddlmZ ddlmZmZmZmZmZmZ ddd	d
ddd	d
dddd
ddd	d
dddd
ddddddddd
dddd
dd d!d
d"d d!d
d#d$d%d&d d!d'dd(dd	d
d)ddd
d*d+id*d,id*d-id*d.id*d/id*d0id*d1id*d2id*d3id*d4id*d5id*d6id*d7id*d8id*d9id*d:id*d;id*d<id*d=id*d>id*d?id*d@id*dAid*dBid*dCid*dDid*dEid*dFid*dGid*dHid*dIid*dJid*dKid*dLid*dMid*dNid*dOid*dPid*dQid*dRid*dSid*dTid*dUid*dVid*dWid*dXid*dYid*dZid*d[id*d\id*d]id*d^id*d_id*d`id*daid*dbid*dcid*ddid*deid*dfid*dgid*dhid*diid*djid*dkid*dlid*dmid*dnid*doid*dpid*dqid*drid*dsid*dtid*duid*dvid*dwid*dxid*dyid*dzid*d{id*d|id*d}id*d~id*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*d id*did*did*did*did*did*did*did*did*d	id*d
id*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*d id*d!id*d"id*d#id*d$id*d%id*d&id*d'id*d(id*d)id*d*id*d+id*d,id*d-id*d.id*d/id*d0id*d1id*d2id*d3id*d4id*d5id*d6id*d7id*d8id*d9id*d:id*d;id*d<id*d=id*d>id*d?id*d@id*dAid*dBid*dCid*dDid*dEid*dFid*dGid*dHid*dIid*dJid*dKid*dLid*dMid*dNid*dOid*dPid*dQid*dRid*dSid*dTid*dUid*dVid*dWid*dXid*dYid*dZid*d[id*d\id*d]id*d^id*d_id*d`id*daid*dbid*dcid*ddid*deid*dfid*dgid*dhid*diid*djid*dkid*dlid*dmid*dnid*doid*dpid*dqid*drid*dsid*dtid*duid*dvid*dwid*dxid*dyid*dzid*d{id*d|id*d}id*d~id*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*did*diddd	ddddd	d
dddd
dѐZG dҐdӄ deZdS (      N   )InfoExtractor   )	HTTPError)
NO_DEFAULTExtractorErrorparse_qsunescapeHTMLunified_timestampurlencode_postdataZDIRECTVusernamepassword)nameusername_fieldpassword_fieldzAT&T U-verseZuseridzDIRECTV NOWemailZloginpasswordRCNRogersZUserNameZUserPasswordzComcast XFINITYuserpasswdzlogin.xfinity.com)r   r   r   login_hostnamezTime Warner Cable | SpectrumZEcom_User_IDZEcom_Passwordz Bright House Networks | SpectrumZ
j_usernameZ
j_passwordzCharter SpectrumZIDToken1ZIDToken2SpectrumPhiloident)r   r   zVerizon FiOSzssoauth.verizon.comFubozOptimum/Cablevisionr   z3 Rivers CommunicationszAccess MontanaZAcenTekzAcme CommunicationszAdams Cable ServicezAlbany Mutual TelephonezAlgona Municipal UtilitieszAll West CommunicationszAllen's CommunicationszAlliance CommunicationszALLO CommunicationszAlpine CommunicationszAmerican BroadbandzAmerican Broadband MissourizAmerican Community NetworkszAmerican Warrior Networksz!Amherst Telephone/Tomorrow ValleyZ	AndycablezArkwest CommunicationszArthur Mutual Telephone CompanyZArvigzAshland Home NetzAstound (now Wave)zATC BroadbandzATC CommunicationszAyersville CommunicationszBaldwin Lightstreamz
Ballard TVzBardstown Cable TVzBay Country Communicationsz"Beaver Creek Cooperative TelephonezBeaver Valley CablezBee Line CablezBeehive BroadbandZBELDzBellevue Municipal CablezBen Lomand Connect / BLTVZBEVCOMMzBig Sandy BroadbandzBledsoe Telephone CooperativezBlue Valley Tele-CommunicationszBrandenburg Telephone Co.z$Bristol Tennessee Essential ServicesZBroadstripezBTC CommunicationszBTC Vision - NahuntazBulloch Telephone CooperativezButler-Bremer CommunicationszC Spire SNAPzCable Services Inc.ZCableAmericazCableSouth Media 3zCam-Tel CompanyzCameron CommunicationszCanby Telcomz
CapRock TvzCarnegie Cablez	CAS CableZCASSCOMMzCatalina Broadband SolutionszCC CommunicationszCDE LightbandzCedar Falls UtilitieszCelect-Bloomer Telephone AreazCelect-Bruce Telephone AreazCelect-Citizens Connected Areaz!Celect-Elmwood/Spring Valley AreazCelect-Mosaic TelecomzCelect-West WI Telephone AreazCellcom/Nsight TelservicesZ	CentraComzCentral Scott / CSTVzChaparral CableVisionz/Chariton Valley Communication Corporation, Inc.zChatmoss CablevisionzCherokee CommunicationszChesapeake Bay CommunicationszCim-Tel Cable, LLC.z Citizens Cablevision - Floyd, VAzCitizens Cablevision, Inc.zCitizens FiberzCitizens MutualzCitizens Telephone CorporationzCity Of MonroeZCityLinkzCL Telz+Clarence Telephone and Cedar CommunicationszClear Choice CommunicationszClick! Cable TVz
CLICK1.NETz%CML Telephone Cooperative AssociationZCNSzCo-Mo ConnectzCoast CommunicationszCoaxial Cable TVz"Cobalt TV (Mid-State Community TV)zColumbia Power & Water SystemszColumbus Telephonez"Communications 1 Cablevision, Inc.zCommunity Cable & Broadbandz Community Communications CompanyZcommZoomzComplete Communication ServicesZ	ComporiumzComSouth TelesysZConsolidatedzConway Corporationz"Coon Valley Telecommunications InczCooperative Telephone CompanyzCP-TELzCraw-Kan TelephonezCrestview Cable CommunicationszCross TVzCrosslake CommunicationszCTC - Brainerd MNzCTV-Beam - East AlabamazCunningham Telephone & CablezD & P Communicationsz!Dakota Central TelecommunicationszDelcambre Telephone LLCzDelta Telephone CompanyZ
DiamondNetzDirect CommunicationszDoylestown Cable TVZDRNZDTCzDTC Cable (Delhi)zDumont Telephone CompanyzDunkerton Telephone CooperativezDuo County TelecomzEagle CommunicationszEast Arkansas Cable TVzEATEL Video, LLCZECTAzEmery Telcom Video LLCzEmpire AccesszEndeavor Communicationsz'Enhanced Telecommunications CorporationZenTouchzEPB SmartnetzEPlus BroadbandZETCzEtex CommunicationszF&B CommunicationszFalcon BroadbandzFamilyView CableVisionz Farmers Mutual Telephone CompanyzFayetteville Public UtilitiesZfibrantzFidelity CommunicationszFJ CommunicationszFlint River CommunicationszFMT - JesupzFoothills CommunicationszForsyth CableNetzFrankfort Plant BoardzFranklin Telephone CompanyZFTCzFull Channel, Inc.z-Gardonville Cooperative Telephone AssociationzGBT Communications, Inc.zGenuine TelecomzGiant CommunicationszGlasgow EPBzGlenwood TelecommunicationszGLW Broadband Inc.zGolden West CablevisionzGrantsburg TelcomzGreat Plains CommunicationszGridley Cable InczH&B Cable ServiceszHaefele TV Inc.zHalstad Telephone CompanyzHarlan Municipal UtilitieszHart CommunicationszHartelco TVz(Heart of Iowa Communications CooperativezHickory Telephone CompanyzHighland Communication ServiceszHighland MediazHilliary CommunicationszHinton CATV Co.zHomeTel Entertainment, Inc.zHood Canal CommunicationszHope - Prescott Cable TVzHorizon Cable TV, Inc.zHorizon Chillicothe TelephonezHTC Communications Co. - ILzHTC Communications, Inc. - IAzHuxley CommunicationszImOn CommunicationszIndependence TelecommunicationszInland NetworkszInnovative Cable TV St Croixz%Innovative Cable TV St Thomas-St JohnzInside Connect CablezIntegra Telecomz"Interstate Telecommunications CoopzIrvine CablezK2 CommunicationszKalida Telephone Company, Inc.z$Kalona Cooperative Telephone CompanyZ	KMTelecomzKPU TelecommunicationszKuhn Communications, Inc.zLakeland CommunicationsZLangcoz*Laurel Highland Total Communications, Inc.z#Lehigh Valley Cooperative TelephonezLimestone Cable/Bracken CableZLISCOZ
LitestreamZLivComzLocalTel CommunicationszLongview - Kilgore Cable TVzLonsdale Video Ventures, LLCz Lost Nation-Elwood Telephone Co.zLPC ConnectzLumos NetworkszMadison CommunicationszMadison County Cable Inc.zMahaska Communication Groupz"Marne & Elk Horn Telephone CompanyzMcClure Telephone Co.ZMCTVzMerrimac Communications Ltd.ZMetronetZMHTCzMid-Hudson CablezMid-Rivers CommunicationszMidstate CommunicationszMilford CommunicationsZMINETz
Minford TVzMitchell TelecomZMLGCzMon-Cre TVEzMountain TelephonezMountain Village CablezMTA Communications, LLCz	MTC CablezMTC TechnologiesZMTCCzMTCO CommunicationszMulberry TelecommunicationszMurray Electric SystemzMUS FiberNETzMuscatine Power & Waterz
myEVTV.comNCCZNDTCzNebraska Central Telecom, Inc.zNelsonville TV CableZNemontzNew Hope Telephone CooperativeZNICPzNineStar ConnectZNKTelcozNortex Communicationsz#North Central Telephone CooperativezNorthland CommunicationszNorthwest CommunicationszNorwood Light BroadbandzNsight TelservicesZNteczNTS Communicationsz
NU-TelecomZNuLinkZNVCzOmniTel CommunicationszOneSource CommunicationszOpelika Power ServicesZOptiLinkZOPTURAzOTEC Communication CompanyzPackerland Broadbandz*Panora Telco/Guthrie Center Communicationsz)Park Region Telephone & Otter Tail Telcomz"Partner Communications CooperativeZPathwayzPaul Bunyan CommunicationszPembroke Telephone Companyz#Peoples Rural Telephone CooperativezPES EnergizezPhilippi Communications SystemzPhonoscope CablezPine Belt Communications, Inc.zPine Bluff Cable TVzPineland Telephone CooperativezPinpoint CommunicationszPioneer BroadbandzPioneer CommunicationszPioneer DTVzPlant TiftNet, Inc.ZPLWCZPMTzPolar CablevisionzPottawatomie Telephone Co.zPremier CommunicationsZPSCZPTCIZQCOLzQuality CablevisionzRadcliffe Telephone CompanyzRainbow CommunicationszRainier ConnectzRalls TechnologieszRC TechnologieszRed River CommunicationszReedsburg Utility CommissionzReliance Connects- OregonzReserve TelecommunicationszResort TV Cablez*Richland Grant Telephone Cooperative, Inc.z$River Valley Telecommunications CoopzRock Port CablevisionzRS FiberzRTC Communication CorpzRTC-Reservation Telephone Coop.zRTEC CommunicationszS&TzSan Bruno Cable TVZSantelz(SCI Broadband-Savage Communications Inc.zScottsboro Electric Power BoardzScranton Telephone CompanyZSELCOZShentelz+Sherwood Mutual Telephone Association, Inc.zSilver Star CommunicationszSjoberg's Inc.ZSKTz
SkyBest TVzSmithville CommunicationsZSolarusz)South Central Rural Telephone CooperativezSouth Holt Cablevision, Inc.z&South Slope Cooperative CommunicationszSpanish Fork Community NetworkzSpencer Municipal UtilitieszSpillway Communications, Inc.ZSRTzSt. Maarten Cable TVzStar CommunicationsZSTEzSTRATA NetworkszSumner Cable TVzSurry TV/PCSI TVzSwayzee CommunicationszSweetwater Cable Television CozTahlequah Cable TVZTCTzTele-Media CompanyzThe Community AgencyzThree RiverzTown & Country TechnologieszTrans-VideozTrenton TV Cable Companyz%Tri County Communications CooperativezTriCounty TelecomzTrioTel Communications, Inc.zTroy Cablevision, Inc.ZTSCzTullahoma Utilities BoardzTV Cable of Rensselaerz	TVC CableZTVisionz
Twin LakeszTwin ValleyzUnion Telephone CompanyzUnited Communications - TNzUnited ServiceszUS SonetzUSA Communicationsz!USA Communications/Shellsburg, IAzValley TeleCom GroupzValley TelecommunicationszValparaiso BroadbandzVast Broadbandz(Venture Communications Cooperative, Inc.zVernon Communications Co-opzVicksburg VideozVision CommunicationszVolcano Vision, Inc.zVolFirst / BLTVZVTelZVTX1zVyve BroadbandzWabash Mutual TelephonezWaitsfield CablezWalnut CommunicationsZWavezWaverly Communications UtilityZWBIz1Webster-Calhoun Cooperative Telephone AssociationzWest Alabama TV CablezWest Carolina Communicationsz"West Central Telephone Associationz(West River Cooperative Telephone CompanyzWesTel SystemszWestern Iowa NetworkszWhidbey TelecomzWhite County Cable TVZWiatelZWiktelz0Wilkes Communications, Inc./RiverStreet NetworkszWilson CommunicationszWindomnet/SMBSzWindstream Cable TVz)Winnebago Cooperative Telecom AssociationZWTCzWTC Communications, Inc.zWyandotte CablezX-Stream ServiceszXIT CommunicationszYelcot CommunicationsZyondooz
Zito MediazSling TVzidentity.sling.com
Suddenlinkz
Optimum TV(  ZDTVZATTZATTOTTr   r   Comcast_SSOZTWCZBrighthouseCharter_Directr   r   Verizonr   CablevisionZthr030Zcom140ZacecommunicationsZacm010Zada020Zalb020ZalgonaZallwestZall025Zspl010Zall070ZalpineZhun015Znwc010z	com130-02z	com130-01Ztom020Ztvc020ZarkwestZart030ZarvigZ
nttcash010ZastoundZdix030Zara010z	she030-02ZbaldwinZbal040Zcit025Zbay030Ztel095Zbea020Zbee010Zwir030Zbra020Zbel020z	vol040-01Zbev010Zbig020Zble020Zbvt010Zbra050Zbte010ZannearundelZbtc010Zbtc040Zbul010Zbut010z
tel160-cspZcsicableZcableamericaZcab038zweh010-camtelZcar030ZcanbytelZcrt020Zcar050ZcasZcasscommz	mid180-02ZcccommZ
nttccde010Zcfunetz	dem010-01z	dem010-02z	dem010-03z	dem010-04z	dem010-06z	dem010-05z	net010-02Zcen100Z
nttccst010Zcha035Zcha050Zcha060Z
nttcche010Zche050ZcimtelZcit180Zcit210Zcit040Zcit250Zwar040Zwat025Z	wadsworthZnor100Zcla010Zser060Ztac020Zwar020Zcml010ZcnsZcom160Zcoa020Zcoa030Zmid055Zcol070Zcol080Znor105Zcom150Zcom020Zcoy010Zcom025Zcat020Zcom071ZconsolidatedcableZ
conwaycorpZcoo050Zcoo080Zcpt010Zcra010Z	crestviewZcrossZcro030Zctc040Zphe030Zcun010Zdpc010Zdak030Z
nttcdel010z
tel160-delZsal040z	ind060-dcZdoy010Zdic010Zdtc020Zdtc010Zdum010Zdun010Zcci010Zeaglezweh010-eastZeatelZell010ZemerytelcomZnor200ZendeavorZsun045Zmid030Zepb020Zjea010Zcom065Zete010zfbc-teleZfal010Zfam010Zfar020Zfay010Zsal060Zfid010Zfor030Zfli020Zfar030Zfoo010Zfor080Zfbcommz
tel160-fraZ
nttcftc010ZfullchannelZgar040Zgbt010Ztec010Zclr010Zgla010Zgle010Zgra060Z
goldenwestZvis030ZgpcomZgri010Zhbc010Zhae010Zhtc010Zhar005Zhar020Zced010Zhea040Zhtc020Z
nttchig010Zhig030Zspc010Zhin020ZhometelZ	hoodcanalzweh010-hopeZhorizoncableZhor040Zhtc030ZhtccommZwal005imonZind040Zrrc010Zstc020Zcar100Zicc010Zint100Zint050Zirv010Zk2c010Zkal010Zkal030Zkmt010Zkpu010Zkuh010Zlak130Zlan010Zlau020Zleh010Zbra010Zloc020Zlit020Ztel140Zloc010zweh010-longviewZlon030Zlns010Z
nttclpc010ZlumosZmadisonZmad030Z
nttcmah010Zmar010Zmcc040ZmctvZmerrimacZmetronetZmhtcZ	midhudsonZ	midriversZmid045Zmil080Zmin030Z
nttcmin010z	san040-02Zmlg010Zmon060Zmou110Zmou050ZmtacommZmtc010Zmed040Zman060Zmtc030Zmul050Zmur010ZmusfiberZmpwZ
nttcsli010Znor115Znor260ZnctcZnel020Znem010Znew075Znor240Zcic010ZnktelcoZnortexZnor140Znor030Znor075Znor125Znet010Zdur010Znts010Znew045ZnulinkZjam030Zfar035Z	onesourceZcit230ZdaltonutilitiesZmid140Zote010Zcci020Zpan010ZotterZmid050Zfib010Z
paulbunyanZpem020Zmck010Zpul010Zphi010Z
phonoscopeZpin070zweh010-pineZpin060Zcam010Zpio060ZpioncommZpioneerZpla020Zpar010Zpro035Zvik011ZpottawatomieZpremiercommZpsc010Zpan020Zqco010Zqua010Zrad010Zcar040Zrai030Zral010Zrct010Zred040Zree010Zmol010Zres020zweh010-resortZrld010Zriv030ZrockportcableZrsf010ZrtcZres040Zrte010Zstc010Zsan020z	san040-01Zsav010Zsco050Zscr010ZselcoZshe010Zshe030z
ind060-sscZsjobergZsou025Zsky050Z
nttcsmi010Zwoo010Zsou075Zsou065Zsou035Zspa020Zspe010Zspi005Zsrt010Z	cccsmc010Zsta025Zsco020Zuin010Zsum010Zpie010Zswa010Z
sweetwaterzweh010-talequahZtctZtel050Zcom050Zthr020Zcab140Ztra010Ztre010ZtccZtri025Ztri110Ztro010ZtscZcit220Ztvc030Ztvc015Zcab180Ztwi040ZtvtincZuis010Zuni110Zuni120Zuss020Zcab060Zshe005Zval040Zval025Zval030Zcla050Zsul015Zver025zweh010-vicksburgZvis070Z
volcanotelz	vol040-02Zver070Z
nttcvtx010z	bci010-02Zwab020Z
waitsfieldZwal010ZwavebroadbandZwav030Zwbi010Zweb020Zwes005Z
carolinataZwct010Zwes110Zani030Z	westianetZ
nttcwhi010zweh010-whiteZwes130Zwik010Zwil070Zwil015Zwin010Zwin090ZwctaZwtc010Zwil040Zwya010z	hin020-02Zxit010Zyel010z	mid180-01Zcou060slingtvr   	AlticeOnec                       sL   e Zd ZdZdZdZdZ fddZedd Z	ed	d
 Z
dd Z  ZS )AdobePassIEz+https://sp.auth.adobe.com/adobe-services/%szBMozilla/5.0 (X11; Linux i686; rv:47.0) Gecko/20100101 Firefox/47.0zap-mvpdzDownloading Provider Login Pagec                    s6   |   }||dpi  ||d< t j|i |S )Nheaders)Zgeo_verification_headersupdategetsuper_download_webpage_handle)selfargskwargsr%   	__class__ O/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/adobepass.pyr)   \  s    z$AdobePassIE._download_webpage_handlec                 C   s   i S )Nr/   )mso_infor/   r/   r0   _get_mso_headersc  s    zAdobePassIE._get_mso_headersc           
      C   s~   t d}t |d}| |_t |d}t |d}||_t |d}||_t |d}	ddi|	_||	_dt |  d	 S )
Nchanneltitleitemguidzmedia:ratingschemez
urn:v-chipz?<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">z</rss>)etreeElement
SubElementtextattribtostringdecode)
Zprovider_idr4   r6   Zratingr3   Zchannel_titler5   Zresource_titleZresource_guidZresource_ratingr/   r/   r0   _get_mvpd_resourceh  s    

zAdobePassIE._get_mvpd_resourcec           7         sH
   d}|rt|  ni  fddfdd}i df fdd	}d	d
 }	dfdd	}
ddjjd}d|v r|dn|}tdD 	]}jj|pi }|d}|r||drd }|	s|s|	  dd|\}}|r|s|	  j	ddt
dt ji ddid\}}|d }|d|d< ||d< jd d!t
d"|i ddid}jd#d$td%|d& |d' d(dd)idd* }d+| |d,< jd-| d.d/t||d0d1d)d+| d2dd3 }jjd4 d5d6||d7d8||d9 d:}|d;kr |\}}d<|v rJd=|d>}|d? nd@|v rrdA|dB}|d? ndC|v r|}n>dD|v r|
|dEdF}j|j dG}n||j}||dH dI | dJ |idEdK}|\}}dL|v rZ||dM nZ|dNkrjdOdPt
|dQddEdRt j dEdS dTdTdUd tdV}jdWdXt
dY|i dTdTdUd dZd[}||dM n|d\kr|\}}d]|v rd^|vrވjd_|d`dadb}|dc} ndd|v r$||dH dI | dJ |idEdK}!|!\} }de| v rtdfn~jdg|d`dadb}|dhdi}|djdk}|dldm}|dc} || |gdH dI | dJ |idEdK\} }de| v rtdnjdo| dpdadb}"j|"dqddridG}#j|#ds dMt|#dt |#du dvddwid n^|dxv r|\}}||j}|\} }jdy| dudzdb}$jd{| d|d}db}% dI | dJ |du|$d||%i}&jd~dqt
|& dTdTdUd}#j|#d dMt|#dt |$dvddwid n|dkrd|\}'}|'}(d|(d< j|jd|(d}||dH dI | dJ |idEdK\})}|
|)|jd}*|*d\}+}|+}(d|(d< j|jd|(d}||dM n|dkrh||d\}'}|'}(d|(d< j|jd|(d},|,\}-}d|-v r|,}n8d|-d}.j|.d|(d}/jd|/ d|(d}||dH dI | dJ |idEdK\})}|
|)|jd}*|*d\}+}|+}(d|(d< j|jd|(d}||dM n|dkr|\}}jdddt |jt
||d dTdTdd}0jddd|0d3 |0d dd n|\}}|
||jd}*|*r|*d}||j} dId| dJd|i}1|dv r6d|1d< ||dH|1dEdK}|dkrZ||dM z*jjd dtd||d|d}2W nP ty }3 z6|st!|3j"t#r|3j"j$dkr|	   W Y d }3~3n
d }3~30 0 d|2v rj%j|i  qt&|2d}||d< j%j|| ||}4|4	r<||4d	r<d }4|4	sԈjjd dt||||ddd|d}5d|5v 	rj%j|i  qd|5v 	rt|5ddEdt&|5d}4|4||< j%j|| |'|d|dd jjd dt|4||dd7d|d}6d|6v 
r<j%j|i  q|6  S d S )NZap_msoc                    s     d| d| d| |S )N<z>(.+?)</>)_search_regex)Zxml_strtagr*   r/   r0   xml_text~  s    z0AdobePassIE._extract_mvpd_auth.<locals>.xml_textc                    s,   t tdd | |}|o*|tt kS )Nz[_ ]GMT )r
   resubinttime)tokenZdate_eleZtoken_expires)rE   r/   r0   
is_expired  s    z2AdobePassIE._extract_mvpd_auth.<locals>.is_expiredFc           
   	      s   | \}}j d|ddd}td|s6tj|j|}|rtj|} d}|rv||j	krvt
d| d|j	 d	|jd
krd tj|jd
d}|}	|	| j||t|	i  ddidS )Nz&<form[^>]+action=(["\'])(?P<url>.+?)\1zpost urlurlgroupz	https?://r   z)Unexpected login URL hostname; expected "z" but got "z)". Aborting before submitting credentialshttpsz#Upgrading login URL scheme to https)r7   Content-Type!application/x-www-form-urlencodeddatar%   )_html_search_regexrG   matchurllibparseurljoinrM   urlparser'   hostnamer   r7   Zwrite_debug
urlunparse_replace_hidden_inputsr&   r)   r   r2   )
Zform_page_resZnoterT   validate_urlZ	form_pageurlhZpost_urlZ
url_parsedZexpected_hostname	form_data)r1   r*   video_idr/   r0   	post_form  s2    




z1AdobePassIE._extract_mvpd_auth.<locals>.post_formc                   S   s   t dddd S )NzThis video is only available for users of participating TV providers. Use --ap-mso to specify Adobe Pass Multiple-system operator Identifier and --ap-username and --ap-password or --netrc to provide account credentials.Texpected)r   r/   r/   r/   r0   raise_mvpd_required  s    z;AdobePassIE._extract_mvpd_auth.<locals>.raise_mvpd_requiredc                    sH   d} j d| | d|rtnd |d}|s.d S |rDtj|t|}|S )Nz%[0-9]{,2};\s*(?:URL|url)=\'?([^\'"]+)z\(?i)<meta\s+(?=(?:[a-z-]+="[^"]+"\s+)*http-equiv="refresh")(?:[a-z-]+="[^"]+"\s+)*?content="zmeta refresh redirect)defaultfatal)rB   r   rW   rX   rY   r	   )htmlrM   rh   ZREDIRECT_REGEXredirect_urlrD   r/   r0   extract_redirect_url  s    z<AdobePassIE._extract_mvpd_auth.<locals>.extract_redirect_urlZ	anonymousz
Linux i686)Zap_42Zap_11Zap_zz
User-Agentr@   r6   r   authn_tokenZsimpleTokenExpiresZap_usernameZap_passwordz'https://sp.auth.adobe.com/indiv/deviceszRegistering device with AdobefingerprintrQ   zapplication/json; charset=UTF-8rS   deviceIdZpass_sfpZAp_21z+https://sp.auth.adobe.com/o/client/registerzRegistering client with Adobesoftware_statementz(https://sp.auth.adobe.com/o/client/tokenzObtaining access tokenZclient_credentials	client_idclient_secret)Z
grant_typerp   rq   z0application/x-www-form-urlencoded; charset=UTF-8access_tokenzBearer Authorizationz$https://sp.auth.adobe.com/reggie/v1/z/regcodezObtaining registration codejson)Z	requestorrn   format)rQ   rs   codezauthenticate/samlz"Downloading Provider Redirect Pagetruefalsez	adobe.com)Znoflashmso_idrequestor_idZ	no_iframeZdomain_namerj   reg_code)queryr%   r   zautomatically signing you inz%window\.location\s*=\s*[\'"]([^\'"]+)zoauth redirectzConfirming auto loginzautomatically signed in withz?continue:\s*"(https://oauth\.xfinity\.com/oauth/authorize\?.+)"zoauth redirect (signed)z<form name="signin"zhttp-equiv="refresh"T)rh   )r%   z
Logging inr   r   )r_   z5<button class="submit" value="Resume">Resume</button>zConfirming Loginr   z*https://idp.philo.com/auth/init/login_codezRequesting Philo auth codeZwebzweb-)r   ZdeviceZsend_confirm_linkZ
send_tokenZdevice_identZinclude_login_linkzapplication/json)rQ   Acceptz+Type auth code you have received [Return]: z,https://idp.philo.com/auth/update/login_codezSubmitting tokenrK   z https://idp.philo.com/idp/submitzConfirming Philo Loginr   zPlease wait ...z	'N'== "Y"z,self\.parent\.location=(["\'])(?P<url>.+?)\1zSAML Redirect URLrM   rN   zDownloading SAML Login PagezVerizon FiOS - sign inzPlease try again.zGWe're sorry, but either the User ID or Password entered is not correct.z$var\surl\s*=\s*(["\'])(?P<url>.+?)\1z\//z\--z\x26&z/Failed to login, incorrect User ID or Password.z1xmlHttp\.open\("POST"\s*,\s*(["\'])(?P<url>.+?)\1zSAML Login URLzDownloading SAML Responseztext/xmlZtargetValueSAMLResponse
RelayState)r   r   rR   )r   r   z"RelayState\s*=\s*"(?P<relay>.+?)";Zrelayz*SAMLRequest\s*=\s*"(?P<saml_request>.+?)";ZSAMLRequestsaml_requestzAhttps://tveauthn.spectrum.net/tveauthentication/api/v1/manualAuthZSAMLRedirectUrir"   r   historyzSending first bookend)r|   )rM   z*Downloading Auth Association Redirect Page   zSending final bookendr   zPressing Continue...Zhistory_valzSending First Bookendz-id="password" type="password" name="password"zurl:\s*[\'"]([^\'"]+)ZajaxurlzSubmitting TryAuthzQhttps://authorize.suddenlink.net/saml/module.php/authSynacor/login.php?AuthState=zGetting Login PagezSending Final Bookendr   z(https://api.fubo.tv/partners/tve/connectzAuthenticating with Fuboz Unable to authenticate with Fubo)r   r   )r}   rQ   )r|   rT   r%   z/https://sp.auth.adobe.com/adobe-services/oauth2zAuthenticating with Adobez!Failed to authenticate with Adobestate)rv   r   z1Downloading Provider Redirect Page (meta refresh)r   r   )r    r#   rF   Z_eventId_proceedr   sessionzRetrieving SessionGET)_methodrz   r{   i  z<pendingLogoutZ
authnTokenZsimpleTokenTTL	authorizezRetrieving Authorization TokenZsimpleTokenMsoID1)Zresource_idrz   Zauthentication_tokenry   ZuserMetaz<errordetailsrd   Z
authzTokenZsimpleSamlNameIDZsimpleSamlSessionIndex)Zap_19Zap_23ZshortAuthorizezRetrieving Media TokenZsimpleTokenAuthenticationGuid)authz_tokenrz   Zsession_guidZhashed_guid)NF)(	get_paramMSO_INFO_USER_AGENTrangecacheload_MVPD_CACHEr'   Z_get_login_infoZ_download_json_handlert   dumpsuuiduuid4hexencode
get_headerZ_download_jsonr   r)   _SERVICE_PROVIDER_TEMPLATEr2   rU   Z_download_webpage_DOWNLOADING_LOGIN_PAGEZ_request_webpagegetpassr   replacerB   r^   rM   r   
isinstancecauser   statusstorer	   r&   )7r*   rM   rb   rz   resourcero   ry   rL   rc   rf   rk   Zmvpd_headersr6   _Zrequestor_inforl   r   r   Zdevice_infor`   Z	device_idZregistrationrr   r{   Zprovider_redirect_page_resZprovider_redirect_pageZoauth_redirect_urlZprovider_login_page_resZmvpd_confirm_page_resZmvpd_confirm_pageZ
philo_codeZsaml_redirect_urlZsaml_login_pageZsaml_login_page_resZsaml_login_urlZsaml_response_jsonZrelay_stater   Z
login_jsonZfirst_bookend_pageZhidden_dataZprovider_association_redirectZprovider_refresh_redirect_urlZlast_bookend_pageZ provider_login_redirect_page_resZprovider_login_redirect_pageZprovider_tryauth_urlZprovider_tryauth_pageZfubo_responsera   r   er   r   Zshort_authorizer/   )r1   r*   rb   rE   r0   _extract_mvpd_authw  sR   



	




































"


	


zAdobePassIE._extract_mvpd_auth)__name__
__module____qualname__r   r   r   r   r)   staticmethodr2   r?   r   __classcell__r/   r/   r-   r0   r$   U  s   

r$   )r   rt   rG   rJ   urllib.parserW   r   xml.etree.ElementTreer8   ElementTreecommonr   Znetworking.exceptionsr   utilsr   r   r   r	   r
   r   r   r$   r/   r/   r/   r0   <module>   sR             
          K