aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/extractor
diff options
context:
space:
mode:
Diffstat (limited to 'yt_dlp/extractor')
-rw-r--r--yt_dlp/extractor/abc.py2
-rw-r--r--yt_dlp/extractor/abcnews.py4
-rw-r--r--yt_dlp/extractor/abcotvs.py4
-rw-r--r--yt_dlp/extractor/academicearth.py2
-rw-r--r--yt_dlp/extractor/acast.py4
-rw-r--r--yt_dlp/extractor/adn.py3
-rw-r--r--yt_dlp/extractor/adobeconnect.py3
-rw-r--r--yt_dlp/extractor/adobepass.py3
-rw-r--r--yt_dlp/extractor/adobetv.py2
-rw-r--r--yt_dlp/extractor/adultswim.py3
-rw-r--r--yt_dlp/extractor/aenetworks.py4
-rw-r--r--yt_dlp/extractor/afreecatv.py3
-rw-r--r--yt_dlp/extractor/airmozilla.py3
-rw-r--r--yt_dlp/extractor/aliexpress.py3
-rw-r--r--yt_dlp/extractor/aljazeera.py3
-rw-r--r--yt_dlp/extractor/allocine.py3
-rw-r--r--yt_dlp/extractor/alphaporno.py2
-rw-r--r--yt_dlp/extractor/alsace20tv.py3
-rw-r--r--yt_dlp/extractor/alura.py3
-rw-r--r--yt_dlp/extractor/amara.py3
-rw-r--r--yt_dlp/extractor/amazon.py1
-rw-r--r--yt_dlp/extractor/amcnetworks.py3
-rw-r--r--yt_dlp/extractor/americastestkitchen.py3
-rw-r--r--yt_dlp/extractor/amp.py3
-rw-r--r--yt_dlp/extractor/animelab.py3
-rw-r--r--yt_dlp/extractor/animeondemand.py2
-rw-r--r--yt_dlp/extractor/ant1newsgr.py3
-rw-r--r--yt_dlp/extractor/anvato.py3
-rw-r--r--yt_dlp/extractor/anvato_token_generator/__init__.py2
-rw-r--r--yt_dlp/extractor/anvato_token_generator/common.py3
-rw-r--r--yt_dlp/extractor/anvato_token_generator/nfl.py2
-rw-r--r--yt_dlp/extractor/aol.py3
-rw-r--r--yt_dlp/extractor/apa.py3
-rw-r--r--yt_dlp/extractor/aparat.py3
-rw-r--r--yt_dlp/extractor/appleconnect.py3
-rw-r--r--yt_dlp/extractor/applepodcasts.py3
-rw-r--r--yt_dlp/extractor/appletrailers.py2
-rw-r--r--yt_dlp/extractor/archiveorg.py7
-rw-r--r--yt_dlp/extractor/arcpublishing.py3
-rw-r--r--yt_dlp/extractor/ard.py3
-rw-r--r--yt_dlp/extractor/arkena.py3
-rw-r--r--yt_dlp/extractor/arnes.py3
-rw-r--r--yt_dlp/extractor/arte.py3
-rw-r--r--yt_dlp/extractor/asiancrush.py3
-rw-r--r--yt_dlp/extractor/atresplayer.py4
-rw-r--r--yt_dlp/extractor/atttechchannel.py2
-rw-r--r--yt_dlp/extractor/atvat.py3
-rw-r--r--yt_dlp/extractor/audimedia.py3
-rw-r--r--yt_dlp/extractor/audioboom.py3
-rw-r--r--yt_dlp/extractor/audiomack.py3
-rw-r--r--yt_dlp/extractor/audius.py3
-rw-r--r--yt_dlp/extractor/awaan.py3
-rw-r--r--yt_dlp/extractor/aws.py3
-rw-r--r--yt_dlp/extractor/azmedien.py3
-rw-r--r--yt_dlp/extractor/baidu.py4
-rw-r--r--yt_dlp/extractor/banbye.py3
-rw-r--r--yt_dlp/extractor/bandaichannel.py3
-rw-r--r--yt_dlp/extractor/bandcamp.py3
-rw-r--r--yt_dlp/extractor/bannedvideo.py2
-rw-r--r--yt_dlp/extractor/bbc.py3
-rw-r--r--yt_dlp/extractor/beatport.py3
-rw-r--r--yt_dlp/extractor/beeg.py2
-rw-r--r--yt_dlp/extractor/behindkink.py4
-rw-r--r--yt_dlp/extractor/bellmedia.py4
-rw-r--r--yt_dlp/extractor/bet.py2
-rw-r--r--yt_dlp/extractor/bfi.py3
-rw-r--r--yt_dlp/extractor/bfmtv.py3
-rw-r--r--yt_dlp/extractor/bibeltv.py3
-rw-r--r--yt_dlp/extractor/bigflix.py3
-rw-r--r--yt_dlp/extractor/bigo.py3
-rw-r--r--yt_dlp/extractor/bild.py3
-rw-r--r--yt_dlp/extractor/bilibili.py2
-rw-r--r--yt_dlp/extractor/biobiochiletv.py3
-rw-r--r--yt_dlp/extractor/biqle.py3
-rw-r--r--yt_dlp/extractor/bitchute.py3
-rw-r--r--yt_dlp/extractor/bitwave.py2
-rw-r--r--yt_dlp/extractor/blackboardcollaborate.py4
-rw-r--r--yt_dlp/extractor/bleacherreport.py3
-rw-r--r--yt_dlp/extractor/blinkx.py2
-rw-r--r--yt_dlp/extractor/blogger.py3
-rw-r--r--yt_dlp/extractor/bloomberg.py3
-rw-r--r--yt_dlp/extractor/bokecc.py4
-rw-r--r--yt_dlp/extractor/bongacams.py3
-rw-r--r--yt_dlp/extractor/bostonglobe.py3
-rw-r--r--yt_dlp/extractor/box.py3
-rw-r--r--yt_dlp/extractor/bpb.py3
-rw-r--r--yt_dlp/extractor/br.py3
-rw-r--r--yt_dlp/extractor/bravotv.py3
-rw-r--r--yt_dlp/extractor/breakcom.py3
-rw-r--r--yt_dlp/extractor/breitbart.py2
-rw-r--r--yt_dlp/extractor/brightcove.py3
-rw-r--r--yt_dlp/extractor/businessinsider.py3
-rw-r--r--yt_dlp/extractor/buzzfeed.py3
-rw-r--r--yt_dlp/extractor/byutv.py3
-rw-r--r--yt_dlp/extractor/c56.py4
-rw-r--r--yt_dlp/extractor/cableav.py1
-rw-r--r--yt_dlp/extractor/callin.py1
-rw-r--r--yt_dlp/extractor/caltrans.py3
-rw-r--r--yt_dlp/extractor/cam4.py3
-rw-r--r--yt_dlp/extractor/camdemy.py3
-rw-r--r--yt_dlp/extractor/cammodels.py3
-rw-r--r--yt_dlp/extractor/camwithher.py2
-rw-r--r--yt_dlp/extractor/canalalpha.py3
-rw-r--r--yt_dlp/extractor/canalc2.py3
-rw-r--r--yt_dlp/extractor/canalplus.py4
-rw-r--r--yt_dlp/extractor/canvas.py1
-rw-r--r--yt_dlp/extractor/carambatv.py3
-rw-r--r--yt_dlp/extractor/cartoonnetwork.py3
-rw-r--r--yt_dlp/extractor/cbc.py3
-rw-r--r--yt_dlp/extractor/cbs.py2
-rw-r--r--yt_dlp/extractor/cbsinteractive.py4
-rw-r--r--yt_dlp/extractor/cbslocal.py3
-rw-r--r--yt_dlp/extractor/cbsnews.py3
-rw-r--r--yt_dlp/extractor/cbssports.py3
-rw-r--r--yt_dlp/extractor/ccc.py3
-rw-r--r--yt_dlp/extractor/ccma.py3
-rw-r--r--yt_dlp/extractor/cctv.py3
-rw-r--r--yt_dlp/extractor/cda.py3
-rw-r--r--yt_dlp/extractor/ceskatelevize.py3
-rw-r--r--yt_dlp/extractor/cgtn.py3
-rw-r--r--yt_dlp/extractor/channel9.py2
-rw-r--r--yt_dlp/extractor/charlierose.py2
-rw-r--r--yt_dlp/extractor/chaturbate.py2
-rw-r--r--yt_dlp/extractor/chilloutzone.py2
-rw-r--r--yt_dlp/extractor/chingari.py3
-rw-r--r--yt_dlp/extractor/chirbit.py3
-rw-r--r--yt_dlp/extractor/cinchcast.py3
-rw-r--r--yt_dlp/extractor/cinemax.py4
-rw-r--r--yt_dlp/extractor/ciscolive.py3
-rw-r--r--yt_dlp/extractor/ciscowebex.py3
-rw-r--r--yt_dlp/extractor/cjsw.py4
-rw-r--r--yt_dlp/extractor/cliphunter.py2
-rw-r--r--yt_dlp/extractor/clippit.py4
-rw-r--r--yt_dlp/extractor/cliprs.py3
-rw-r--r--yt_dlp/extractor/clipsyndicate.py2
-rw-r--r--yt_dlp/extractor/closertotruth.py3
-rw-r--r--yt_dlp/extractor/cloudflarestream.py3
-rw-r--r--yt_dlp/extractor/cloudy.py3
-rw-r--r--yt_dlp/extractor/clubic.py3
-rw-r--r--yt_dlp/extractor/clyp.py2
-rw-r--r--yt_dlp/extractor/cmt.py2
-rw-r--r--yt_dlp/extractor/cnbc.py4
-rw-r--r--yt_dlp/extractor/cnn.py3
-rw-r--r--yt_dlp/extractor/comedycentral.py2
-rw-r--r--yt_dlp/extractor/common.py37
-rw-r--r--yt_dlp/extractor/commonmistakes.py2
-rw-r--r--yt_dlp/extractor/commonprotocols.py3
-rw-r--r--yt_dlp/extractor/condenast.py3
-rw-r--r--yt_dlp/extractor/contv.py3
-rw-r--r--yt_dlp/extractor/corus.py4
-rw-r--r--yt_dlp/extractor/coub.py3
-rw-r--r--yt_dlp/extractor/cozytv.py3
-rw-r--r--yt_dlp/extractor/cpac.py3
-rw-r--r--yt_dlp/extractor/cracked.py2
-rw-r--r--yt_dlp/extractor/crackle.py3
-rw-r--r--yt_dlp/extractor/craftsy.py3
-rw-r--r--yt_dlp/extractor/crooksandliars.py2
-rw-r--r--yt_dlp/extractor/crowdbunker.py3
-rw-r--r--yt_dlp/extractor/crunchyroll.py3
-rw-r--r--yt_dlp/extractor/cspan.py2
-rw-r--r--yt_dlp/extractor/ctsnews.py3
-rw-r--r--yt_dlp/extractor/ctv.py3
-rw-r--r--yt_dlp/extractor/ctvnews.py3
-rw-r--r--yt_dlp/extractor/cultureunplugged.py2
-rw-r--r--yt_dlp/extractor/curiositystream.py3
-rw-r--r--yt_dlp/extractor/cwtv.py3
-rw-r--r--yt_dlp/extractor/cybrary.py3
-rw-r--r--yt_dlp/extractor/daftsex.py3
-rw-r--r--yt_dlp/extractor/dailymail.py3
-rw-r--r--yt_dlp/extractor/dailymotion.py3
-rw-r--r--yt_dlp/extractor/damtomo.py3
-rw-r--r--yt_dlp/extractor/daum.py4
-rw-r--r--yt_dlp/extractor/dbtv.py3
-rw-r--r--yt_dlp/extractor/dctp.py3
-rw-r--r--yt_dlp/extractor/deezer.py2
-rw-r--r--yt_dlp/extractor/defense.py2
-rw-r--r--yt_dlp/extractor/democracynow.py3
-rw-r--r--yt_dlp/extractor/dfb.py3
-rw-r--r--yt_dlp/extractor/dhm.py2
-rw-r--r--yt_dlp/extractor/digg.py2
-rw-r--r--yt_dlp/extractor/digitalconcerthall.py3
-rw-r--r--yt_dlp/extractor/digiteka.py3
-rw-r--r--yt_dlp/extractor/discovery.py2
-rw-r--r--yt_dlp/extractor/discoverygo.py2
-rw-r--r--yt_dlp/extractor/discoveryvr.py3
-rw-r--r--yt_dlp/extractor/disney.py3
-rw-r--r--yt_dlp/extractor/dispeak.py2
-rw-r--r--yt_dlp/extractor/dlive.py2
-rw-r--r--yt_dlp/extractor/doodstream.py3
-rw-r--r--yt_dlp/extractor/dotsub.py2
-rw-r--r--yt_dlp/extractor/douyutv.py3
-rw-r--r--yt_dlp/extractor/dplay.py3
-rw-r--r--yt_dlp/extractor/drbonanza.py3
-rw-r--r--yt_dlp/extractor/dreisat.py2
-rw-r--r--yt_dlp/extractor/drooble.py3
-rw-r--r--yt_dlp/extractor/dropbox.py3
-rw-r--r--yt_dlp/extractor/dropout.py1
-rw-r--r--yt_dlp/extractor/drtuber.py2
-rw-r--r--yt_dlp/extractor/drtv.py3
-rw-r--r--yt_dlp/extractor/dtube.py3
-rw-r--r--yt_dlp/extractor/duboku.py3
-rw-r--r--yt_dlp/extractor/dumpert.py3
-rw-r--r--yt_dlp/extractor/dvtv.py3
-rw-r--r--yt_dlp/extractor/dw.py3
-rw-r--r--yt_dlp/extractor/eagleplatform.py3
-rw-r--r--yt_dlp/extractor/ebaumsworld.py2
-rw-r--r--yt_dlp/extractor/echomsk.py3
-rw-r--r--yt_dlp/extractor/egghead.py3
-rw-r--r--yt_dlp/extractor/ehow.py2
-rw-r--r--yt_dlp/extractor/eighttracks.py3
-rw-r--r--yt_dlp/extractor/einthusan.py3
-rw-r--r--yt_dlp/extractor/eitb.py3
-rw-r--r--yt_dlp/extractor/ellentube.py3
-rw-r--r--yt_dlp/extractor/elonet.py3
-rw-r--r--yt_dlp/extractor/elpais.py3
-rw-r--r--yt_dlp/extractor/embedly.py3
-rw-r--r--yt_dlp/extractor/engadget.py2
-rw-r--r--yt_dlp/extractor/epicon.py3
-rw-r--r--yt_dlp/extractor/eporner.py4
-rw-r--r--yt_dlp/extractor/eroprofile.py2
-rw-r--r--yt_dlp/extractor/ertgr.py3
-rw-r--r--yt_dlp/extractor/escapist.py2
-rw-r--r--yt_dlp/extractor/espn.py2
-rw-r--r--yt_dlp/extractor/esri.py3
-rw-r--r--yt_dlp/extractor/europa.py3
-rw-r--r--yt_dlp/extractor/europeantour.py3
-rw-r--r--yt_dlp/extractor/euscreen.py3
-rw-r--r--yt_dlp/extractor/everyonesmixtape.py3
-rw-r--r--yt_dlp/extractor/expotv.py2
-rw-r--r--yt_dlp/extractor/expressen.py3
-rw-r--r--yt_dlp/extractor/extractors.py2
-rw-r--r--yt_dlp/extractor/extremetube.py2
-rw-r--r--yt_dlp/extractor/eyedotv.py3
-rw-r--r--yt_dlp/extractor/facebook.py3
-rw-r--r--yt_dlp/extractor/fancode.py3
-rw-r--r--yt_dlp/extractor/faz.py3
-rw-r--r--yt_dlp/extractor/fc2.py3
-rw-r--r--yt_dlp/extractor/fczenit.py3
-rw-r--r--yt_dlp/extractor/filmmodu.py3
-rw-r--r--yt_dlp/extractor/filmon.py3
-rw-r--r--yt_dlp/extractor/filmweb.py3
-rw-r--r--yt_dlp/extractor/firsttv.py3
-rw-r--r--yt_dlp/extractor/fivetv.py4
-rw-r--r--yt_dlp/extractor/flickr.py2
-rw-r--r--yt_dlp/extractor/folketinget.py3
-rw-r--r--yt_dlp/extractor/footyroom.py3
-rw-r--r--yt_dlp/extractor/formula1.py3
-rw-r--r--yt_dlp/extractor/fourtube.py2
-rw-r--r--yt_dlp/extractor/fox.py3
-rw-r--r--yt_dlp/extractor/fox9.py3
-rw-r--r--yt_dlp/extractor/foxgay.py2
-rw-r--r--yt_dlp/extractor/foxnews.py2
-rw-r--r--yt_dlp/extractor/foxsports.py2
-rw-r--r--yt_dlp/extractor/fptplay.py3
-rw-r--r--yt_dlp/extractor/franceculture.py3
-rw-r--r--yt_dlp/extractor/franceinter.py3
-rw-r--r--yt_dlp/extractor/francetv.py5
-rw-r--r--yt_dlp/extractor/freesound.py2
-rw-r--r--yt_dlp/extractor/freespeech.py2
-rw-r--r--yt_dlp/extractor/frontendmasters.py3
-rw-r--r--yt_dlp/extractor/fujitv.py2
-rw-r--r--yt_dlp/extractor/funimation.py3
-rw-r--r--yt_dlp/extractor/funk.py4
-rw-r--r--yt_dlp/extractor/fusion.py2
-rw-r--r--yt_dlp/extractor/fxnetworks.py3
-rw-r--r--yt_dlp/extractor/gab.py3
-rw-r--r--yt_dlp/extractor/gaia.py4
-rw-r--r--yt_dlp/extractor/gameinformer.py3
-rw-r--r--yt_dlp/extractor/gamejolt.py1
-rw-r--r--yt_dlp/extractor/gamespot.py2
-rw-r--r--yt_dlp/extractor/gamestar.py4
-rw-r--r--yt_dlp/extractor/gaskrank.py3
-rw-r--r--yt_dlp/extractor/gazeta.py4
-rw-r--r--yt_dlp/extractor/gdcvault.py2
-rw-r--r--yt_dlp/extractor/gedidigital.py3
-rw-r--r--yt_dlp/extractor/generic.py10
-rw-r--r--yt_dlp/extractor/gettr.py3
-rw-r--r--yt_dlp/extractor/gfycat.py3
-rw-r--r--yt_dlp/extractor/giantbomb.py2
-rw-r--r--yt_dlp/extractor/giga.py3
-rw-r--r--yt_dlp/extractor/gigya.py2
-rw-r--r--yt_dlp/extractor/glide.py3
-rw-r--r--yt_dlp/extractor/globo.py3
-rw-r--r--yt_dlp/extractor/glomex.py3
-rw-r--r--yt_dlp/extractor/go.py3
-rw-r--r--yt_dlp/extractor/godtube.py3
-rw-r--r--yt_dlp/extractor/gofile.py1
-rw-r--r--yt_dlp/extractor/golem.py3
-rw-r--r--yt_dlp/extractor/googledrive.py2
-rw-r--r--yt_dlp/extractor/googlepodcasts.py3
-rw-r--r--yt_dlp/extractor/googlesearch.py2
-rw-r--r--yt_dlp/extractor/gopro.py3
-rw-r--r--yt_dlp/extractor/goshgay.py3
-rw-r--r--yt_dlp/extractor/gotostage.py3
-rw-r--r--yt_dlp/extractor/gputechconf.py3
-rw-r--r--yt_dlp/extractor/gronkh.py3
-rw-r--r--yt_dlp/extractor/groupon.py2
-rw-r--r--yt_dlp/extractor/hbo.py3
-rw-r--r--yt_dlp/extractor/hearthisat.py4
-rw-r--r--yt_dlp/extractor/heise.py3
-rw-r--r--yt_dlp/extractor/hellporno.py2
-rw-r--r--yt_dlp/extractor/helsinki.py4
-rw-r--r--yt_dlp/extractor/hentaistigma.py2
-rw-r--r--yt_dlp/extractor/hgtv.py3
-rw-r--r--yt_dlp/extractor/hidive.py1
-rw-r--r--yt_dlp/extractor/historicfilms.py2
-rw-r--r--yt_dlp/extractor/hitbox.py3
-rw-r--r--yt_dlp/extractor/hitrecord.py2
-rw-r--r--yt_dlp/extractor/hketv.py3
-rw-r--r--yt_dlp/extractor/hotnewhiphop.py2
-rw-r--r--yt_dlp/extractor/hotstar.py3
-rw-r--r--yt_dlp/extractor/howcast.py2
-rw-r--r--yt_dlp/extractor/howstuffworks.py2
-rw-r--r--yt_dlp/extractor/hrfensehen.py3
-rw-r--r--yt_dlp/extractor/hrti.py3
-rw-r--r--yt_dlp/extractor/hse.py1
-rw-r--r--yt_dlp/extractor/huajiao.py3
-rw-r--r--yt_dlp/extractor/huffpost.py2
-rw-r--r--yt_dlp/extractor/hungama.py3
-rw-r--r--yt_dlp/extractor/huya.py3
-rw-r--r--yt_dlp/extractor/hypem.py2
-rw-r--r--yt_dlp/extractor/ichinanalive.py3
-rw-r--r--yt_dlp/extractor/ign.py2
-rw-r--r--yt_dlp/extractor/iheart.py3
-rw-r--r--yt_dlp/extractor/imdb.py2
-rw-r--r--yt_dlp/extractor/imggaming.py3
-rw-r--r--yt_dlp/extractor/imgur.py2
-rw-r--r--yt_dlp/extractor/ina.py3
-rw-r--r--yt_dlp/extractor/inc.py2
-rw-r--r--yt_dlp/extractor/indavideo.py3
-rw-r--r--yt_dlp/extractor/infoq.py4
-rw-r--r--yt_dlp/extractor/instagram.py2
-rw-r--r--yt_dlp/extractor/internazionale.py3
-rw-r--r--yt_dlp/extractor/internetvideoarchive.py2
-rw-r--r--yt_dlp/extractor/iprima.py3
-rw-r--r--yt_dlp/extractor/iqiyi.py3
-rw-r--r--yt_dlp/extractor/itprotv.py2
-rw-r--r--yt_dlp/extractor/itv.py3
-rw-r--r--yt_dlp/extractor/ivi.py3
-rw-r--r--yt_dlp/extractor/ivideon.py4
-rw-r--r--yt_dlp/extractor/iwara.py2
-rw-r--r--yt_dlp/extractor/izlesene.py3
-rw-r--r--yt_dlp/extractor/jable.py3
-rw-r--r--yt_dlp/extractor/jamendo.py3
-rw-r--r--yt_dlp/extractor/jeuxvideo.py5
-rw-r--r--yt_dlp/extractor/joj.py3
-rw-r--r--yt_dlp/extractor/jove.py3
-rw-r--r--yt_dlp/extractor/jwplatform.py3
-rw-r--r--yt_dlp/extractor/kakao.py4
-rw-r--r--yt_dlp/extractor/kaltura.py3
-rw-r--r--yt_dlp/extractor/kanalplay.py4
-rw-r--r--yt_dlp/extractor/karaoketv.py3
-rw-r--r--yt_dlp/extractor/karrierevideos.py3
-rw-r--r--yt_dlp/extractor/keezmovies.py2
-rw-r--r--yt_dlp/extractor/kelbyone.py3
-rw-r--r--yt_dlp/extractor/ketnet.py2
-rw-r--r--yt_dlp/extractor/khanacademy.py2
-rw-r--r--yt_dlp/extractor/kickstarter.py3
-rw-r--r--yt_dlp/extractor/kinja.py3
-rw-r--r--yt_dlp/extractor/kinopoisk.py3
-rw-r--r--yt_dlp/extractor/konserthusetplay.py3
-rw-r--r--yt_dlp/extractor/koo.py2
-rw-r--r--yt_dlp/extractor/krasview.py3
-rw-r--r--yt_dlp/extractor/ku6.py2
-rw-r--r--yt_dlp/extractor/kusi.py3
-rw-r--r--yt_dlp/extractor/kuwo.py3
-rw-r--r--yt_dlp/extractor/la7.py3
-rw-r--r--yt_dlp/extractor/laola1tv.py3
-rw-r--r--yt_dlp/extractor/lastfm.py3
-rw-r--r--yt_dlp/extractor/lbry.py3
-rw-r--r--yt_dlp/extractor/lci.py3
-rw-r--r--yt_dlp/extractor/lcp.py3
-rw-r--r--yt_dlp/extractor/lecture2go.py3
-rw-r--r--yt_dlp/extractor/lecturio.py3
-rw-r--r--yt_dlp/extractor/leeco.py3
-rw-r--r--yt_dlp/extractor/lego.py3
-rw-r--r--yt_dlp/extractor/lemonde.py2
-rw-r--r--yt_dlp/extractor/lenta.py3
-rw-r--r--yt_dlp/extractor/libraryofcongress.py3
-rw-r--r--yt_dlp/extractor/libsyn.py4
-rw-r--r--yt_dlp/extractor/lifenews.py3
-rw-r--r--yt_dlp/extractor/limelight.py3
-rw-r--r--yt_dlp/extractor/line.py4
-rw-r--r--yt_dlp/extractor/linkedin.py3
-rw-r--r--yt_dlp/extractor/linuxacademy.py2
-rw-r--r--yt_dlp/extractor/litv.py3
-rw-r--r--yt_dlp/extractor/livejournal.py3
-rw-r--r--yt_dlp/extractor/livestream.py2
-rw-r--r--yt_dlp/extractor/lnkgo.py4
-rw-r--r--yt_dlp/extractor/localnews8.py4
-rw-r--r--yt_dlp/extractor/lovehomeporn.py3
-rw-r--r--yt_dlp/extractor/lrt.py4
-rw-r--r--yt_dlp/extractor/lynda.py2
-rw-r--r--yt_dlp/extractor/m6.py3
-rw-r--r--yt_dlp/extractor/magentamusik360.py3
-rw-r--r--yt_dlp/extractor/mailru.py3
-rw-r--r--yt_dlp/extractor/mainstreaming.py1
-rw-r--r--yt_dlp/extractor/malltv.py3
-rw-r--r--yt_dlp/extractor/mangomolo.py3
-rw-r--r--yt_dlp/extractor/manoto.py3
-rw-r--r--yt_dlp/extractor/manyvids.py3
-rw-r--r--yt_dlp/extractor/maoritv.py3
-rw-r--r--yt_dlp/extractor/markiza.py3
-rw-r--r--yt_dlp/extractor/massengeschmacktv.py2
-rw-r--r--yt_dlp/extractor/matchtv.py3
-rw-r--r--yt_dlp/extractor/mdr.py3
-rw-r--r--yt_dlp/extractor/medaltv.py3
-rw-r--r--yt_dlp/extractor/mediaite.py3
-rw-r--r--yt_dlp/extractor/mediaklikk.py3
-rw-r--r--yt_dlp/extractor/medialaan.py2
-rw-r--r--yt_dlp/extractor/mediaset.py3
-rw-r--r--yt_dlp/extractor/mediasite.py3
-rw-r--r--yt_dlp/extractor/medici.py3
-rw-r--r--yt_dlp/extractor/megaphone.py3
-rw-r--r--yt_dlp/extractor/megatvcom.py3
-rw-r--r--yt_dlp/extractor/meipai.py3
-rw-r--r--yt_dlp/extractor/melonvod.py3
-rw-r--r--yt_dlp/extractor/meta.py3
-rw-r--r--yt_dlp/extractor/metacafe.py2
-rw-r--r--yt_dlp/extractor/metacritic.py2
-rw-r--r--yt_dlp/extractor/mgoon.py4
-rw-r--r--yt_dlp/extractor/mgtv.py3
-rw-r--r--yt_dlp/extractor/miaopai.py3
-rw-r--r--yt_dlp/extractor/microsoftstream.py3
-rw-r--r--yt_dlp/extractor/microsoftvirtualacademy.py2
-rw-r--r--yt_dlp/extractor/mildom.py3
-rw-r--r--yt_dlp/extractor/minds.py3
-rw-r--r--yt_dlp/extractor/ministrygrid.py2
-rw-r--r--yt_dlp/extractor/minoto.py4
-rw-r--r--yt_dlp/extractor/miomio.py3
-rw-r--r--yt_dlp/extractor/mirrativ.py2
-rw-r--r--yt_dlp/extractor/mit.py2
-rw-r--r--yt_dlp/extractor/mitele.py3
-rw-r--r--yt_dlp/extractor/mixch.py2
-rw-r--r--yt_dlp/extractor/mixcloud.py2
-rw-r--r--yt_dlp/extractor/mlb.py2
-rw-r--r--yt_dlp/extractor/mlssoccer.py3
-rw-r--r--yt_dlp/extractor/mnet.py3
-rw-r--r--yt_dlp/extractor/moevideo.py4
-rw-r--r--yt_dlp/extractor/mofosex.py2
-rw-r--r--yt_dlp/extractor/mojvideo.py4
-rw-r--r--yt_dlp/extractor/morningstar.py4
-rw-r--r--yt_dlp/extractor/motherless.py2
-rw-r--r--yt_dlp/extractor/motorsport.py3
-rw-r--r--yt_dlp/extractor/movieclips.py3
-rw-r--r--yt_dlp/extractor/moviepilot.py3
-rw-r--r--yt_dlp/extractor/moviezine.py4
-rw-r--r--yt_dlp/extractor/movingimage.py2
-rw-r--r--yt_dlp/extractor/msn.py3
-rw-r--r--yt_dlp/extractor/mtv.py3
-rw-r--r--yt_dlp/extractor/muenchentv.py3
-rw-r--r--yt_dlp/extractor/murrtube.py3
-rw-r--r--yt_dlp/extractor/musescore.py3
-rw-r--r--yt_dlp/extractor/musicdex.py3
-rw-r--r--yt_dlp/extractor/mwave.py2
-rw-r--r--yt_dlp/extractor/mxplayer.py3
-rw-r--r--yt_dlp/extractor/mychannels.py4
-rw-r--r--yt_dlp/extractor/myspace.py3
-rw-r--r--yt_dlp/extractor/myspass.py3
-rw-r--r--yt_dlp/extractor/myvi.py3
-rw-r--r--yt_dlp/extractor/myvideoge.py3
-rw-r--r--yt_dlp/extractor/myvidster.py2
-rw-r--r--yt_dlp/extractor/n1.py3
-rw-r--r--yt_dlp/extractor/nate.py3
-rw-r--r--yt_dlp/extractor/nationalgeographic.py2
-rw-r--r--yt_dlp/extractor/naver.py3
-rw-r--r--yt_dlp/extractor/nba.py2
-rw-r--r--yt_dlp/extractor/nbc.py2
-rw-r--r--yt_dlp/extractor/ndr.py3
-rw-r--r--yt_dlp/extractor/ndtv.py3
-rw-r--r--yt_dlp/extractor/nebula.py3
-rw-r--r--yt_dlp/extractor/nerdcubed.py3
-rw-r--r--yt_dlp/extractor/neteasemusic.py3
-rw-r--r--yt_dlp/extractor/netzkino.py4
-rw-r--r--yt_dlp/extractor/newgrounds.py3
-rw-r--r--yt_dlp/extractor/newstube.py3
-rw-r--r--yt_dlp/extractor/newsy.py3
-rw-r--r--yt_dlp/extractor/nextmedia.py3
-rw-r--r--yt_dlp/extractor/nexx.py3
-rw-r--r--yt_dlp/extractor/nfb.py3
-rw-r--r--yt_dlp/extractor/nfhsnetwork.py3
-rw-r--r--yt_dlp/extractor/nfl.py3
-rw-r--r--yt_dlp/extractor/nhk.py2
-rw-r--r--yt_dlp/extractor/nhl.py3
-rw-r--r--yt_dlp/extractor/nick.py4
-rw-r--r--yt_dlp/extractor/niconico.py3
-rw-r--r--yt_dlp/extractor/ninecninemedia.py3
-rw-r--r--yt_dlp/extractor/ninegag.py2
-rw-r--r--yt_dlp/extractor/ninenow.py3
-rw-r--r--yt_dlp/extractor/nintendo.py3
-rw-r--r--yt_dlp/extractor/nitter.py3
-rw-r--r--yt_dlp/extractor/njpwworld.py3
-rw-r--r--yt_dlp/extractor/nobelprize.py3
-rw-r--r--yt_dlp/extractor/noco.py3
-rw-r--r--yt_dlp/extractor/nonktube.py2
-rw-r--r--yt_dlp/extractor/noodlemagazine.py3
-rw-r--r--yt_dlp/extractor/noovo.py3
-rw-r--r--yt_dlp/extractor/normalboots.py3
-rw-r--r--yt_dlp/extractor/nosvideo.py3
-rw-r--r--yt_dlp/extractor/nova.py3
-rw-r--r--yt_dlp/extractor/novaplay.py1
-rw-r--r--yt_dlp/extractor/nowness.py3
-rw-r--r--yt_dlp/extractor/noz.py3
-rw-r--r--yt_dlp/extractor/npo.py2
-rw-r--r--yt_dlp/extractor/npr.py2
-rw-r--r--yt_dlp/extractor/nrk.py3
-rw-r--r--yt_dlp/extractor/nrl.py3
-rw-r--r--yt_dlp/extractor/ntvcojp.py3
-rw-r--r--yt_dlp/extractor/ntvde.py3
-rw-r--r--yt_dlp/extractor/ntvru.py3
-rw-r--r--yt_dlp/extractor/nuevo.py3
-rw-r--r--yt_dlp/extractor/nuvid.py2
-rw-r--r--yt_dlp/extractor/nytimes.py3
-rw-r--r--yt_dlp/extractor/nzherald.py3
-rw-r--r--yt_dlp/extractor/nzz.py3
-rw-r--r--yt_dlp/extractor/odatv.py3
-rw-r--r--yt_dlp/extractor/odnoklassniki.py3
-rw-r--r--yt_dlp/extractor/oktoberfesttv.py3
-rw-r--r--yt_dlp/extractor/olympics.py3
-rw-r--r--yt_dlp/extractor/on24.py3
-rw-r--r--yt_dlp/extractor/once.py3
-rw-r--r--yt_dlp/extractor/ondemandkorea.py3
-rw-r--r--yt_dlp/extractor/onefootball.py3
-rw-r--r--yt_dlp/extractor/onet.py3
-rw-r--r--yt_dlp/extractor/onionstudios.py3
-rw-r--r--yt_dlp/extractor/ooyala.py2
-rw-r--r--yt_dlp/extractor/opencast.py3
-rw-r--r--yt_dlp/extractor/openload.py11
-rw-r--r--yt_dlp/extractor/openrec.py3
-rw-r--r--yt_dlp/extractor/ora.py3
-rw-r--r--yt_dlp/extractor/orf.py3
-rw-r--r--yt_dlp/extractor/outsidetv.py3
-rw-r--r--yt_dlp/extractor/packtpub.py2
-rw-r--r--yt_dlp/extractor/palcomp3.py4
-rw-r--r--yt_dlp/extractor/pandoratv.py4
-rw-r--r--yt_dlp/extractor/paramountplus.py1
-rw-r--r--yt_dlp/extractor/parliamentliveuk.py3
-rw-r--r--yt_dlp/extractor/parlview.py3
-rw-r--r--yt_dlp/extractor/patreon.py3
-rw-r--r--yt_dlp/extractor/pbs.py3
-rw-r--r--yt_dlp/extractor/pearvideo.py3
-rw-r--r--yt_dlp/extractor/peekvids.py3
-rw-r--r--yt_dlp/extractor/peertube.py3
-rw-r--r--yt_dlp/extractor/peertv.py3
-rw-r--r--yt_dlp/extractor/peloton.py3
-rw-r--r--yt_dlp/extractor/people.py3
-rw-r--r--yt_dlp/extractor/performgroup.py4
-rw-r--r--yt_dlp/extractor/periscope.py3
-rw-r--r--yt_dlp/extractor/philharmoniedeparis.py3
-rw-r--r--yt_dlp/extractor/phoenix.py3
-rw-r--r--yt_dlp/extractor/photobucket.py2
-rw-r--r--yt_dlp/extractor/piapro.py3
-rw-r--r--yt_dlp/extractor/picarto.py3
-rw-r--r--yt_dlp/extractor/piksel.py3
-rw-r--r--yt_dlp/extractor/pinkbike.py3
-rw-r--r--yt_dlp/extractor/pinterest.py3
-rw-r--r--yt_dlp/extractor/pixivsketch.py3
-rw-r--r--yt_dlp/extractor/pladform.py3
-rw-r--r--yt_dlp/extractor/planetmarathi.py3
-rw-r--r--yt_dlp/extractor/platzi.py3
-rw-r--r--yt_dlp/extractor/playfm.py4
-rw-r--r--yt_dlp/extractor/playplustv.py3
-rw-r--r--yt_dlp/extractor/plays.py3
-rw-r--r--yt_dlp/extractor/playstuff.py2
-rw-r--r--yt_dlp/extractor/playtvak.py3
-rw-r--r--yt_dlp/extractor/playvid.py2
-rw-r--r--yt_dlp/extractor/playwire.py3
-rw-r--r--yt_dlp/extractor/pluralsight.py2
-rw-r--r--yt_dlp/extractor/plutotv.py3
-rw-r--r--yt_dlp/extractor/podomatic.py2
-rw-r--r--yt_dlp/extractor/pokemon.py3
-rw-r--r--yt_dlp/extractor/pokergo.py3
-rw-r--r--yt_dlp/extractor/polsatgo.py3
-rw-r--r--yt_dlp/extractor/polskieradio.py3
-rw-r--r--yt_dlp/extractor/popcorntimes.py4
-rw-r--r--yt_dlp/extractor/popcorntv.py3
-rw-r--r--yt_dlp/extractor/porn91.py3
-rw-r--r--yt_dlp/extractor/porncom.py2
-rw-r--r--yt_dlp/extractor/pornez.py2
-rw-r--r--yt_dlp/extractor/pornflip.py3
-rw-r--r--yt_dlp/extractor/pornhd.py3
-rw-r--r--yt_dlp/extractor/pornhub.py3
-rw-r--r--yt_dlp/extractor/pornotube.py2
-rw-r--r--yt_dlp/extractor/pornovoisines.py4
-rw-r--r--yt_dlp/extractor/pornoxo.py3
-rw-r--r--yt_dlp/extractor/presstv.py4
-rw-r--r--yt_dlp/extractor/projectveritas.py3
-rw-r--r--yt_dlp/extractor/prosiebensat1.py3
-rw-r--r--yt_dlp/extractor/prx.py3
-rw-r--r--yt_dlp/extractor/puhutv.py3
-rw-r--r--yt_dlp/extractor/puls4.py3
-rw-r--r--yt_dlp/extractor/pyvideo.py2
-rw-r--r--yt_dlp/extractor/qqmusic.py3
-rw-r--r--yt_dlp/extractor/r7.py3
-rw-r--r--yt_dlp/extractor/radiko.py3
-rw-r--r--yt_dlp/extractor/radiobremen.py4
-rw-r--r--yt_dlp/extractor/radiocanada.py4
-rw-r--r--yt_dlp/extractor/radiode.py2
-rw-r--r--yt_dlp/extractor/radiofrance.py3
-rw-r--r--yt_dlp/extractor/radiojavan.py2
-rw-r--r--yt_dlp/extractor/radiokapital.py2
-rw-r--r--yt_dlp/extractor/radiozet.py1
-rw-r--r--yt_dlp/extractor/rai.py3
-rw-r--r--yt_dlp/extractor/raywenderlich.py2
-rw-r--r--yt_dlp/extractor/rbmaradio.py3
-rw-r--r--yt_dlp/extractor/rcs.py3
-rw-r--r--yt_dlp/extractor/rcti.py3
-rw-r--r--yt_dlp/extractor/rds.py3
-rw-r--r--yt_dlp/extractor/redbulltv.py4
-rw-r--r--yt_dlp/extractor/redgifs.py1
-rw-r--r--yt_dlp/extractor/redtube.py2
-rw-r--r--yt_dlp/extractor/regiotv.py3
-rw-r--r--yt_dlp/extractor/rentv.py3
-rw-r--r--yt_dlp/extractor/restudy.py3
-rw-r--r--yt_dlp/extractor/reuters.py3
-rw-r--r--yt_dlp/extractor/reverbnation.py2
-rw-r--r--yt_dlp/extractor/rice.py3
-rw-r--r--yt_dlp/extractor/rmcdecouverte.py4
-rw-r--r--yt_dlp/extractor/rockstargames.py3
-rw-r--r--yt_dlp/extractor/rokfin.py1
-rw-r--r--yt_dlp/extractor/roosterteeth.py1
-rw-r--r--yt_dlp/extractor/rottentomatoes.py2
-rw-r--r--yt_dlp/extractor/rozhlas.py3
-rw-r--r--yt_dlp/extractor/rtbf.py3
-rw-r--r--yt_dlp/extractor/rte.py3
-rw-r--r--yt_dlp/extractor/rtl2.py3
-rw-r--r--yt_dlp/extractor/rtlnl.py3
-rw-r--r--yt_dlp/extractor/rtnews.py3
-rw-r--r--yt_dlp/extractor/rtp.py3
-rw-r--r--yt_dlp/extractor/rtrfm.py2
-rw-r--r--yt_dlp/extractor/rts.py3
-rw-r--r--yt_dlp/extractor/rtve.py3
-rw-r--r--yt_dlp/extractor/rtvnh.py3
-rw-r--r--yt_dlp/extractor/rtvs.py3
-rw-r--r--yt_dlp/extractor/ruhd.py3
-rw-r--r--yt_dlp/extractor/rule34video.py2
-rw-r--r--yt_dlp/extractor/rumble.py3
-rw-r--r--yt_dlp/extractor/rutube.py3
-rw-r--r--yt_dlp/extractor/rutv.py3
-rw-r--r--yt_dlp/extractor/ruutu.py3
-rw-r--r--yt_dlp/extractor/ruv.py3
-rw-r--r--yt_dlp/extractor/safari.py3
-rw-r--r--yt_dlp/extractor/saitosan.py4
-rw-r--r--yt_dlp/extractor/samplefocus.py3
-rw-r--r--yt_dlp/extractor/sapo.py3
-rw-r--r--yt_dlp/extractor/savefrom.py3
-rw-r--r--yt_dlp/extractor/sbs.py3
-rw-r--r--yt_dlp/extractor/screencast.py3
-rw-r--r--yt_dlp/extractor/screencastomatic.py3
-rw-r--r--yt_dlp/extractor/scrippsnetworks.py3
-rw-r--r--yt_dlp/extractor/scte.py2
-rw-r--r--yt_dlp/extractor/seeker.py3
-rw-r--r--yt_dlp/extractor/senategov.py3
-rw-r--r--yt_dlp/extractor/sendtonews.py3
-rw-r--r--yt_dlp/extractor/servus.py3
-rw-r--r--yt_dlp/extractor/sevenplus.py3
-rw-r--r--yt_dlp/extractor/sexu.py2
-rw-r--r--yt_dlp/extractor/seznamzpravy.py3
-rw-r--r--yt_dlp/extractor/shahid.py3
-rw-r--r--yt_dlp/extractor/shared.py2
-rw-r--r--yt_dlp/extractor/shemaroome.py3
-rw-r--r--yt_dlp/extractor/showroomlive.py3
-rw-r--r--yt_dlp/extractor/simplecast.py3
-rw-r--r--yt_dlp/extractor/sina.py4
-rw-r--r--yt_dlp/extractor/sixplay.py4
-rw-r--r--yt_dlp/extractor/skeb.py3
-rw-r--r--yt_dlp/extractor/sky.py3
-rw-r--r--yt_dlp/extractor/skyit.py3
-rw-r--r--yt_dlp/extractor/skylinewebcams.py3
-rw-r--r--yt_dlp/extractor/skynewsarabia.py3
-rw-r--r--yt_dlp/extractor/skynewsau.py3
-rw-r--r--yt_dlp/extractor/slideshare.py2
-rw-r--r--yt_dlp/extractor/slideslive.py3
-rw-r--r--yt_dlp/extractor/slutload.py2
-rw-r--r--yt_dlp/extractor/snotr.py4
-rw-r--r--yt_dlp/extractor/sohu.py3
-rw-r--r--yt_dlp/extractor/sonyliv.py3
-rw-r--r--yt_dlp/extractor/soundcloud.py3
-rw-r--r--yt_dlp/extractor/soundgasm.py3
-rw-r--r--yt_dlp/extractor/southpark.py3
-rw-r--r--yt_dlp/extractor/sovietscloset.py3
-rw-r--r--yt_dlp/extractor/spankbang.py2
-rw-r--r--yt_dlp/extractor/spankwire.py2
-rw-r--r--yt_dlp/extractor/spiegel.py3
-rw-r--r--yt_dlp/extractor/spiegeltv.py2
-rw-r--r--yt_dlp/extractor/spike.py2
-rw-r--r--yt_dlp/extractor/sport5.py4
-rw-r--r--yt_dlp/extractor/sportbox.py3
-rw-r--r--yt_dlp/extractor/sportdeutschland.py3
-rw-r--r--yt_dlp/extractor/spotify.py3
-rw-r--r--yt_dlp/extractor/spreaker.py3
-rw-r--r--yt_dlp/extractor/springboardplatform.py3
-rw-r--r--yt_dlp/extractor/sprout.py3
-rw-r--r--yt_dlp/extractor/srgssr.py4
-rw-r--r--yt_dlp/extractor/srmediathek.py3
-rw-r--r--yt_dlp/extractor/stanfordoc.py2
-rw-r--r--yt_dlp/extractor/startv.py3
-rw-r--r--yt_dlp/extractor/steam.py2
-rw-r--r--yt_dlp/extractor/stitcher.py2
-rw-r--r--yt_dlp/extractor/storyfire.py3
-rw-r--r--yt_dlp/extractor/streamable.py3
-rw-r--r--yt_dlp/extractor/streamanity.py3
-rw-r--r--yt_dlp/extractor/streamcloud.py3
-rw-r--r--yt_dlp/extractor/streamcz.py1
-rw-r--r--yt_dlp/extractor/streamff.py1
-rw-r--r--yt_dlp/extractor/streetvoice.py3
-rw-r--r--yt_dlp/extractor/stretchinternet.py2
-rw-r--r--yt_dlp/extractor/stripchat.py3
-rw-r--r--yt_dlp/extractor/stv.py4
-rw-r--r--yt_dlp/extractor/sunporno.py2
-rw-r--r--yt_dlp/extractor/sverigesradio.py3
-rw-r--r--yt_dlp/extractor/svt.py3
-rw-r--r--yt_dlp/extractor/swrmediathek.py3
-rw-r--r--yt_dlp/extractor/syfy.py2
-rw-r--r--yt_dlp/extractor/sztvhu.py3
-rw-r--r--yt_dlp/extractor/tagesschau.py3
-rw-r--r--yt_dlp/extractor/tass.py3
-rw-r--r--yt_dlp/extractor/tastytrade.py2
-rw-r--r--yt_dlp/extractor/tbs.py3
-rw-r--r--yt_dlp/extractor/tdslifeway.py2
-rw-r--r--yt_dlp/extractor/teachable.py2
-rw-r--r--yt_dlp/extractor/teachertube.py3
-rw-r--r--yt_dlp/extractor/teachingchannel.py2
-rw-r--r--yt_dlp/extractor/teamcoco.py3
-rw-r--r--yt_dlp/extractor/teamtreehouse.py3
-rw-r--r--yt_dlp/extractor/techtalks.py2
-rw-r--r--yt_dlp/extractor/tele13.py3
-rw-r--r--yt_dlp/extractor/tele5.py3
-rw-r--r--yt_dlp/extractor/telebruxelles.py3
-rw-r--r--yt_dlp/extractor/telecinco.py3
-rw-r--r--yt_dlp/extractor/telegraaf.py3
-rw-r--r--yt_dlp/extractor/telemb.py3
-rw-r--r--yt_dlp/extractor/telemundo.py3
-rw-r--r--yt_dlp/extractor/telequebec.py3
-rw-r--r--yt_dlp/extractor/teletask.py2
-rw-r--r--yt_dlp/extractor/telewebion.py3
-rw-r--r--yt_dlp/extractor/tennistv.py3
-rw-r--r--yt_dlp/extractor/tenplay.py3
-rw-r--r--yt_dlp/extractor/testurl.py2
-rw-r--r--yt_dlp/extractor/tf1.py3
-rw-r--r--yt_dlp/extractor/tfo.py3
-rw-r--r--yt_dlp/extractor/theintercept.py3
-rw-r--r--yt_dlp/extractor/theplatform.py3
-rw-r--r--yt_dlp/extractor/thestar.py3
-rw-r--r--yt_dlp/extractor/thesun.py2
-rw-r--r--yt_dlp/extractor/theta.py3
-rw-r--r--yt_dlp/extractor/theweatherchannel.py3
-rw-r--r--yt_dlp/extractor/thisamericanlife.py2
-rw-r--r--yt_dlp/extractor/thisav.py4
-rw-r--r--yt_dlp/extractor/thisoldhouse.py3
-rw-r--r--yt_dlp/extractor/threeqsdn.py2
-rw-r--r--yt_dlp/extractor/threespeak.py3
-rw-r--r--yt_dlp/extractor/tiktok.py3
-rw-r--r--yt_dlp/extractor/tinypic.py2
-rw-r--r--yt_dlp/extractor/tmz.py3
-rw-r--r--yt_dlp/extractor/tnaflix.py2
-rw-r--r--yt_dlp/extractor/toggle.py3
-rw-r--r--yt_dlp/extractor/tokentube.py3
-rw-r--r--yt_dlp/extractor/tonline.py3
-rw-r--r--yt_dlp/extractor/toongoggles.py4
-rw-r--r--yt_dlp/extractor/toutv.py3
-rw-r--r--yt_dlp/extractor/toypics.py3
-rw-r--r--yt_dlp/extractor/traileraddict.py2
-rw-r--r--yt_dlp/extractor/trilulilu.py3
-rw-r--r--yt_dlp/extractor/trovo.py3
-rw-r--r--yt_dlp/extractor/trueid.py3
-rw-r--r--yt_dlp/extractor/trunews.py2
-rw-r--r--yt_dlp/extractor/trutv.py4
-rw-r--r--yt_dlp/extractor/tube8.py2
-rw-r--r--yt_dlp/extractor/tubitv.py3
-rw-r--r--yt_dlp/extractor/tudou.py4
-rw-r--r--yt_dlp/extractor/tumblr.py4
-rw-r--r--yt_dlp/extractor/tunein.py3
-rw-r--r--yt_dlp/extractor/tunepk.py2
-rw-r--r--yt_dlp/extractor/turbo.py3
-rw-r--r--yt_dlp/extractor/turner.py3
-rw-r--r--yt_dlp/extractor/tv2.py3
-rw-r--r--yt_dlp/extractor/tv2dk.py3
-rw-r--r--yt_dlp/extractor/tv2hu.py2
-rw-r--r--yt_dlp/extractor/tv4.py3
-rw-r--r--yt_dlp/extractor/tv5mondeplus.py3
-rw-r--r--yt_dlp/extractor/tv5unis.py4
-rw-r--r--yt_dlp/extractor/tva.py3
-rw-r--r--yt_dlp/extractor/tvanouvelles.py3
-rw-r--r--yt_dlp/extractor/tvc.py3
-rw-r--r--yt_dlp/extractor/tver.py3
-rw-r--r--yt_dlp/extractor/tvigle.py4
-rw-r--r--yt_dlp/extractor/tvland.py3
-rw-r--r--yt_dlp/extractor/tvn24.py3
-rw-r--r--yt_dlp/extractor/tvnet.py3
-rw-r--r--yt_dlp/extractor/tvnoe.py3
-rw-r--r--yt_dlp/extractor/tvnow.py3
-rw-r--r--yt_dlp/extractor/tvopengr.py3
-rw-r--r--yt_dlp/extractor/tvp.py3
-rw-r--r--yt_dlp/extractor/tvplay.py3
-rw-r--r--yt_dlp/extractor/tvplayer.py3
-rw-r--r--yt_dlp/extractor/tweakers.py2
-rw-r--r--yt_dlp/extractor/twentyfourvideo.py4
-rw-r--r--yt_dlp/extractor/twentymin.py3
-rw-r--r--yt_dlp/extractor/twentythreevideo.py3
-rw-r--r--yt_dlp/extractor/twitcasting.py3
-rw-r--r--yt_dlp/extractor/twitch.py3
-rw-r--r--yt_dlp/extractor/twitter.py3
-rw-r--r--yt_dlp/extractor/udemy.py2
-rw-r--r--yt_dlp/extractor/udn.py3
-rw-r--r--yt_dlp/extractor/ufctv.py3
-rw-r--r--yt_dlp/extractor/ukcolumn.py2
-rw-r--r--yt_dlp/extractor/uktvplay.py3
-rw-r--r--yt_dlp/extractor/umg.py3
-rw-r--r--yt_dlp/extractor/unistra.py2
-rw-r--r--yt_dlp/extractor/unity.py2
-rw-r--r--yt_dlp/extractor/uol.py3
-rw-r--r--yt_dlp/extractor/uplynk.py3
-rw-r--r--yt_dlp/extractor/urort.py3
-rw-r--r--yt_dlp/extractor/urplay.py3
-rw-r--r--yt_dlp/extractor/usanetwork.py3
-rw-r--r--yt_dlp/extractor/usatoday.py3
-rw-r--r--yt_dlp/extractor/ustream.py2
-rw-r--r--yt_dlp/extractor/ustudio.py3
-rw-r--r--yt_dlp/extractor/utreon.py3
-rw-r--r--yt_dlp/extractor/varzesh3.py3
-rw-r--r--yt_dlp/extractor/vbox7.py3
-rw-r--r--yt_dlp/extractor/veehd.py2
-rw-r--r--yt_dlp/extractor/veo.py3
-rw-r--r--yt_dlp/extractor/veoh.py2
-rw-r--r--yt_dlp/extractor/vesti.py3
-rw-r--r--yt_dlp/extractor/vevo.py2
-rw-r--r--yt_dlp/extractor/vgtv.py3
-rw-r--r--yt_dlp/extractor/vh1.py3
-rw-r--r--yt_dlp/extractor/vice.py3
-rw-r--r--yt_dlp/extractor/vidbit.py2
-rw-r--r--yt_dlp/extractor/viddler.py3
-rw-r--r--yt_dlp/extractor/videa.py3
-rw-r--r--yt_dlp/extractor/videocampus_sachsen.py1
-rw-r--r--yt_dlp/extractor/videodetective.py2
-rw-r--r--yt_dlp/extractor/videofyme.py2
-rw-r--r--yt_dlp/extractor/videomore.py3
-rw-r--r--yt_dlp/extractor/videopress.py3
-rw-r--r--yt_dlp/extractor/vidio.py4
-rw-r--r--yt_dlp/extractor/vidlii.py3
-rw-r--r--yt_dlp/extractor/vidzi.py3
-rw-r--r--yt_dlp/extractor/vier.py3
-rw-r--r--yt_dlp/extractor/viewlift.py2
-rw-r--r--yt_dlp/extractor/viidea.py2
-rw-r--r--yt_dlp/extractor/viki.py2
-rw-r--r--yt_dlp/extractor/vimeo.py3
-rw-r--r--yt_dlp/extractor/vimm.py1
-rw-r--r--yt_dlp/extractor/vimple.py2
-rw-r--r--yt_dlp/extractor/vine.py4
-rw-r--r--yt_dlp/extractor/viqeo.py3
-rw-r--r--yt_dlp/extractor/viu.py3
-rw-r--r--yt_dlp/extractor/vk.py3
-rw-r--r--yt_dlp/extractor/vlive.py3
-rw-r--r--yt_dlp/extractor/vodlocker.py3
-rw-r--r--yt_dlp/extractor/vodpl.py3
-rw-r--r--yt_dlp/extractor/vodplatform.py3
-rw-r--r--yt_dlp/extractor/voicerepublic.py2
-rw-r--r--yt_dlp/extractor/voicy.py3
-rw-r--r--yt_dlp/extractor/voot.py3
-rw-r--r--yt_dlp/extractor/voxmedia.py3
-rw-r--r--yt_dlp/extractor/vrak.py3
-rw-r--r--yt_dlp/extractor/vrt.py4
-rw-r--r--yt_dlp/extractor/vrv.py3
-rw-r--r--yt_dlp/extractor/vshare.py3
-rw-r--r--yt_dlp/extractor/vtm.py3
-rw-r--r--yt_dlp/extractor/vuclip.py2
-rw-r--r--yt_dlp/extractor/vupload.py3
-rw-r--r--yt_dlp/extractor/vvvvid.py3
-rw-r--r--yt_dlp/extractor/vyborymos.py3
-rw-r--r--yt_dlp/extractor/vzaar.py3
-rw-r--r--yt_dlp/extractor/wakanim.py3
-rw-r--r--yt_dlp/extractor/walla.py3
-rw-r--r--yt_dlp/extractor/wasdtv.py3
-rw-r--r--yt_dlp/extractor/washingtonpost.py3
-rw-r--r--yt_dlp/extractor/wat.py3
-rw-r--r--yt_dlp/extractor/watchbox.py4
-rw-r--r--yt_dlp/extractor/watchindianporn.py3
-rw-r--r--yt_dlp/extractor/wdr.py3
-rw-r--r--yt_dlp/extractor/webcaster.py3
-rw-r--r--yt_dlp/extractor/webofstories.py3
-rw-r--r--yt_dlp/extractor/weibo.py3
-rw-r--r--yt_dlp/extractor/weiqitv.py3
-rw-r--r--yt_dlp/extractor/whowatch.py3
-rw-r--r--yt_dlp/extractor/willow.py1
-rw-r--r--yt_dlp/extractor/wimtv.py3
-rw-r--r--yt_dlp/extractor/wistia.py2
-rw-r--r--yt_dlp/extractor/worldstarhiphop.py2
-rw-r--r--yt_dlp/extractor/wppilot.py2
-rw-r--r--yt_dlp/extractor/wsj.py3
-rw-r--r--yt_dlp/extractor/wwe.py2
-rw-r--r--yt_dlp/extractor/xbef.py2
-rw-r--r--yt_dlp/extractor/xboxclips.py3
-rw-r--r--yt_dlp/extractor/xfileshare.py3
-rw-r--r--yt_dlp/extractor/xhamster.py2
-rw-r--r--yt_dlp/extractor/xiami.py3
-rw-r--r--yt_dlp/extractor/ximalaya.py4
-rw-r--r--yt_dlp/extractor/xinpianchang.py3
-rw-r--r--yt_dlp/extractor/xminus.py3
-rw-r--r--yt_dlp/extractor/xnxx.py3
-rw-r--r--yt_dlp/extractor/xstream.py3
-rw-r--r--yt_dlp/extractor/xtube.py2
-rw-r--r--yt_dlp/extractor/xuite.py3
-rw-r--r--yt_dlp/extractor/xvideos.py2
-rw-r--r--yt_dlp/extractor/xxxymovies.py3
-rw-r--r--yt_dlp/extractor/yahoo.py3
-rw-r--r--yt_dlp/extractor/yandexdisk.py3
-rw-r--r--yt_dlp/extractor/yandexmusic.py3
-rw-r--r--yt_dlp/extractor/yandexvideo.py3
-rw-r--r--yt_dlp/extractor/yapfiles.py3
-rw-r--r--yt_dlp/extractor/yesjapan.py3
-rw-r--r--yt_dlp/extractor/yinyuetai.py3
-rw-r--r--yt_dlp/extractor/ynet.py3
-rw-r--r--yt_dlp/extractor/youjizz.py3
-rw-r--r--yt_dlp/extractor/youku.py3
-rw-r--r--yt_dlp/extractor/younow.py3
-rw-r--r--yt_dlp/extractor/youporn.py2
-rw-r--r--yt_dlp/extractor/yourporn.py2
-rw-r--r--yt_dlp/extractor/yourupload.py3
-rw-r--r--yt_dlp/extractor/youtube.py62
-rw-r--r--yt_dlp/extractor/zapiks.py3
-rw-r--r--yt_dlp/extractor/zattoo.py3
-rw-r--r--yt_dlp/extractor/zdf.py3
-rw-r--r--yt_dlp/extractor/zee5.py11
-rw-r--r--yt_dlp/extractor/zhihu.py3
-rw-r--r--yt_dlp/extractor/zingmp3.py3
-rw-r--r--yt_dlp/extractor/zoom.py4
-rw-r--r--yt_dlp/extractor/zype.py3
927 files changed, 56 insertions, 2685 deletions
diff --git a/yt_dlp/extractor/abc.py b/yt_dlp/extractor/abc.py
index 6fe195e82..03f10ab23 100644
--- a/yt_dlp/extractor/abc.py
+++ b/yt_dlp/extractor/abc.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import hashlib
import hmac
import re
diff --git a/yt_dlp/extractor/abcnews.py b/yt_dlp/extractor/abcnews.py
index 296b8cec1..a57295b13 100644
--- a/yt_dlp/extractor/abcnews.py
+++ b/yt_dlp/extractor/abcnews.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .amp import AMPIE
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/abcotvs.py b/yt_dlp/extractor/abcotvs.py
index 5bff46634..44a9f8ca5 100644
--- a/yt_dlp/extractor/abcotvs.py
+++ b/yt_dlp/extractor/abcotvs.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/academicearth.py b/yt_dlp/extractor/academicearth.py
index 34095501c..d9691cb5c 100644
--- a/yt_dlp/extractor/academicearth.py
+++ b/yt_dlp/extractor/academicearth.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/acast.py b/yt_dlp/extractor/acast.py
index 63587c5cf..f2f828f8e 100644
--- a/yt_dlp/extractor/acast.py
+++ b/yt_dlp/extractor/acast.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/adn.py b/yt_dlp/extractor/adn.py
index fca6e605d..b47345e3c 100644
--- a/yt_dlp/extractor/adn.py
+++ b/yt_dlp/extractor/adn.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import binascii
import json
diff --git a/yt_dlp/extractor/adobeconnect.py b/yt_dlp/extractor/adobeconnect.py
index e2e6f93f3..8963b128a 100644
--- a/yt_dlp/extractor/adobeconnect.py
+++ b/yt_dlp/extractor/adobeconnect.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_parse_qs,
diff --git a/yt_dlp/extractor/adobepass.py b/yt_dlp/extractor/adobepass.py
index 1292484c6..1bdc8587c 100644
--- a/yt_dlp/extractor/adobepass.py
+++ b/yt_dlp/extractor/adobepass.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
import time
diff --git a/yt_dlp/extractor/adobetv.py b/yt_dlp/extractor/adobetv.py
index 3cfa1ff55..941254243 100644
--- a/yt_dlp/extractor/adobetv.py
+++ b/yt_dlp/extractor/adobetv.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import functools
import re
diff --git a/yt_dlp/extractor/adultswim.py b/yt_dlp/extractor/adultswim.py
index c97cfc161..1368954bc 100644
--- a/yt_dlp/extractor/adultswim.py
+++ b/yt_dlp/extractor/adultswim.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .turner import TurnerBaseIE
diff --git a/yt_dlp/extractor/aenetworks.py b/yt_dlp/extractor/aenetworks.py
index 8025de5a3..86a10f2dc 100644
--- a/yt_dlp/extractor/aenetworks.py
+++ b/yt_dlp/extractor/aenetworks.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .theplatform import ThePlatformIE
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/afreecatv.py b/yt_dlp/extractor/afreecatv.py
index 44bfb8bc2..b0fd158f6 100644
--- a/yt_dlp/extractor/afreecatv.py
+++ b/yt_dlp/extractor/afreecatv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import re
diff --git a/yt_dlp/extractor/airmozilla.py b/yt_dlp/extractor/airmozilla.py
index 9e38136b4..669556b98 100644
--- a/yt_dlp/extractor/airmozilla.py
+++ b/yt_dlp/extractor/airmozilla.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/aliexpress.py b/yt_dlp/extractor/aliexpress.py
index 9722fe9ac..2e83f2eb6 100644
--- a/yt_dlp/extractor/aliexpress.py
+++ b/yt_dlp/extractor/aliexpress.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/aljazeera.py b/yt_dlp/extractor/aljazeera.py
index 7bcdb7afb..124bab0d9 100644
--- a/yt_dlp/extractor/aljazeera.py
+++ b/yt_dlp/extractor/aljazeera.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/allocine.py b/yt_dlp/extractor/allocine.py
index 403a277e9..1f881e2a0 100644
--- a/yt_dlp/extractor/allocine.py
+++ b/yt_dlp/extractor/allocine.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/alphaporno.py b/yt_dlp/extractor/alphaporno.py
index 3a6d99f6b..8d5b472d3 100644
--- a/yt_dlp/extractor/alphaporno.py
+++ b/yt_dlp/extractor/alphaporno.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
parse_iso8601,
diff --git a/yt_dlp/extractor/alsace20tv.py b/yt_dlp/extractor/alsace20tv.py
index 4aae6fe74..d16ab496e 100644
--- a/yt_dlp/extractor/alsace20tv.py
+++ b/yt_dlp/extractor/alsace20tv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/alura.py b/yt_dlp/extractor/alura.py
index d2e2df270..b76ccb2a1 100644
--- a/yt_dlp/extractor/alura.py
+++ b/yt_dlp/extractor/alura.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/amara.py b/yt_dlp/extractor/amara.py
index 61d469574..5018710e0 100644
--- a/yt_dlp/extractor/amara.py
+++ b/yt_dlp/extractor/amara.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .youtube import YoutubeIE
from .vimeo import VimeoIE
diff --git a/yt_dlp/extractor/amazon.py b/yt_dlp/extractor/amazon.py
index 07b1b1861..de4917adc 100644
--- a/yt_dlp/extractor/amazon.py
+++ b/yt_dlp/extractor/amazon.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/amcnetworks.py b/yt_dlp/extractor/amcnetworks.py
index e38e215d3..e04ecf65f 100644
--- a/yt_dlp/extractor/amcnetworks.py
+++ b/yt_dlp/extractor/amcnetworks.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .theplatform import ThePlatformIE
diff --git a/yt_dlp/extractor/americastestkitchen.py b/yt_dlp/extractor/americastestkitchen.py
index 6e6099a03..f5747cf1e 100644
--- a/yt_dlp/extractor/americastestkitchen.py
+++ b/yt_dlp/extractor/americastestkitchen.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/amp.py b/yt_dlp/extractor/amp.py
index 24c684cad..73b72b085 100644
--- a/yt_dlp/extractor/amp.py
+++ b/yt_dlp/extractor/amp.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/animelab.py b/yt_dlp/extractor/animelab.py
index 1c2cc47dd..cd0d77805 100644
--- a/yt_dlp/extractor/animelab.py
+++ b/yt_dlp/extractor/animelab.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/animeondemand.py b/yt_dlp/extractor/animeondemand.py
index 2e674d58f..de49db4ea 100644
--- a/yt_dlp/extractor/animeondemand.py
+++ b/yt_dlp/extractor/animeondemand.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ant1newsgr.py b/yt_dlp/extractor/ant1newsgr.py
index 1075b461e..cd0f36856 100644
--- a/yt_dlp/extractor/ant1newsgr.py
+++ b/yt_dlp/extractor/ant1newsgr.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import urllib.parse
diff --git a/yt_dlp/extractor/anvato.py b/yt_dlp/extractor/anvato.py
index 0d444fc33..28fbd606e 100644
--- a/yt_dlp/extractor/anvato.py
+++ b/yt_dlp/extractor/anvato.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import hashlib
import json
diff --git a/yt_dlp/extractor/anvato_token_generator/__init__.py b/yt_dlp/extractor/anvato_token_generator/__init__.py
index 6e223db9f..6530caf53 100644
--- a/yt_dlp/extractor/anvato_token_generator/__init__.py
+++ b/yt_dlp/extractor/anvato_token_generator/__init__.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .nfl import NFLTokenGenerator
__all__ = [
diff --git a/yt_dlp/extractor/anvato_token_generator/common.py b/yt_dlp/extractor/anvato_token_generator/common.py
index b959a903b..3800b5808 100644
--- a/yt_dlp/extractor/anvato_token_generator/common.py
+++ b/yt_dlp/extractor/anvato_token_generator/common.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
class TokenGenerator:
def generate(self, anvack, mcp_id):
raise NotImplementedError('This method must be implemented by subclasses')
diff --git a/yt_dlp/extractor/anvato_token_generator/nfl.py b/yt_dlp/extractor/anvato_token_generator/nfl.py
index 97a2b245f..9ee4aa002 100644
--- a/yt_dlp/extractor/anvato_token_generator/nfl.py
+++ b/yt_dlp/extractor/anvato_token_generator/nfl.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import TokenGenerator
diff --git a/yt_dlp/extractor/aol.py b/yt_dlp/extractor/aol.py
index 4766a2c77..b67db2adc 100644
--- a/yt_dlp/extractor/aol.py
+++ b/yt_dlp/extractor/aol.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .yahoo import YahooIE
diff --git a/yt_dlp/extractor/apa.py b/yt_dlp/extractor/apa.py
index 1736cdf56..847be6edf 100644
--- a/yt_dlp/extractor/apa.py
+++ b/yt_dlp/extractor/apa.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/aparat.py b/yt_dlp/extractor/aparat.py
index 1057233cf..cd6cd1c79 100644
--- a/yt_dlp/extractor/aparat.py
+++ b/yt_dlp/extractor/aparat.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
get_element_by_id,
diff --git a/yt_dlp/extractor/appleconnect.py b/yt_dlp/extractor/appleconnect.py
index 494f8330c..d00b0f906 100644
--- a/yt_dlp/extractor/appleconnect.py
+++ b/yt_dlp/extractor/appleconnect.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
str_to_int,
diff --git a/yt_dlp/extractor/applepodcasts.py b/yt_dlp/extractor/applepodcasts.py
index 9139ff777..49bbeab82 100644
--- a/yt_dlp/extractor/applepodcasts.py
+++ b/yt_dlp/extractor/applepodcasts.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/appletrailers.py b/yt_dlp/extractor/appletrailers.py
index 8140e332b..6b63f070d 100644
--- a/yt_dlp/extractor/appletrailers.py
+++ b/yt_dlp/extractor/appletrailers.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
import json
diff --git a/yt_dlp/extractor/archiveorg.py b/yt_dlp/extractor/archiveorg.py
index 2ab3c1beb..c85d5297d 100644
--- a/yt_dlp/extractor/archiveorg.py
+++ b/yt_dlp/extractor/archiveorg.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import json
from .common import InfoExtractor
@@ -479,7 +476,7 @@ class YoutubeWebArchiveIE(InfoExtractor):
def _extract_yt_initial_variable(self, webpage, regex, video_id, name):
return self._parse_json(self._search_regex(
- (r'%s\s*%s' % (regex, self._YT_INITIAL_BOUNDARY_RE),
+ (fr'{regex}\s*{self._YT_INITIAL_BOUNDARY_RE}',
regex), webpage, name, default='{}'), video_id, fatal=False)
def _extract_webpage_title(self, webpage):
@@ -597,7 +594,7 @@ class YoutubeWebArchiveIE(InfoExtractor):
response = self._call_cdx_api(
video_id, f'https://www.youtube.com/watch?v={video_id}',
filters=['mimetype:text/html'], collapse=['timestamp:6', 'digest'], query={'matchType': 'prefix'}) or []
- all_captures = sorted([int_or_none(r['timestamp']) for r in response if int_or_none(r['timestamp']) is not None])
+ all_captures = sorted(int_or_none(r['timestamp']) for r in response if int_or_none(r['timestamp']) is not None)
# Prefer the new polymer UI captures as we support extracting more metadata from them
# WBM captures seem to all switch to this layout ~July 2020
diff --git a/yt_dlp/extractor/arcpublishing.py b/yt_dlp/extractor/arcpublishing.py
index 8880e5c95..2e3f3cc5f 100644
--- a/yt_dlp/extractor/arcpublishing.py
+++ b/yt_dlp/extractor/arcpublishing.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ard.py b/yt_dlp/extractor/ard.py
index 7ea339b39..f294679ef 100644
--- a/yt_dlp/extractor/ard.py
+++ b/yt_dlp/extractor/ard.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/arkena.py b/yt_dlp/extractor/arkena.py
index 4f4f457c1..9da2bfd5e 100644
--- a/yt_dlp/extractor/arkena.py
+++ b/yt_dlp/extractor/arkena.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/arnes.py b/yt_dlp/extractor/arnes.py
index 050c252e3..96b134fa0 100644
--- a/yt_dlp/extractor/arnes.py
+++ b/yt_dlp/extractor/arnes.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_parse_qs,
diff --git a/yt_dlp/extractor/arte.py b/yt_dlp/extractor/arte.py
index c2f2c1bd3..443b0d4b9 100644
--- a/yt_dlp/extractor/arte.py
+++ b/yt_dlp/extractor/arte.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/asiancrush.py b/yt_dlp/extractor/asiancrush.py
index 7f1940fca..23f310edb 100644
--- a/yt_dlp/extractor/asiancrush.py
+++ b/yt_dlp/extractor/asiancrush.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import re
diff --git a/yt_dlp/extractor/atresplayer.py b/yt_dlp/extractor/atresplayer.py
index 465af4ed3..39d1f1cc5 100644
--- a/yt_dlp/extractor/atresplayer.py
+++ b/yt_dlp/extractor/atresplayer.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_HTTPError
from ..utils import (
diff --git a/yt_dlp/extractor/atttechchannel.py b/yt_dlp/extractor/atttechchannel.py
index 8f93fb353..6ff4ec0ad 100644
--- a/yt_dlp/extractor/atttechchannel.py
+++ b/yt_dlp/extractor/atttechchannel.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import unified_strdate
diff --git a/yt_dlp/extractor/atvat.py b/yt_dlp/extractor/atvat.py
index 481a09737..2311837e9 100644
--- a/yt_dlp/extractor/atvat.py
+++ b/yt_dlp/extractor/atvat.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import datetime
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/audimedia.py b/yt_dlp/extractor/audimedia.py
index 6bd48ef15..c1c4f67d0 100644
--- a/yt_dlp/extractor/audimedia.py
+++ b/yt_dlp/extractor/audimedia.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/audioboom.py b/yt_dlp/extractor/audioboom.py
index c51837b40..dc19a3874 100644
--- a/yt_dlp/extractor/audioboom.py
+++ b/yt_dlp/extractor/audioboom.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/audiomack.py b/yt_dlp/extractor/audiomack.py
index 19775cf0f..5c4160fe4 100644
--- a/yt_dlp/extractor/audiomack.py
+++ b/yt_dlp/extractor/audiomack.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import time
diff --git a/yt_dlp/extractor/audius.py b/yt_dlp/extractor/audius.py
index fa64995d5..189d1224f 100644
--- a/yt_dlp/extractor/audius.py
+++ b/yt_dlp/extractor/audius.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import random
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/awaan.py b/yt_dlp/extractor/awaan.py
index f5e559c9f..d289f6be3 100644
--- a/yt_dlp/extractor/awaan.py
+++ b/yt_dlp/extractor/awaan.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/aws.py b/yt_dlp/extractor/aws.py
index dccfeaf73..c2b22922b 100644
--- a/yt_dlp/extractor/aws.py
+++ b/yt_dlp/extractor/aws.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import datetime
import hashlib
import hmac
diff --git a/yt_dlp/extractor/azmedien.py b/yt_dlp/extractor/azmedien.py
index 0168340b9..d1686eed6 100644
--- a/yt_dlp/extractor/azmedien.py
+++ b/yt_dlp/extractor/azmedien.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/baidu.py b/yt_dlp/extractor/baidu.py
index 364fd9459..8786d67e0 100644
--- a/yt_dlp/extractor/baidu.py
+++ b/yt_dlp/extractor/baidu.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import unescapeHTML
diff --git a/yt_dlp/extractor/banbye.py b/yt_dlp/extractor/banbye.py
index 3d4d36ec3..92f567c5d 100644
--- a/yt_dlp/extractor/banbye.py
+++ b/yt_dlp/extractor/banbye.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import math
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bandaichannel.py b/yt_dlp/extractor/bandaichannel.py
index f1bcdef7a..2e3233376 100644
--- a/yt_dlp/extractor/bandaichannel.py
+++ b/yt_dlp/extractor/bandaichannel.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .brightcove import BrightcoveNewIE
from ..utils import extract_attributes
diff --git a/yt_dlp/extractor/bandcamp.py b/yt_dlp/extractor/bandcamp.py
index 745055e2d..5863eaeca 100644
--- a/yt_dlp/extractor/bandcamp.py
+++ b/yt_dlp/extractor/bandcamp.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import random
import re
import time
diff --git a/yt_dlp/extractor/bannedvideo.py b/yt_dlp/extractor/bannedvideo.py
index 3db1151f6..ec9bdd8ca 100644
--- a/yt_dlp/extractor/bannedvideo.py
+++ b/yt_dlp/extractor/bannedvideo.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bbc.py b/yt_dlp/extractor/bbc.py
index 5bc8d3110..9cb019a49 100644
--- a/yt_dlp/extractor/bbc.py
+++ b/yt_dlp/extractor/bbc.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import xml.etree.ElementTree
import functools
import itertools
diff --git a/yt_dlp/extractor/beatport.py b/yt_dlp/extractor/beatport.py
index e1cf8b4fe..f71f1f308 100644
--- a/yt_dlp/extractor/beatport.py
+++ b/yt_dlp/extractor/beatport.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/beeg.py b/yt_dlp/extractor/beeg.py
index 717fff3a6..5957e370a 100644
--- a/yt_dlp/extractor/beeg.py
+++ b/yt_dlp/extractor/beeg.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/behindkink.py b/yt_dlp/extractor/behindkink.py
index 2c97f9817..ca4498150 100644
--- a/yt_dlp/extractor/behindkink.py
+++ b/yt_dlp/extractor/behindkink.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import url_basename
diff --git a/yt_dlp/extractor/bellmedia.py b/yt_dlp/extractor/bellmedia.py
index 904c17ed0..8f9849d9b 100644
--- a/yt_dlp/extractor/bellmedia.py
+++ b/yt_dlp/extractor/bellmedia.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bet.py b/yt_dlp/extractor/bet.py
index 2c7144235..6b867d135 100644
--- a/yt_dlp/extractor/bet.py
+++ b/yt_dlp/extractor/bet.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .mtv import MTVServicesInfoExtractor
from ..utils import unified_strdate
diff --git a/yt_dlp/extractor/bfi.py b/yt_dlp/extractor/bfi.py
index 60c8944b5..76f0516a4 100644
--- a/yt_dlp/extractor/bfi.py
+++ b/yt_dlp/extractor/bfi.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bfmtv.py b/yt_dlp/extractor/bfmtv.py
index 501f69d80..48526e38b 100644
--- a/yt_dlp/extractor/bfmtv.py
+++ b/yt_dlp/extractor/bfmtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bibeltv.py b/yt_dlp/extractor/bibeltv.py
index 56c2bfee8..fd20aadad 100644
--- a/yt_dlp/extractor/bibeltv.py
+++ b/yt_dlp/extractor/bibeltv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bigflix.py b/yt_dlp/extractor/bigflix.py
index 28e3e59f6..6b2797ca0 100644
--- a/yt_dlp/extractor/bigflix.py
+++ b/yt_dlp/extractor/bigflix.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bigo.py b/yt_dlp/extractor/bigo.py
index ddf76ac55..f39e15002 100644
--- a/yt_dlp/extractor/bigo.py
+++ b/yt_dlp/extractor/bigo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import ExtractorError, urlencode_postdata
diff --git a/yt_dlp/extractor/bild.py b/yt_dlp/extractor/bild.py
index b8dfbd42b..f3dea33c4 100644
--- a/yt_dlp/extractor/bild.py
+++ b/yt_dlp/extractor/bild.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/bilibili.py b/yt_dlp/extractor/bilibili.py
index a9574758c..eb2dcb024 100644
--- a/yt_dlp/extractor/bilibili.py
+++ b/yt_dlp/extractor/bilibili.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-
import base64
import hashlib
import itertools
diff --git a/yt_dlp/extractor/biobiochiletv.py b/yt_dlp/extractor/biobiochiletv.py
index dc86c57c5..180c9656e 100644
--- a/yt_dlp/extractor/biobiochiletv.py
+++ b/yt_dlp/extractor/biobiochiletv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/biqle.py b/yt_dlp/extractor/biqle.py
index 2b57bade3..3a4234491 100644
--- a/yt_dlp/extractor/biqle.py
+++ b/yt_dlp/extractor/biqle.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .vk import VKIE
from ..compat import compat_b64decode
diff --git a/yt_dlp/extractor/bitchute.py b/yt_dlp/extractor/bitchute.py
index dcae6f4cc..c831092d4 100644
--- a/yt_dlp/extractor/bitchute.py
+++ b/yt_dlp/extractor/bitchute.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import re
diff --git a/yt_dlp/extractor/bitwave.py b/yt_dlp/extractor/bitwave.py
index e6e093f59..bd8eac1f1 100644
--- a/yt_dlp/extractor/bitwave.py
+++ b/yt_dlp/extractor/bitwave.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/blackboardcollaborate.py b/yt_dlp/extractor/blackboardcollaborate.py
index 8ae294198..8f41c897a 100644
--- a/yt_dlp/extractor/blackboardcollaborate.py
+++ b/yt_dlp/extractor/blackboardcollaborate.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import parse_iso8601
diff --git a/yt_dlp/extractor/bleacherreport.py b/yt_dlp/extractor/bleacherreport.py
index d1bf8e829..8d8fabe33 100644
--- a/yt_dlp/extractor/bleacherreport.py
+++ b/yt_dlp/extractor/bleacherreport.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .amp import AMPIE
from ..utils import (
diff --git a/yt_dlp/extractor/blinkx.py b/yt_dlp/extractor/blinkx.py
index d70a3b30f..80531ccad 100644
--- a/yt_dlp/extractor/blinkx.py
+++ b/yt_dlp/extractor/blinkx.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/blogger.py b/yt_dlp/extractor/blogger.py
index dba131cb0..d7aa7f94e 100644
--- a/yt_dlp/extractor/blogger.py
+++ b/yt_dlp/extractor/blogger.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from ..utils import (
diff --git a/yt_dlp/extractor/bloomberg.py b/yt_dlp/extractor/bloomberg.py
index 2fbfad1ba..c0aaeae02 100644
--- a/yt_dlp/extractor/bloomberg.py
+++ b/yt_dlp/extractor/bloomberg.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bokecc.py b/yt_dlp/extractor/bokecc.py
index 6a89d36f4..0c081750e 100644
--- a/yt_dlp/extractor/bokecc.py
+++ b/yt_dlp/extractor/bokecc.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_parse_qs
from ..utils import ExtractorError
diff --git a/yt_dlp/extractor/bongacams.py b/yt_dlp/extractor/bongacams.py
index 4e346e7b6..cbef0fc53 100644
--- a/yt_dlp/extractor/bongacams.py
+++ b/yt_dlp/extractor/bongacams.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/bostonglobe.py b/yt_dlp/extractor/bostonglobe.py
index 57882fbee..92f8ea2cb 100644
--- a/yt_dlp/extractor/bostonglobe.py
+++ b/yt_dlp/extractor/bostonglobe.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/box.py b/yt_dlp/extractor/box.py
index 8214086a6..5842de88a 100644
--- a/yt_dlp/extractor/box.py
+++ b/yt_dlp/extractor/box.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bpb.py b/yt_dlp/extractor/bpb.py
index 98491975c..388f1f94f 100644
--- a/yt_dlp/extractor/bpb.py
+++ b/yt_dlp/extractor/bpb.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/br.py b/yt_dlp/extractor/br.py
index 0155827d8..faac442e8 100644
--- a/yt_dlp/extractor/br.py
+++ b/yt_dlp/extractor/br.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/bravotv.py b/yt_dlp/extractor/bravotv.py
index 139d51c09..d4895848e 100644
--- a/yt_dlp/extractor/bravotv.py
+++ b/yt_dlp/extractor/bravotv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .adobepass import AdobePassIE
diff --git a/yt_dlp/extractor/breakcom.py b/yt_dlp/extractor/breakcom.py
index f38789f99..51c8c822f 100644
--- a/yt_dlp/extractor/breakcom.py
+++ b/yt_dlp/extractor/breakcom.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from .youtube import YoutubeIE
from ..utils import (
diff --git a/yt_dlp/extractor/breitbart.py b/yt_dlp/extractor/breitbart.py
index e029aa627..a2b04fcce 100644
--- a/yt_dlp/extractor/breitbart.py
+++ b/yt_dlp/extractor/breitbart.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/brightcove.py b/yt_dlp/extractor/brightcove.py
index 60c853898..936c34e15 100644
--- a/yt_dlp/extractor/brightcove.py
+++ b/yt_dlp/extractor/brightcove.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import re
import struct
diff --git a/yt_dlp/extractor/businessinsider.py b/yt_dlp/extractor/businessinsider.py
index 73a57b1e4..4b3f5e68b 100644
--- a/yt_dlp/extractor/businessinsider.py
+++ b/yt_dlp/extractor/businessinsider.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .jwplatform import JWPlatformIE
diff --git a/yt_dlp/extractor/buzzfeed.py b/yt_dlp/extractor/buzzfeed.py
index ec411091e..1b4cba63e 100644
--- a/yt_dlp/extractor/buzzfeed.py
+++ b/yt_dlp/extractor/buzzfeed.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/byutv.py b/yt_dlp/extractor/byutv.py
index f4d5086ed..eca2e294e 100644
--- a/yt_dlp/extractor/byutv.py
+++ b/yt_dlp/extractor/byutv.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/c56.py b/yt_dlp/extractor/c56.py
index a853c530c..1d98ea598 100644
--- a/yt_dlp/extractor/c56.py
+++ b/yt_dlp/extractor/c56.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import js_to_json
diff --git a/yt_dlp/extractor/cableav.py b/yt_dlp/extractor/cableav.py
index 77efdf45a..3200b5677 100644
--- a/yt_dlp/extractor/cableav.py
+++ b/yt_dlp/extractor/cableav.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/callin.py b/yt_dlp/extractor/callin.py
index 1f3b7cfff..fc5da7028 100644
--- a/yt_dlp/extractor/callin.py
+++ b/yt_dlp/extractor/callin.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
from ..utils import (
traverse_obj,
diff --git a/yt_dlp/extractor/caltrans.py b/yt_dlp/extractor/caltrans.py
index 9ac740f7e..e52dfb170 100644
--- a/yt_dlp/extractor/caltrans.py
+++ b/yt_dlp/extractor/caltrans.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/cam4.py b/yt_dlp/extractor/cam4.py
index 2a3931fd0..4256b28e0 100644
--- a/yt_dlp/extractor/cam4.py
+++ b/yt_dlp/extractor/cam4.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/camdemy.py b/yt_dlp/extractor/camdemy.py
index 8f0c6c545..c7079e422 100644
--- a/yt_dlp/extractor/camdemy.py
+++ b/yt_dlp/extractor/camdemy.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/cammodels.py b/yt_dlp/extractor/cammodels.py
index 3dc19377b..32fbffcc2 100644
--- a/yt_dlp/extractor/cammodels.py
+++ b/yt_dlp/extractor/cammodels.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/camwithher.py b/yt_dlp/extractor/camwithher.py
index bbc5205fd..a0b3749ed 100644
--- a/yt_dlp/extractor/camwithher.py
+++ b/yt_dlp/extractor/camwithher.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/canalalpha.py b/yt_dlp/extractor/canalalpha.py
index 0365cb2f6..f2ec9355f 100644
--- a/yt_dlp/extractor/canalalpha.py
+++ b/yt_dlp/extractor/canalalpha.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/canalc2.py b/yt_dlp/extractor/canalc2.py
index 407cc8084..c9bb94c40 100644
--- a/yt_dlp/extractor/canalc2.py
+++ b/yt_dlp/extractor/canalc2.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/canalplus.py b/yt_dlp/extractor/canalplus.py
index 211ea267a..b184398e2 100644
--- a/yt_dlp/extractor/canalplus.py
+++ b/yt_dlp/extractor/canalplus.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
# ExtractorError,
diff --git a/yt_dlp/extractor/canvas.py b/yt_dlp/extractor/canvas.py
index 8b9903774..8eff4a57c 100644
--- a/yt_dlp/extractor/canvas.py
+++ b/yt_dlp/extractor/canvas.py
@@ -1,4 +1,3 @@
-from __future__ import unicode_literals
import json
diff --git a/yt_dlp/extractor/carambatv.py b/yt_dlp/extractor/carambatv.py
index 7e5cc90fb..087ea8aa0 100644
--- a/yt_dlp/extractor/carambatv.py
+++ b/yt_dlp/extractor/carambatv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/cartoonnetwork.py b/yt_dlp/extractor/cartoonnetwork.py
index 48b33617f..4dd7ac46d 100644
--- a/yt_dlp/extractor/cartoonnetwork.py
+++ b/yt_dlp/extractor/cartoonnetwork.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .turner import TurnerBaseIE
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/cbc.py b/yt_dlp/extractor/cbc.py
index fba8bf965..cac3f1e9d 100644
--- a/yt_dlp/extractor/cbc.py
+++ b/yt_dlp/extractor/cbc.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import json
import base64
diff --git a/yt_dlp/extractor/cbs.py b/yt_dlp/extractor/cbs.py
index 2af36ea82..e32539c9e 100644
--- a/yt_dlp/extractor/cbs.py
+++ b/yt_dlp/extractor/cbs.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .theplatform import ThePlatformFeedIE
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/cbsinteractive.py b/yt_dlp/extractor/cbsinteractive.py
index 9d4f75435..7abeecf78 100644
--- a/yt_dlp/extractor/cbsinteractive.py
+++ b/yt_dlp/extractor/cbsinteractive.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .cbs import CBSIE
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/cbslocal.py b/yt_dlp/extractor/cbslocal.py
index 3b7e1a8b9..c6495c95f 100644
--- a/yt_dlp/extractor/cbslocal.py
+++ b/yt_dlp/extractor/cbslocal.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .anvato import AnvatoIE
from .sendtonews import SendtoNewsIE
from ..compat import compat_urlparse
diff --git a/yt_dlp/extractor/cbsnews.py b/yt_dlp/extractor/cbsnews.py
index 1285ed65e..76925b4f9 100644
--- a/yt_dlp/extractor/cbsnews.py
+++ b/yt_dlp/extractor/cbsnews.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import zlib
diff --git a/yt_dlp/extractor/cbssports.py b/yt_dlp/extractor/cbssports.py
index b8a6e5967..56a255149 100644
--- a/yt_dlp/extractor/cbssports.py
+++ b/yt_dlp/extractor/cbssports.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
# from .cbs import CBSBaseIE
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/ccc.py b/yt_dlp/extractor/ccc.py
index 36e6dff72..b11e1f74e 100644
--- a/yt_dlp/extractor/ccc.py
+++ b/yt_dlp/extractor/ccc.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/ccma.py b/yt_dlp/extractor/ccma.py
index 9dbaabfa0..ca739f8a1 100644
--- a/yt_dlp/extractor/ccma.py
+++ b/yt_dlp/extractor/ccma.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/cctv.py b/yt_dlp/extractor/cctv.py
index 0ed5f327b..623cbb342 100644
--- a/yt_dlp/extractor/cctv.py
+++ b/yt_dlp/extractor/cctv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/cda.py b/yt_dlp/extractor/cda.py
index 72c47050f..9b257bee9 100644
--- a/yt_dlp/extractor/cda.py
+++ b/yt_dlp/extractor/cda.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import codecs
import re
import json
diff --git a/yt_dlp/extractor/ceskatelevize.py b/yt_dlp/extractor/ceskatelevize.py
index ddf66b207..331b350f1 100644
--- a/yt_dlp/extractor/ceskatelevize.py
+++ b/yt_dlp/extractor/ceskatelevize.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/cgtn.py b/yt_dlp/extractor/cgtn.py
index 89f173887..aaafa02d1 100644
--- a/yt_dlp/extractor/cgtn.py
+++ b/yt_dlp/extractor/cgtn.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
try_get,
diff --git a/yt_dlp/extractor/channel9.py b/yt_dlp/extractor/channel9.py
index 90024dbba..90a1ab2be 100644
--- a/yt_dlp/extractor/channel9.py
+++ b/yt_dlp/extractor/channel9.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/charlierose.py b/yt_dlp/extractor/charlierose.py
index 42c9af263..27f8b33e5 100644
--- a/yt_dlp/extractor/charlierose.py
+++ b/yt_dlp/extractor/charlierose.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import remove_end
diff --git a/yt_dlp/extractor/chaturbate.py b/yt_dlp/extractor/chaturbate.py
index 8da51f919..d39210bf7 100644
--- a/yt_dlp/extractor/chaturbate.py
+++ b/yt_dlp/extractor/chaturbate.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/chilloutzone.py b/yt_dlp/extractor/chilloutzone.py
index fd5202b9e..1a2f77c4e 100644
--- a/yt_dlp/extractor/chilloutzone.py
+++ b/yt_dlp/extractor/chilloutzone.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/chingari.py b/yt_dlp/extractor/chingari.py
index e6841fb8b..40613cfa3 100644
--- a/yt_dlp/extractor/chingari.py
+++ b/yt_dlp/extractor/chingari.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import json
diff --git a/yt_dlp/extractor/chirbit.py b/yt_dlp/extractor/chirbit.py
index 8d75cdf19..452711d97 100644
--- a/yt_dlp/extractor/chirbit.py
+++ b/yt_dlp/extractor/chirbit.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/cinchcast.py b/yt_dlp/extractor/cinchcast.py
index b861d54b0..393df3698 100644
--- a/yt_dlp/extractor/cinchcast.py
+++ b/yt_dlp/extractor/cinchcast.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
unified_strdate,
diff --git a/yt_dlp/extractor/cinemax.py b/yt_dlp/extractor/cinemax.py
index 2c3ff8d4f..54cab2285 100644
--- a/yt_dlp/extractor/cinemax.py
+++ b/yt_dlp/extractor/cinemax.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .hbo import HBOBaseIE
diff --git a/yt_dlp/extractor/ciscolive.py b/yt_dlp/extractor/ciscolive.py
index 349c5eb50..066857817 100644
--- a/yt_dlp/extractor/ciscolive.py
+++ b/yt_dlp/extractor/ciscolive.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ciscowebex.py b/yt_dlp/extractor/ciscowebex.py
index 882dae91b..e1aae9bda 100644
--- a/yt_dlp/extractor/ciscowebex.py
+++ b/yt_dlp/extractor/ciscowebex.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/cjsw.py b/yt_dlp/extractor/cjsw.py
index 1dea0d7c7..c37a3b848 100644
--- a/yt_dlp/extractor/cjsw.py
+++ b/yt_dlp/extractor/cjsw.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/cliphunter.py b/yt_dlp/extractor/cliphunter.py
index f2ca7a337..7e5fd3175 100644
--- a/yt_dlp/extractor/cliphunter.py
+++ b/yt_dlp/extractor/cliphunter.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/clippit.py b/yt_dlp/extractor/clippit.py
index a1a7a774c..006a713b2 100644
--- a/yt_dlp/extractor/clippit.py
+++ b/yt_dlp/extractor/clippit.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
parse_iso8601,
diff --git a/yt_dlp/extractor/cliprs.py b/yt_dlp/extractor/cliprs.py
index d55b26d59..567f77b94 100644
--- a/yt_dlp/extractor/cliprs.py
+++ b/yt_dlp/extractor/cliprs.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .onet import OnetBaseIE
diff --git a/yt_dlp/extractor/clipsyndicate.py b/yt_dlp/extractor/clipsyndicate.py
index 6cdb42f5a..606444321 100644
--- a/yt_dlp/extractor/clipsyndicate.py
+++ b/yt_dlp/extractor/clipsyndicate.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
find_xpath_attr,
diff --git a/yt_dlp/extractor/closertotruth.py b/yt_dlp/extractor/closertotruth.py
index 517e121e0..e78e26a11 100644
--- a/yt_dlp/extractor/closertotruth.py
+++ b/yt_dlp/extractor/closertotruth.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/cloudflarestream.py b/yt_dlp/extractor/cloudflarestream.py
index 2fdcfbb3a..0333d5def 100644
--- a/yt_dlp/extractor/cloudflarestream.py
+++ b/yt_dlp/extractor/cloudflarestream.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import re
diff --git a/yt_dlp/extractor/cloudy.py b/yt_dlp/extractor/cloudy.py
index 85ca20ecc..848643e26 100644
--- a/yt_dlp/extractor/cloudy.py
+++ b/yt_dlp/extractor/cloudy.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
str_to_int,
diff --git a/yt_dlp/extractor/clubic.py b/yt_dlp/extractor/clubic.py
index 98f9cb596..ce8621296 100644
--- a/yt_dlp/extractor/clubic.py
+++ b/yt_dlp/extractor/clubic.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/clyp.py b/yt_dlp/extractor/clyp.py
index e6b2ac4d4..c64726ca2 100644
--- a/yt_dlp/extractor/clyp.py
+++ b/yt_dlp/extractor/clyp.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
float_or_none,
diff --git a/yt_dlp/extractor/cmt.py b/yt_dlp/extractor/cmt.py
index a4ddb9160..4eec066dd 100644
--- a/yt_dlp/extractor/cmt.py
+++ b/yt_dlp/extractor/cmt.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .mtv import MTVIE
# TODO Remove - Reason: Outdated Site
diff --git a/yt_dlp/extractor/cnbc.py b/yt_dlp/extractor/cnbc.py
index da3730cc8..68fd025b7 100644
--- a/yt_dlp/extractor/cnbc.py
+++ b/yt_dlp/extractor/cnbc.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import smuggle_url
diff --git a/yt_dlp/extractor/cnn.py b/yt_dlp/extractor/cnn.py
index af11d95b4..96482eaf5 100644
--- a/yt_dlp/extractor/cnn.py
+++ b/yt_dlp/extractor/cnn.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from .turner import TurnerBaseIE
from ..utils import url_basename
diff --git a/yt_dlp/extractor/comedycentral.py b/yt_dlp/extractor/comedycentral.py
index 5a12ab5e6..05fc9f2b5 100644
--- a/yt_dlp/extractor/comedycentral.py
+++ b/yt_dlp/extractor/comedycentral.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .mtv import MTVServicesInfoExtractor
diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py
index 8da21a3dc..ef22c7876 100644
--- a/yt_dlp/extractor/common.py
+++ b/yt_dlp/extractor/common.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import collections
import xml.etree.ElementTree
@@ -92,7 +89,7 @@ from ..utils import (
)
-class InfoExtractor(object):
+class InfoExtractor:
"""Information Extractor class.
Information extractors are the classes that, given a URL, extract
@@ -628,7 +625,7 @@ class InfoExtractor(object):
if country:
self._x_forwarded_for_ip = GeoUtils.random_ipv4(country)
self._downloader.write_debug(
- 'Using fake IP %s (%s) as X-Forwarded-For' % (self._x_forwarded_for_ip, country.upper()))
+ f'Using fake IP {self._x_forwarded_for_ip} ({country.upper()}) as X-Forwarded-For')
def extract(self, url):
"""Extracts URL information and returns it in list of dicts."""
@@ -741,9 +738,9 @@ class InfoExtractor(object):
self.report_download_webpage(video_id)
elif note is not False:
if video_id is None:
- self.to_screen('%s' % (note,))
+ self.to_screen(str(note))
else:
- self.to_screen('%s: %s' % (video_id, note))
+ self.to_screen(f'{video_id}: {note}')
# Some sites check X-Forwarded-For HTTP header in order to figure out
# the origin of the client behind proxy. This allows bypassing geo
@@ -779,7 +776,7 @@ class InfoExtractor(object):
if errnote is None:
errnote = 'Unable to download webpage'
- errmsg = '%s: %s' % (errnote, error_to_compat_str(err))
+ errmsg = f'{errnote}: {error_to_compat_str(err)}'
if fatal:
raise ExtractorError(errmsg, cause=err)
else:
@@ -860,7 +857,7 @@ class InfoExtractor(object):
dump = base64.b64encode(webpage_bytes).decode('ascii')
self._downloader.to_screen(dump)
if self.get_param('write_pages', False):
- basen = '%s_%s' % (video_id, urlh.geturl())
+ basen = f'{video_id}_{urlh.geturl()}'
trim_length = self.get_param('trim_file_name') or 240
if len(basen) > trim_length:
h = '___' + hashlib.md5(basen.encode('utf-8')).hexdigest()
@@ -1098,10 +1095,10 @@ class InfoExtractor(object):
def to_screen(self, msg, *args, **kwargs):
"""Print msg to screen, prefixing it with '[ie_name]'"""
- self._downloader.to_screen('[%s] %s' % (self.IE_NAME, msg), *args, **kwargs)
+ self._downloader.to_screen(f'[{self.IE_NAME}] {msg}', *args, **kwargs)
def write_debug(self, msg, *args, **kwargs):
- self._downloader.write_debug('[%s] %s' % (self.IE_NAME, msg), *args, **kwargs)
+ self._downloader.write_debug(f'[{self.IE_NAME}] {msg}', *args, **kwargs)
def get_param(self, name, default=None, *args, **kwargs):
if self._downloader:
@@ -1138,7 +1135,7 @@ class InfoExtractor(object):
method = 'any' if self.supports_login() else 'cookies'
if method is not None:
assert method in self._LOGIN_HINTS, 'Invalid login method'
- msg = '%s. %s' % (msg, self._LOGIN_HINTS[method])
+ msg = f'{msg}. {self._LOGIN_HINTS[method]}'
raise ExtractorError(msg, expected=True)
def raise_geo_restricted(
@@ -1257,7 +1254,7 @@ class InfoExtractor(object):
else:
raise netrc.NetrcParseError(
'No authenticators for %s' % netrc_machine)
- except (IOError, netrc.NetrcParseError) as err:
+ except (OSError, netrc.NetrcParseError) as err:
self.report_warning(
'parsing .netrc: %s' % error_to_compat_str(err))
@@ -3333,7 +3330,7 @@ class InfoExtractor(object):
http_f = f.copy()
del http_f['manifest_url']
http_url = re.sub(
- REPL_REGEX, protocol + r'://%s/\g<1>%s\3' % (http_host, qualities[i]), f['url'])
+ REPL_REGEX, protocol + fr'://{http_host}/\g<1>{qualities[i]}\3', f['url'])
http_f.update({
'format_id': http_f['format_id'].replace('hls-', protocol + '-'),
'url': http_url,
@@ -3354,7 +3351,7 @@ class InfoExtractor(object):
formats = []
def manifest_url(manifest):
- m_url = '%s/%s' % (http_base_url, manifest)
+ m_url = f'{http_base_url}/{manifest}'
if query:
m_url += '?%s' % query
return m_url
@@ -3391,7 +3388,7 @@ class InfoExtractor(object):
for protocol in ('rtmp', 'rtsp'):
if protocol not in skip_protocols:
formats.append({
- 'url': '%s:%s' % (protocol, url_base),
+ 'url': f'{protocol}:{url_base}',
'format_id': protocol,
'protocol': protocol,
})
@@ -3557,7 +3554,7 @@ class InfoExtractor(object):
def _int(self, v, name, fatal=False, **kwargs):
res = int_or_none(v, **kwargs)
if res is None:
- msg = 'Failed to extract %s: Could not parse value %r' % (name, v)
+ msg = f'Failed to extract {name}: Could not parse value {v!r}'
if fatal:
raise ExtractorError(msg)
else:
@@ -3567,7 +3564,7 @@ class InfoExtractor(object):
def _float(self, v, name, fatal=False, **kwargs):
res = float_or_none(v, **kwargs)
if res is None:
- msg = 'Failed to extract %s: Could not parse value %r' % (name, v)
+ msg = f'Failed to extract {name}: Could not parse value {v!r}'
if fatal:
raise ExtractorError(msg)
else:
@@ -3685,7 +3682,7 @@ class InfoExtractor(object):
def _merge_subtitle_items(subtitle_list1, subtitle_list2):
""" Merge subtitle items for one language. Items with duplicated URLs/data
will be dropped. """
- list1_data = set((item.get('url'), item.get('data')) for item in subtitle_list1)
+ list1_data = {(item.get('url'), item.get('data')) for item in subtitle_list1}
ret = list(subtitle_list1)
ret.extend(item for item in subtitle_list2 if (item.get('url'), item.get('data')) not in list1_data)
return ret
@@ -3798,7 +3795,7 @@ class SearchInfoExtractor(InfoExtractor):
else:
n = int(prefix)
if n <= 0:
- raise ExtractorError('invalid download number %s for query "%s"' % (n, query))
+ raise ExtractorError(f'invalid download number {n} for query "{query}"')
elif n > self._MAX_RESULTS:
self.report_warning('%s returns max %i results (you requested %i)' % (self._SEARCH_KEY, self._MAX_RESULTS, n))
n = self._MAX_RESULTS
diff --git a/yt_dlp/extractor/commonmistakes.py b/yt_dlp/extractor/commonmistakes.py
index e0a9f5956..62bd51fd7 100644
--- a/yt_dlp/extractor/commonmistakes.py
+++ b/yt_dlp/extractor/commonmistakes.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import ExtractorError
diff --git a/yt_dlp/extractor/commonprotocols.py b/yt_dlp/extractor/commonprotocols.py
index 3708c6ad2..40475f7ec 100644
--- a/yt_dlp/extractor/commonprotocols.py
+++ b/yt_dlp/extractor/commonprotocols.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import (
compat_urlparse,
diff --git a/yt_dlp/extractor/condenast.py b/yt_dlp/extractor/condenast.py
index 54e7af8b0..cf6e40cb8 100644
--- a/yt_dlp/extractor/condenast.py
+++ b/yt_dlp/extractor/condenast.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/contv.py b/yt_dlp/extractor/contv.py
index 84b462d40..50648a536 100644
--- a/yt_dlp/extractor/contv.py
+++ b/yt_dlp/extractor/contv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
float_or_none,
diff --git a/yt_dlp/extractor/corus.py b/yt_dlp/extractor/corus.py
index 119461375..7b83c0390 100644
--- a/yt_dlp/extractor/corus.py
+++ b/yt_dlp/extractor/corus.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .theplatform import ThePlatformFeedIE
from ..utils import (
dict_get,
diff --git a/yt_dlp/extractor/coub.py b/yt_dlp/extractor/coub.py
index e90aa1954..b462acaf0 100644
--- a/yt_dlp/extractor/coub.py
+++ b/yt_dlp/extractor/coub.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/cozytv.py b/yt_dlp/extractor/cozytv.py
index d49f1ca74..5ef5afcc2 100644
--- a/yt_dlp/extractor/cozytv.py
+++ b/yt_dlp/extractor/cozytv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import unified_strdate
diff --git a/yt_dlp/extractor/cpac.py b/yt_dlp/extractor/cpac.py
index 22741152c..e8975e5e2 100644
--- a/yt_dlp/extractor/cpac.py
+++ b/yt_dlp/extractor/cpac.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/cracked.py b/yt_dlp/extractor/cracked.py
index f77a68ece..c6aabccc6 100644
--- a/yt_dlp/extractor/cracked.py
+++ b/yt_dlp/extractor/cracked.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/crackle.py b/yt_dlp/extractor/crackle.py
index db4962c42..319374f3b 100644
--- a/yt_dlp/extractor/crackle.py
+++ b/yt_dlp/extractor/crackle.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals, division
-
import hashlib
import hmac
import re
diff --git a/yt_dlp/extractor/craftsy.py b/yt_dlp/extractor/craftsy.py
index ed2f4420e..307bfb946 100644
--- a/yt_dlp/extractor/craftsy.py
+++ b/yt_dlp/extractor/craftsy.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .brightcove import BrightcoveNewIE
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/crooksandliars.py b/yt_dlp/extractor/crooksandliars.py
index 7fb782db7..c831a3ae0 100644
--- a/yt_dlp/extractor/crooksandliars.py
+++ b/yt_dlp/extractor/crooksandliars.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/crowdbunker.py b/yt_dlp/extractor/crowdbunker.py
index 72906afef..75d90b5c5 100644
--- a/yt_dlp/extractor/crowdbunker.py
+++ b/yt_dlp/extractor/crowdbunker.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/crunchyroll.py b/yt_dlp/extractor/crunchyroll.py
index d7696bbd9..bb1dbbaad 100644
--- a/yt_dlp/extractor/crunchyroll.py
+++ b/yt_dlp/extractor/crunchyroll.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import re
import json
diff --git a/yt_dlp/extractor/cspan.py b/yt_dlp/extractor/cspan.py
index f51159bbe..cb1523617 100644
--- a/yt_dlp/extractor/cspan.py
+++ b/yt_dlp/extractor/cspan.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ctsnews.py b/yt_dlp/extractor/ctsnews.py
index 679f1d92e..cec178f03 100644
--- a/yt_dlp/extractor/ctsnews.py
+++ b/yt_dlp/extractor/ctsnews.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import unified_timestamp
from .youtube import YoutubeIE
diff --git a/yt_dlp/extractor/ctv.py b/yt_dlp/extractor/ctv.py
index 756bcc2be..f125c1ce9 100644
--- a/yt_dlp/extractor/ctv.py
+++ b/yt_dlp/extractor/ctv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ctvnews.py b/yt_dlp/extractor/ctvnews.py
index 952f4c747..ad3f0d8e4 100644
--- a/yt_dlp/extractor/ctvnews.py
+++ b/yt_dlp/extractor/ctvnews.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/cultureunplugged.py b/yt_dlp/extractor/cultureunplugged.py
index 9002e4cef..2fb22800f 100644
--- a/yt_dlp/extractor/cultureunplugged.py
+++ b/yt_dlp/extractor/cultureunplugged.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import time
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/curiositystream.py b/yt_dlp/extractor/curiositystream.py
index b8abcf7a5..5b76b29ff 100644
--- a/yt_dlp/extractor/curiositystream.py
+++ b/yt_dlp/extractor/curiositystream.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/cwtv.py b/yt_dlp/extractor/cwtv.py
index 73382431b..07239f39c 100644
--- a/yt_dlp/extractor/cwtv.py
+++ b/yt_dlp/extractor/cwtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/cybrary.py b/yt_dlp/extractor/cybrary.py
index c278f0fe0..7da581828 100644
--- a/yt_dlp/extractor/cybrary.py
+++ b/yt_dlp/extractor/cybrary.py
@@ -1,5 +1,4 @@
-# coding: utf-8
-from .common import InfoExtractor
+from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/daftsex.py b/yt_dlp/extractor/daftsex.py
index 6037fd9ca..0fe014f76 100644
--- a/yt_dlp/extractor/daftsex.py
+++ b/yt_dlp/extractor/daftsex.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_b64decode
from ..utils import (
diff --git a/yt_dlp/extractor/dailymail.py b/yt_dlp/extractor/dailymail.py
index 67b88fd56..5451dbf00 100644
--- a/yt_dlp/extractor/dailymail.py
+++ b/yt_dlp/extractor/dailymail.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/dailymotion.py b/yt_dlp/extractor/dailymotion.py
index 9cb56185b..3b090d5e0 100644
--- a/yt_dlp/extractor/dailymotion.py
+++ b/yt_dlp/extractor/dailymotion.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import json
import re
diff --git a/yt_dlp/extractor/damtomo.py b/yt_dlp/extractor/damtomo.py
index 456cd35a4..962d9741b 100644
--- a/yt_dlp/extractor/damtomo.py
+++ b/yt_dlp/extractor/damtomo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/daum.py b/yt_dlp/extractor/daum.py
index 4362e92cb..a1f197b0b 100644
--- a/yt_dlp/extractor/daum.py
+++ b/yt_dlp/extractor/daum.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/dbtv.py b/yt_dlp/extractor/dbtv.py
index 8e73176a6..2beccd8b5 100644
--- a/yt_dlp/extractor/dbtv.py
+++ b/yt_dlp/extractor/dbtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/dctp.py b/yt_dlp/extractor/dctp.py
index e700f8d86..24bb6aca2 100644
--- a/yt_dlp/extractor/dctp.py
+++ b/yt_dlp/extractor/dctp.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/deezer.py b/yt_dlp/extractor/deezer.py
index 7ba02e552..bee1c7501 100644
--- a/yt_dlp/extractor/deezer.py
+++ b/yt_dlp/extractor/deezer.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/defense.py b/yt_dlp/extractor/defense.py
index 9fe144e14..7d73ea862 100644
--- a/yt_dlp/extractor/defense.py
+++ b/yt_dlp/extractor/defense.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/democracynow.py b/yt_dlp/extractor/democracynow.py
index 5c9c0ecdc..af327e6c6 100644
--- a/yt_dlp/extractor/democracynow.py
+++ b/yt_dlp/extractor/democracynow.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import os.path
diff --git a/yt_dlp/extractor/dfb.py b/yt_dlp/extractor/dfb.py
index 97f70fc7b..5aca72988 100644
--- a/yt_dlp/extractor/dfb.py
+++ b/yt_dlp/extractor/dfb.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import unified_strdate
diff --git a/yt_dlp/extractor/dhm.py b/yt_dlp/extractor/dhm.py
index aee72a6ed..3d42fc2b0 100644
--- a/yt_dlp/extractor/dhm.py
+++ b/yt_dlp/extractor/dhm.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import parse_duration
diff --git a/yt_dlp/extractor/digg.py b/yt_dlp/extractor/digg.py
index 913c1750f..86e8a6fac 100644
--- a/yt_dlp/extractor/digg.py
+++ b/yt_dlp/extractor/digg.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import js_to_json
diff --git a/yt_dlp/extractor/digitalconcerthall.py b/yt_dlp/extractor/digitalconcerthall.py
index 8398ae30e..c891ad0a6 100644
--- a/yt_dlp/extractor/digitalconcerthall.py
+++ b/yt_dlp/extractor/digitalconcerthall.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/digiteka.py b/yt_dlp/extractor/digiteka.py
index d63204778..5d244cb08 100644
--- a/yt_dlp/extractor/digiteka.py
+++ b/yt_dlp/extractor/digiteka.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/discovery.py b/yt_dlp/extractor/discovery.py
index fd3ad75c7..fd3fc8fb0 100644
--- a/yt_dlp/extractor/discovery.py
+++ b/yt_dlp/extractor/discovery.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import random
import string
diff --git a/yt_dlp/extractor/discoverygo.py b/yt_dlp/extractor/discoverygo.py
index 9e7b14a7d..7b4278c88 100644
--- a/yt_dlp/extractor/discoverygo.py
+++ b/yt_dlp/extractor/discoverygo.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/discoveryvr.py b/yt_dlp/extractor/discoveryvr.py
index cb63c2649..a021d986e 100644
--- a/yt_dlp/extractor/discoveryvr.py
+++ b/yt_dlp/extractor/discoveryvr.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import parse_duration
diff --git a/yt_dlp/extractor/disney.py b/yt_dlp/extractor/disney.py
index 0ad7b1f46..f9af59a57 100644
--- a/yt_dlp/extractor/disney.py
+++ b/yt_dlp/extractor/disney.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/dispeak.py b/yt_dlp/extractor/dispeak.py
index 3d651f3ab..d4f3324e7 100644
--- a/yt_dlp/extractor/dispeak.py
+++ b/yt_dlp/extractor/dispeak.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/dlive.py b/yt_dlp/extractor/dlive.py
index 7410eb6c8..31b4a568f 100644
--- a/yt_dlp/extractor/dlive.py
+++ b/yt_dlp/extractor/dlive.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/doodstream.py b/yt_dlp/extractor/doodstream.py
index f692127c2..f1001c778 100644
--- a/yt_dlp/extractor/doodstream.py
+++ b/yt_dlp/extractor/doodstream.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import string
import random
import time
diff --git a/yt_dlp/extractor/dotsub.py b/yt_dlp/extractor/dotsub.py
index 148605c0b..079f83750 100644
--- a/yt_dlp/extractor/dotsub.py
+++ b/yt_dlp/extractor/dotsub.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
float_or_none,
diff --git a/yt_dlp/extractor/douyutv.py b/yt_dlp/extractor/douyutv.py
index 26a8d645c..477f4687c 100644
--- a/yt_dlp/extractor/douyutv.py
+++ b/yt_dlp/extractor/douyutv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import time
import hashlib
import re
diff --git a/yt_dlp/extractor/dplay.py b/yt_dlp/extractor/dplay.py
index a25f27c3a..54f95a44a 100644
--- a/yt_dlp/extractor/dplay.py
+++ b/yt_dlp/extractor/dplay.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import uuid
diff --git a/yt_dlp/extractor/drbonanza.py b/yt_dlp/extractor/drbonanza.py
index ea0f06d3d..dca8c89d0 100644
--- a/yt_dlp/extractor/drbonanza.py
+++ b/yt_dlp/extractor/drbonanza.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
js_to_json,
diff --git a/yt_dlp/extractor/dreisat.py b/yt_dlp/extractor/dreisat.py
index 5a07c18f4..80a724607 100644
--- a/yt_dlp/extractor/dreisat.py
+++ b/yt_dlp/extractor/dreisat.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .zdf import ZDFIE
diff --git a/yt_dlp/extractor/drooble.py b/yt_dlp/extractor/drooble.py
index 058425095..106e5c457 100644
--- a/yt_dlp/extractor/drooble.py
+++ b/yt_dlp/extractor/drooble.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/dropbox.py b/yt_dlp/extractor/dropbox.py
index 2559657ad..6ac0c713a 100644
--- a/yt_dlp/extractor/dropbox.py
+++ b/yt_dlp/extractor/dropbox.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import os.path
import re
diff --git a/yt_dlp/extractor/dropout.py b/yt_dlp/extractor/dropout.py
index 2fa61950c..475825eb8 100644
--- a/yt_dlp/extractor/dropout.py
+++ b/yt_dlp/extractor/dropout.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
from .vimeo import VHXEmbedIE
from ..utils import (
diff --git a/yt_dlp/extractor/drtuber.py b/yt_dlp/extractor/drtuber.py
index 540b86a16..3149e319f 100644
--- a/yt_dlp/extractor/drtuber.py
+++ b/yt_dlp/extractor/drtuber.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/drtv.py b/yt_dlp/extractor/drtv.py
index 37e4d5b26..843e93072 100644
--- a/yt_dlp/extractor/drtv.py
+++ b/yt_dlp/extractor/drtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import binascii
import hashlib
import re
diff --git a/yt_dlp/extractor/dtube.py b/yt_dlp/extractor/dtube.py
index ad247b7dd..25a98f625 100644
--- a/yt_dlp/extractor/dtube.py
+++ b/yt_dlp/extractor/dtube.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from socket import timeout
diff --git a/yt_dlp/extractor/duboku.py b/yt_dlp/extractor/duboku.py
index a87597873..24403842d 100644
--- a/yt_dlp/extractor/duboku.py
+++ b/yt_dlp/extractor/duboku.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/dumpert.py b/yt_dlp/extractor/dumpert.py
index d9d9afdec..dc61115ff 100644
--- a/yt_dlp/extractor/dumpert.py
+++ b/yt_dlp/extractor/dumpert.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/dvtv.py b/yt_dlp/extractor/dvtv.py
index 08663cffb..61d469f11 100644
--- a/yt_dlp/extractor/dvtv.py
+++ b/yt_dlp/extractor/dvtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/dw.py b/yt_dlp/extractor/dw.py
index 6eaee07b4..ee2365ddd 100644
--- a/yt_dlp/extractor/dw.py
+++ b/yt_dlp/extractor/dw.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/eagleplatform.py b/yt_dlp/extractor/eagleplatform.py
index f86731a0c..e2ecd4b7c 100644
--- a/yt_dlp/extractor/eagleplatform.py
+++ b/yt_dlp/extractor/eagleplatform.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ebaumsworld.py b/yt_dlp/extractor/ebaumsworld.py
index c97682cd3..0854d0344 100644
--- a/yt_dlp/extractor/ebaumsworld.py
+++ b/yt_dlp/extractor/ebaumsworld.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/echomsk.py b/yt_dlp/extractor/echomsk.py
index 6b7cc652f..850eabbff 100644
--- a/yt_dlp/extractor/echomsk.py
+++ b/yt_dlp/extractor/echomsk.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/egghead.py b/yt_dlp/extractor/egghead.py
index b6b86768c..d5c954961 100644
--- a/yt_dlp/extractor/egghead.py
+++ b/yt_dlp/extractor/egghead.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/ehow.py b/yt_dlp/extractor/ehow.py
index b1cd4f5d4..74469ce36 100644
--- a/yt_dlp/extractor/ehow.py
+++ b/yt_dlp/extractor/ehow.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urllib_parse_unquote
diff --git a/yt_dlp/extractor/eighttracks.py b/yt_dlp/extractor/eighttracks.py
index 9a44f89f3..3dd9ab1b3 100644
--- a/yt_dlp/extractor/eighttracks.py
+++ b/yt_dlp/extractor/eighttracks.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import random
diff --git a/yt_dlp/extractor/einthusan.py b/yt_dlp/extractor/einthusan.py
index 7af279a53..37be68c61 100644
--- a/yt_dlp/extractor/einthusan.py
+++ b/yt_dlp/extractor/einthusan.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/eitb.py b/yt_dlp/extractor/eitb.py
index ee5ead18b..01a47f6fd 100644
--- a/yt_dlp/extractor/eitb.py
+++ b/yt_dlp/extractor/eitb.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
float_or_none,
diff --git a/yt_dlp/extractor/ellentube.py b/yt_dlp/extractor/ellentube.py
index d451bc048..bcd458cdf 100644
--- a/yt_dlp/extractor/ellentube.py
+++ b/yt_dlp/extractor/ellentube.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/elonet.py b/yt_dlp/extractor/elonet.py
index 9c6aea28e..f99e12250 100644
--- a/yt_dlp/extractor/elonet.py
+++ b/yt_dlp/extractor/elonet.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import determine_ext
diff --git a/yt_dlp/extractor/elpais.py b/yt_dlp/extractor/elpais.py
index b89f6db62..7c6c88075 100644
--- a/yt_dlp/extractor/elpais.py
+++ b/yt_dlp/extractor/elpais.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import strip_jsonp, unified_strdate
diff --git a/yt_dlp/extractor/embedly.py b/yt_dlp/extractor/embedly.py
index a5820b21e..a8d1f3c55 100644
--- a/yt_dlp/extractor/embedly.py
+++ b/yt_dlp/extractor/embedly.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urllib_parse_unquote
diff --git a/yt_dlp/extractor/engadget.py b/yt_dlp/extractor/engadget.py
index 733bf322f..e7c5d7bf1 100644
--- a/yt_dlp/extractor/engadget.py
+++ b/yt_dlp/extractor/engadget.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/epicon.py b/yt_dlp/extractor/epicon.py
index cd19325bc..89424785e 100644
--- a/yt_dlp/extractor/epicon.py
+++ b/yt_dlp/extractor/epicon.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/eporner.py b/yt_dlp/extractor/eporner.py
index 25a0d9799..6bc70c5c6 100644
--- a/yt_dlp/extractor/eporner.py
+++ b/yt_dlp/extractor/eporner.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
encode_base_n,
diff --git a/yt_dlp/extractor/eroprofile.py b/yt_dlp/extractor/eroprofile.py
index 5d5e7f244..2b61f3be7 100644
--- a/yt_dlp/extractor/eroprofile.py
+++ b/yt_dlp/extractor/eroprofile.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ertgr.py b/yt_dlp/extractor/ertgr.py
index 19ce23f01..507f0a5c1 100644
--- a/yt_dlp/extractor/ertgr.py
+++ b/yt_dlp/extractor/ertgr.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/escapist.py b/yt_dlp/extractor/escapist.py
index 4cd815ebc..5d9c46f72 100644
--- a/yt_dlp/extractor/escapist.py
+++ b/yt_dlp/extractor/escapist.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/espn.py b/yt_dlp/extractor/espn.py
index dc50f3b8b..8fad70e6b 100644
--- a/yt_dlp/extractor/espn.py
+++ b/yt_dlp/extractor/espn.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/esri.py b/yt_dlp/extractor/esri.py
index e9dcaeb1d..1736788db 100644
--- a/yt_dlp/extractor/esri.py
+++ b/yt_dlp/extractor/esri.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/europa.py b/yt_dlp/extractor/europa.py
index 60ab2ce13..ea20b4d4d 100644
--- a/yt_dlp/extractor/europa.py
+++ b/yt_dlp/extractor/europa.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/europeantour.py b/yt_dlp/extractor/europeantour.py
index e28f067be..1995a745d 100644
--- a/yt_dlp/extractor/europeantour.py
+++ b/yt_dlp/extractor/europeantour.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/euscreen.py b/yt_dlp/extractor/euscreen.py
index 2759e7436..4435f08e0 100644
--- a/yt_dlp/extractor/euscreen.py
+++ b/yt_dlp/extractor/euscreen.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/everyonesmixtape.py b/yt_dlp/extractor/everyonesmixtape.py
index 80cb032be..d26ff8ad3 100644
--- a/yt_dlp/extractor/everyonesmixtape.py
+++ b/yt_dlp/extractor/everyonesmixtape.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/expotv.py b/yt_dlp/extractor/expotv.py
index 95a897782..92eaf4248 100644
--- a/yt_dlp/extractor/expotv.py
+++ b/yt_dlp/extractor/expotv.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/expressen.py b/yt_dlp/extractor/expressen.py
index dc8b855d2..a1b8e9bc9 100644
--- a/yt_dlp/extractor/expressen.py
+++ b/yt_dlp/extractor/expressen.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/extractors.py b/yt_dlp/extractor/extractors.py
index 0cb686304..cd3934a70 100644
--- a/yt_dlp/extractor/extractors.py
+++ b/yt_dlp/extractor/extractors.py
@@ -1,6 +1,4 @@
# flake8: noqa
-from __future__ import unicode_literals
-
from .abc import (
ABCIE,
ABCIViewIE,
diff --git a/yt_dlp/extractor/extremetube.py b/yt_dlp/extractor/extremetube.py
index acd4090fa..99520b6a0 100644
--- a/yt_dlp/extractor/extremetube.py
+++ b/yt_dlp/extractor/extremetube.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from ..utils import str_to_int
from .keezmovies import KeezMoviesIE
diff --git a/yt_dlp/extractor/eyedotv.py b/yt_dlp/extractor/eyedotv.py
index f62ddebae..d8b068e9c 100644
--- a/yt_dlp/extractor/eyedotv.py
+++ b/yt_dlp/extractor/eyedotv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
xpath_text,
diff --git a/yt_dlp/extractor/facebook.py b/yt_dlp/extractor/facebook.py
index 5e0e2facf..2e69dce0f 100644
--- a/yt_dlp/extractor/facebook.py
+++ b/yt_dlp/extractor/facebook.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/fancode.py b/yt_dlp/extractor/fancode.py
index 7ea16c61d..9716e581a 100644
--- a/yt_dlp/extractor/fancode.py
+++ b/yt_dlp/extractor/fancode.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
diff --git a/yt_dlp/extractor/faz.py b/yt_dlp/extractor/faz.py
index 312ee2aee..cc12fda2b 100644
--- a/yt_dlp/extractor/faz.py
+++ b/yt_dlp/extractor/faz.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/fc2.py b/yt_dlp/extractor/fc2.py
index 54a83aa16..a4c9793bb 100644
--- a/yt_dlp/extractor/fc2.py
+++ b/yt_dlp/extractor/fc2.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/fczenit.py b/yt_dlp/extractor/fczenit.py
index 8db7c5963..df40888e1 100644
--- a/yt_dlp/extractor/fczenit.py
+++ b/yt_dlp/extractor/fczenit.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/filmmodu.py b/yt_dlp/extractor/filmmodu.py
index 2746876d5..d74131192 100644
--- a/yt_dlp/extractor/filmmodu.py
+++ b/yt_dlp/extractor/filmmodu.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/filmon.py b/yt_dlp/extractor/filmon.py
index 7b43ecc0f..7040231be 100644
--- a/yt_dlp/extractor/filmon.py
+++ b/yt_dlp/extractor/filmon.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/filmweb.py b/yt_dlp/extractor/filmweb.py
index 5e323b4f8..cfea1f2fb 100644
--- a/yt_dlp/extractor/filmweb.py
+++ b/yt_dlp/extractor/filmweb.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/firsttv.py b/yt_dlp/extractor/firsttv.py
index ccad173b7..99c27e0c3 100644
--- a/yt_dlp/extractor/firsttv.py
+++ b/yt_dlp/extractor/firsttv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/fivetv.py b/yt_dlp/extractor/fivetv.py
index d6bebd19b..448c332b3 100644
--- a/yt_dlp/extractor/fivetv.py
+++ b/yt_dlp/extractor/fivetv.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/flickr.py b/yt_dlp/extractor/flickr.py
index 2ed6c2bdc..552ecd43a 100644
--- a/yt_dlp/extractor/flickr.py
+++ b/yt_dlp/extractor/flickr.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/folketinget.py b/yt_dlp/extractor/folketinget.py
index b3df93f28..0e69fa32f 100644
--- a/yt_dlp/extractor/folketinget.py
+++ b/yt_dlp/extractor/folketinget.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_parse_qs
from ..utils import (
diff --git a/yt_dlp/extractor/footyroom.py b/yt_dlp/extractor/footyroom.py
index 118325b6d..4a1316b50 100644
--- a/yt_dlp/extractor/footyroom.py
+++ b/yt_dlp/extractor/footyroom.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .streamable import StreamableIE
diff --git a/yt_dlp/extractor/formula1.py b/yt_dlp/extractor/formula1.py
index 67662e6de..0a8ef850e 100644
--- a/yt_dlp/extractor/formula1.py
+++ b/yt_dlp/extractor/formula1.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/fourtube.py b/yt_dlp/extractor/fourtube.py
index d4d955b6b..c6af100f3 100644
--- a/yt_dlp/extractor/fourtube.py
+++ b/yt_dlp/extractor/fourtube.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/fox.py b/yt_dlp/extractor/fox.py
index 4c52b9ac6..5996e86bb 100644
--- a/yt_dlp/extractor/fox.py
+++ b/yt_dlp/extractor/fox.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import uuid
diff --git a/yt_dlp/extractor/fox9.py b/yt_dlp/extractor/fox9.py
index 91f8f7b8a..dfbafa7dd 100644
--- a/yt_dlp/extractor/fox9.py
+++ b/yt_dlp/extractor/fox9.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/foxgay.py b/yt_dlp/extractor/foxgay.py
index 1c53e0642..4abc2cfd0 100644
--- a/yt_dlp/extractor/foxgay.py
+++ b/yt_dlp/extractor/foxgay.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/foxnews.py b/yt_dlp/extractor/foxnews.py
index 18fa0a5ef..cee4d6b49 100644
--- a/yt_dlp/extractor/foxnews.py
+++ b/yt_dlp/extractor/foxnews.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .amp import AMPIE
diff --git a/yt_dlp/extractor/foxsports.py b/yt_dlp/extractor/foxsports.py
index 2b2cb6c6f..f9d7fe52a 100644
--- a/yt_dlp/extractor/foxsports.py
+++ b/yt_dlp/extractor/foxsports.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/fptplay.py b/yt_dlp/extractor/fptplay.py
index c23fe6c53..1872d8a1c 100644
--- a/yt_dlp/extractor/fptplay.py
+++ b/yt_dlp/extractor/fptplay.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hashlib
import time
import urllib.parse
diff --git a/yt_dlp/extractor/franceculture.py b/yt_dlp/extractor/franceculture.py
index 9dc28d801..6bd9912f3 100644
--- a/yt_dlp/extractor/franceculture.py
+++ b/yt_dlp/extractor/franceculture.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/franceinter.py b/yt_dlp/extractor/franceinter.py
index ae822a50e..779249b84 100644
--- a/yt_dlp/extractor/franceinter.py
+++ b/yt_dlp/extractor/franceinter.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import month_by_name
diff --git a/yt_dlp/extractor/francetv.py b/yt_dlp/extractor/francetv.py
index 347a766d8..5902eaca0 100644
--- a/yt_dlp/extractor/francetv.py
+++ b/yt_dlp/extractor/francetv.py
@@ -1,8 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/freesound.py b/yt_dlp/extractor/freesound.py
index 138b6bc58..9724dbdf0 100644
--- a/yt_dlp/extractor/freesound.py
+++ b/yt_dlp/extractor/freesound.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/freespeech.py b/yt_dlp/extractor/freespeech.py
index ea9c3e317..aea551379 100644
--- a/yt_dlp/extractor/freespeech.py
+++ b/yt_dlp/extractor/freespeech.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .youtube import YoutubeIE
diff --git a/yt_dlp/extractor/frontendmasters.py b/yt_dlp/extractor/frontendmasters.py
index fc67a8437..e0529b7ba 100644
--- a/yt_dlp/extractor/frontendmasters.py
+++ b/yt_dlp/extractor/frontendmasters.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/fujitv.py b/yt_dlp/extractor/fujitv.py
index 4fdfe12ab..15d75a972 100644
--- a/yt_dlp/extractor/fujitv.py
+++ b/yt_dlp/extractor/fujitv.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
from ..utils import HEADRequest
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/funimation.py b/yt_dlp/extractor/funimation.py
index 6aa9bc9ce..1e3309605 100644
--- a/yt_dlp/extractor/funimation.py
+++ b/yt_dlp/extractor/funimation.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import random
import re
import string
diff --git a/yt_dlp/extractor/funk.py b/yt_dlp/extractor/funk.py
index 2c5cfe864..539d719c5 100644
--- a/yt_dlp/extractor/funk.py
+++ b/yt_dlp/extractor/funk.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from .nexx import NexxIE
from ..utils import (
diff --git a/yt_dlp/extractor/fusion.py b/yt_dlp/extractor/fusion.py
index a3f44b812..46bda49ea 100644
--- a/yt_dlp/extractor/fusion.py
+++ b/yt_dlp/extractor/fusion.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/fxnetworks.py b/yt_dlp/extractor/fxnetworks.py
index 00e67426b..370b0a597 100644
--- a/yt_dlp/extractor/fxnetworks.py
+++ b/yt_dlp/extractor/fxnetworks.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .adobepass import AdobePassIE
from ..utils import (
extract_attributes,
diff --git a/yt_dlp/extractor/gab.py b/yt_dlp/extractor/gab.py
index 9ba0b1ca1..7ed81f761 100644
--- a/yt_dlp/extractor/gab.py
+++ b/yt_dlp/extractor/gab.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/gaia.py b/yt_dlp/extractor/gaia.py
index 5b0195c63..4ace0544a 100644
--- a/yt_dlp/extractor/gaia.py
+++ b/yt_dlp/extractor/gaia.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/gameinformer.py b/yt_dlp/extractor/gameinformer.py
index f1b96c172..2664edb81 100644
--- a/yt_dlp/extractor/gameinformer.py
+++ b/yt_dlp/extractor/gameinformer.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .brightcove import BrightcoveNewIE
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/gamejolt.py b/yt_dlp/extractor/gamejolt.py
index a13e528f5..440b832fc 100644
--- a/yt_dlp/extractor/gamejolt.py
+++ b/yt_dlp/extractor/gamejolt.py
@@ -1,4 +1,3 @@
-# coding: utf-8
import itertools
import json
import math
diff --git a/yt_dlp/extractor/gamespot.py b/yt_dlp/extractor/gamespot.py
index 7a1beae3c..e1d317377 100644
--- a/yt_dlp/extractor/gamespot.py
+++ b/yt_dlp/extractor/gamespot.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .once import OnceIE
from ..compat import compat_urllib_parse_unquote
diff --git a/yt_dlp/extractor/gamestar.py b/yt_dlp/extractor/gamestar.py
index e882fa671..e9966f532 100644
--- a/yt_dlp/extractor/gamestar.py
+++ b/yt_dlp/extractor/gamestar.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/gaskrank.py b/yt_dlp/extractor/gaskrank.py
index 03acd2a73..76ddcc40e 100644
--- a/yt_dlp/extractor/gaskrank.py
+++ b/yt_dlp/extractor/gaskrank.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/gazeta.py b/yt_dlp/extractor/gazeta.py
index 367187080..c6868a672 100644
--- a/yt_dlp/extractor/gazeta.py
+++ b/yt_dlp/extractor/gazeta.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/gdcvault.py b/yt_dlp/extractor/gdcvault.py
index c3ad6b4ce..2878bbd88 100644
--- a/yt_dlp/extractor/gdcvault.py
+++ b/yt_dlp/extractor/gdcvault.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/gedidigital.py b/yt_dlp/extractor/gedidigital.py
index ec386c218..c878daff8 100644
--- a/yt_dlp/extractor/gedidigital.py
+++ b/yt_dlp/extractor/gedidigital.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/generic.py b/yt_dlp/extractor/generic.py
index fd620217e..f44f19a54 100644
--- a/yt_dlp/extractor/generic.py
+++ b/yt_dlp/extractor/generic.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
import os
import re
import xml.etree.ElementTree
@@ -2628,7 +2624,7 @@ class GenericIE(InfoExtractor):
entries.append({
'id': os.path.splitext(url_n.text.rpartition('/')[2])[0],
- 'title': '%s - %s' % (title, n.tag),
+ 'title': f'{title} - {n.tag}',
'url': compat_urlparse.urljoin(url, url_n.text),
'duration': float_or_none(n.find('./duration').text),
})
@@ -2650,7 +2646,7 @@ class GenericIE(InfoExtractor):
for o in range(len(newmagic) - 1, -1, -1):
new = ''
- l = (o + sum([int(n) for n in license[o:]])) % 32
+ l = (o + sum(int(n) for n in license[o:])) % 32
for i in range(0, len(newmagic)):
if i == o:
@@ -3772,7 +3768,7 @@ class GenericIE(InfoExtractor):
else:
for num, entry in enumerate(entries, start=1):
entry.update({
- 'id': '%s-%s' % (video_id, num),
+ 'id': f'{video_id}-{num}',
'title': '%s (%d)' % (video_title, num),
})
for entry in entries:
diff --git a/yt_dlp/extractor/gettr.py b/yt_dlp/extractor/gettr.py
index 327a4d0b8..9bd6200b6 100644
--- a/yt_dlp/extractor/gettr.py
+++ b/yt_dlp/extractor/gettr.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
bool_or_none,
diff --git a/yt_dlp/extractor/gfycat.py b/yt_dlp/extractor/gfycat.py
index 2ad03e2b2..7373c574f 100644
--- a/yt_dlp/extractor/gfycat.py
+++ b/yt_dlp/extractor/gfycat.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/giantbomb.py b/yt_dlp/extractor/giantbomb.py
index 1920923fc..5d6b208aa 100644
--- a/yt_dlp/extractor/giantbomb.py
+++ b/yt_dlp/extractor/giantbomb.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/giga.py b/yt_dlp/extractor/giga.py
index 5a9992a27..9e835a6da 100644
--- a/yt_dlp/extractor/giga.py
+++ b/yt_dlp/extractor/giga.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/gigya.py b/yt_dlp/extractor/gigya.py
index 412178492..c5bc86bb4 100644
--- a/yt_dlp/extractor/gigya.py
+++ b/yt_dlp/extractor/gigya.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/glide.py b/yt_dlp/extractor/glide.py
index 12af859be..2bffb26dc 100644
--- a/yt_dlp/extractor/glide.py
+++ b/yt_dlp/extractor/glide.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/globo.py b/yt_dlp/extractor/globo.py
index f6aaae1e9..8915ebf48 100644
--- a/yt_dlp/extractor/globo.py
+++ b/yt_dlp/extractor/globo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import hashlib
import json
diff --git a/yt_dlp/extractor/glomex.py b/yt_dlp/extractor/glomex.py
index d9ef4338f..85ffa4c05 100644
--- a/yt_dlp/extractor/glomex.py
+++ b/yt_dlp/extractor/glomex.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import urllib.parse
diff --git a/yt_dlp/extractor/go.py b/yt_dlp/extractor/go.py
index f92e16600..07d13d1c3 100644
--- a/yt_dlp/extractor/go.py
+++ b/yt_dlp/extractor/go.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .adobepass import AdobePassIE
diff --git a/yt_dlp/extractor/godtube.py b/yt_dlp/extractor/godtube.py
index 96e68b4d2..697540155 100644
--- a/yt_dlp/extractor/godtube.py
+++ b/yt_dlp/extractor/godtube.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
parse_duration,
diff --git a/yt_dlp/extractor/gofile.py b/yt_dlp/extractor/gofile.py
index 858bac52c..b491b46a5 100644
--- a/yt_dlp/extractor/gofile.py
+++ b/yt_dlp/extractor/gofile.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/golem.py b/yt_dlp/extractor/golem.py
index 47a068e74..8416b5aa4 100644
--- a/yt_dlp/extractor/golem.py
+++ b/yt_dlp/extractor/golem.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/googledrive.py b/yt_dlp/extractor/googledrive.py
index 7b5bf280f..c0905f86a 100644
--- a/yt_dlp/extractor/googledrive.py
+++ b/yt_dlp/extractor/googledrive.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/googlepodcasts.py b/yt_dlp/extractor/googlepodcasts.py
index 25631e213..8b2351ba8 100644
--- a/yt_dlp/extractor/googlepodcasts.py
+++ b/yt_dlp/extractor/googlepodcasts.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/googlesearch.py b/yt_dlp/extractor/googlesearch.py
index 4b8b1bcbb..67ca0e5e0 100644
--- a/yt_dlp/extractor/googlesearch.py
+++ b/yt_dlp/extractor/googlesearch.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import itertools
import re
diff --git a/yt_dlp/extractor/gopro.py b/yt_dlp/extractor/gopro.py
index 10cc1aec1..14d6b2187 100644
--- a/yt_dlp/extractor/gopro.py
+++ b/yt_dlp/extractor/gopro.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/goshgay.py b/yt_dlp/extractor/goshgay.py
index 377981d3e..9a1f32b7e 100644
--- a/yt_dlp/extractor/goshgay.py
+++ b/yt_dlp/extractor/goshgay.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_parse_qs,
diff --git a/yt_dlp/extractor/gotostage.py b/yt_dlp/extractor/gotostage.py
index 6aa96106a..112293bef 100644
--- a/yt_dlp/extractor/gotostage.py
+++ b/yt_dlp/extractor/gotostage.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/gputechconf.py b/yt_dlp/extractor/gputechconf.py
index 73dc62c49..2d13bf491 100644
--- a/yt_dlp/extractor/gputechconf.py
+++ b/yt_dlp/extractor/gputechconf.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/gronkh.py b/yt_dlp/extractor/gronkh.py
index c9f1dd256..52bbf3bc7 100644
--- a/yt_dlp/extractor/gronkh.py
+++ b/yt_dlp/extractor/gronkh.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import unified_strdate
diff --git a/yt_dlp/extractor/groupon.py b/yt_dlp/extractor/groupon.py
index a6da90931..362d3ff83 100644
--- a/yt_dlp/extractor/groupon.py
+++ b/yt_dlp/extractor/groupon.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/hbo.py b/yt_dlp/extractor/hbo.py
index 68df748f5..f54628665 100644
--- a/yt_dlp/extractor/hbo.py
+++ b/yt_dlp/extractor/hbo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/hearthisat.py b/yt_dlp/extractor/hearthisat.py
index a3d6a055f..9aa1325af 100644
--- a/yt_dlp/extractor/hearthisat.py
+++ b/yt_dlp/extractor/hearthisat.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/heise.py b/yt_dlp/extractor/heise.py
index cbe564a3c..84e5d3023 100644
--- a/yt_dlp/extractor/heise.py
+++ b/yt_dlp/extractor/heise.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .kaltura import KalturaIE
from .youtube import YoutubeIE
diff --git a/yt_dlp/extractor/hellporno.py b/yt_dlp/extractor/hellporno.py
index 92d32cdcc..fd0327228 100644
--- a/yt_dlp/extractor/hellporno.py
+++ b/yt_dlp/extractor/hellporno.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/helsinki.py b/yt_dlp/extractor/helsinki.py
index 575fb332a..b7c826055 100644
--- a/yt_dlp/extractor/helsinki.py
+++ b/yt_dlp/extractor/helsinki.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import js_to_json
diff --git a/yt_dlp/extractor/hentaistigma.py b/yt_dlp/extractor/hentaistigma.py
index 86a93de4d..ca5ffc2ae 100644
--- a/yt_dlp/extractor/hentaistigma.py
+++ b/yt_dlp/extractor/hentaistigma.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/hgtv.py b/yt_dlp/extractor/hgtv.py
index a4f332565..c40017db1 100644
--- a/yt_dlp/extractor/hgtv.py
+++ b/yt_dlp/extractor/hgtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/hidive.py b/yt_dlp/extractor/hidive.py
index 46d7d62ab..a6a71d630 100644
--- a/yt_dlp/extractor/hidive.py
+++ b/yt_dlp/extractor/hidive.py
@@ -1,4 +1,3 @@
-# coding: utf-8
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/historicfilms.py b/yt_dlp/extractor/historicfilms.py
index 56343e98f..c428feede 100644
--- a/yt_dlp/extractor/historicfilms.py
+++ b/yt_dlp/extractor/historicfilms.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import parse_duration
diff --git a/yt_dlp/extractor/hitbox.py b/yt_dlp/extractor/hitbox.py
index 0470d0a99..a7e4424b6 100644
--- a/yt_dlp/extractor/hitbox.py
+++ b/yt_dlp/extractor/hitbox.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/hitrecord.py b/yt_dlp/extractor/hitrecord.py
index fd5dc2935..902af44fa 100644
--- a/yt_dlp/extractor/hitrecord.py
+++ b/yt_dlp/extractor/hitrecord.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/hketv.py b/yt_dlp/extractor/hketv.py
index 1f3502b90..4c616d1dd 100644
--- a/yt_dlp/extractor/hketv.py
+++ b/yt_dlp/extractor/hketv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/hotnewhiphop.py b/yt_dlp/extractor/hotnewhiphop.py
index 4703e1894..f8570cb86 100644
--- a/yt_dlp/extractor/hotnewhiphop.py
+++ b/yt_dlp/extractor/hotnewhiphop.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_b64decode
from ..utils import (
diff --git a/yt_dlp/extractor/hotstar.py b/yt_dlp/extractor/hotstar.py
index a0ce1f10a..d82e1aead 100644
--- a/yt_dlp/extractor/hotstar.py
+++ b/yt_dlp/extractor/hotstar.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hashlib
import hmac
import re
diff --git a/yt_dlp/extractor/howcast.py b/yt_dlp/extractor/howcast.py
index 7e36b85ad..59cf80f1a 100644
--- a/yt_dlp/extractor/howcast.py
+++ b/yt_dlp/extractor/howcast.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import parse_iso8601
diff --git a/yt_dlp/extractor/howstuffworks.py b/yt_dlp/extractor/howstuffworks.py
index cf90ab3c9..c49c0899e 100644
--- a/yt_dlp/extractor/howstuffworks.py
+++ b/yt_dlp/extractor/howstuffworks.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
find_xpath_attr,
diff --git a/yt_dlp/extractor/hrfensehen.py b/yt_dlp/extractor/hrfensehen.py
index e39ded254..6f7ed9b4b 100644
--- a/yt_dlp/extractor/hrfensehen.py
+++ b/yt_dlp/extractor/hrfensehen.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/hrti.py b/yt_dlp/extractor/hrti.py
index 36d600773..773ae0c9a 100644
--- a/yt_dlp/extractor/hrti.py
+++ b/yt_dlp/extractor/hrti.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/hse.py b/yt_dlp/extractor/hse.py
index 9144ff8dc..9faf46a5d 100644
--- a/yt_dlp/extractor/hse.py
+++ b/yt_dlp/extractor/hse.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/huajiao.py b/yt_dlp/extractor/huajiao.py
index 4ca275dda..c498fa330 100644
--- a/yt_dlp/extractor/huajiao.py
+++ b/yt_dlp/extractor/huajiao.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
parse_duration,
diff --git a/yt_dlp/extractor/huffpost.py b/yt_dlp/extractor/huffpost.py
index 54385bafa..7286dbcd7 100644
--- a/yt_dlp/extractor/huffpost.py
+++ b/yt_dlp/extractor/huffpost.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/hungama.py b/yt_dlp/extractor/hungama.py
index 821b16e5d..938a24296 100644
--- a/yt_dlp/extractor/hungama.py
+++ b/yt_dlp/extractor/hungama.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/huya.py b/yt_dlp/extractor/huya.py
index 4e96f22fa..9dd5e41b3 100644
--- a/yt_dlp/extractor/huya.py
+++ b/yt_dlp/extractor/huya.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hashlib
import random
diff --git a/yt_dlp/extractor/hypem.py b/yt_dlp/extractor/hypem.py
index 9ca28d632..54db7b3eb 100644
--- a/yt_dlp/extractor/hypem.py
+++ b/yt_dlp/extractor/hypem.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/ichinanalive.py b/yt_dlp/extractor/ichinanalive.py
index cb39f821c..ffff36cc1 100644
--- a/yt_dlp/extractor/ichinanalive.py
+++ b/yt_dlp/extractor/ichinanalive.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import ExtractorError, str_or_none, traverse_obj, unified_strdate
from ..compat import compat_str
diff --git a/yt_dlp/extractor/ign.py b/yt_dlp/extractor/ign.py
index c826eb3ba..bfb1e9d64 100644
--- a/yt_dlp/extractor/ign.py
+++ b/yt_dlp/extractor/ign.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/iheart.py b/yt_dlp/extractor/iheart.py
index b54c05eeb..2c6a5b6a1 100644
--- a/yt_dlp/extractor/iheart.py
+++ b/yt_dlp/extractor/iheart.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/imdb.py b/yt_dlp/extractor/imdb.py
index 96cee2e2f..74cab7dc1 100644
--- a/yt_dlp/extractor/imdb.py
+++ b/yt_dlp/extractor/imdb.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import base64
import json
import re
diff --git a/yt_dlp/extractor/imggaming.py b/yt_dlp/extractor/imggaming.py
index ce7b21ab2..5b8bfda96 100644
--- a/yt_dlp/extractor/imggaming.py
+++ b/yt_dlp/extractor/imggaming.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/imgur.py b/yt_dlp/extractor/imgur.py
index dfa473752..a3bb47615 100644
--- a/yt_dlp/extractor/imgur.py
+++ b/yt_dlp/extractor/imgur.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ina.py b/yt_dlp/extractor/ina.py
index b3b2683cb..56038f1ca 100644
--- a/yt_dlp/extractor/ina.py
+++ b/yt_dlp/extractor/ina.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/inc.py b/yt_dlp/extractor/inc.py
index d5b258a0f..9b3fe9ac1 100644
--- a/yt_dlp/extractor/inc.py
+++ b/yt_dlp/extractor/inc.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .kaltura import KalturaIE
diff --git a/yt_dlp/extractor/indavideo.py b/yt_dlp/extractor/indavideo.py
index 4c16243ec..fb041a182 100644
--- a/yt_dlp/extractor/indavideo.py
+++ b/yt_dlp/extractor/indavideo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/infoq.py b/yt_dlp/extractor/infoq.py
index 347cc5154..abf7d36ef 100644
--- a/yt_dlp/extractor/infoq.py
+++ b/yt_dlp/extractor/infoq.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
from ..compat import (
compat_b64decode,
compat_urllib_parse_unquote,
diff --git a/yt_dlp/extractor/instagram.py b/yt_dlp/extractor/instagram.py
index 970f2c8ab..05000e2fb 100644
--- a/yt_dlp/extractor/instagram.py
+++ b/yt_dlp/extractor/instagram.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-
import itertools
import hashlib
import json
diff --git a/yt_dlp/extractor/internazionale.py b/yt_dlp/extractor/internazionale.py
index 45e2af690..c8f70785f 100644
--- a/yt_dlp/extractor/internazionale.py
+++ b/yt_dlp/extractor/internazionale.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import unified_timestamp
diff --git a/yt_dlp/extractor/internetvideoarchive.py b/yt_dlp/extractor/internetvideoarchive.py
index 880918cd7..6a8e30d73 100644
--- a/yt_dlp/extractor/internetvideoarchive.py
+++ b/yt_dlp/extractor/internetvideoarchive.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/iprima.py b/yt_dlp/extractor/iprima.py
index 1a2038453..5e0b523dc 100644
--- a/yt_dlp/extractor/iprima.py
+++ b/yt_dlp/extractor/iprima.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import time
diff --git a/yt_dlp/extractor/iqiyi.py b/yt_dlp/extractor/iqiyi.py
index 14877d405..b755aab07 100644
--- a/yt_dlp/extractor/iqiyi.py
+++ b/yt_dlp/extractor/iqiyi.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hashlib
import itertools
import re
diff --git a/yt_dlp/extractor/itprotv.py b/yt_dlp/extractor/itprotv.py
index 64cb4e69a..4ac12603a 100644
--- a/yt_dlp/extractor/itprotv.py
+++ b/yt_dlp/extractor/itprotv.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/itv.py b/yt_dlp/extractor/itv.py
index f1591403f..26d77a469 100644
--- a/yt_dlp/extractor/itv.py
+++ b/yt_dlp/extractor/itv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ivi.py b/yt_dlp/extractor/ivi.py
index 5f8a046e0..699746943 100644
--- a/yt_dlp/extractor/ivi.py
+++ b/yt_dlp/extractor/ivi.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/ivideon.py b/yt_dlp/extractor/ivideon.py
index 44b220846..538a961b7 100644
--- a/yt_dlp/extractor/ivideon.py
+++ b/yt_dlp/extractor/ivideon.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import (
compat_urllib_parse_urlencode,
diff --git a/yt_dlp/extractor/iwara.py b/yt_dlp/extractor/iwara.py
index c0e01e352..974b4be7d 100644
--- a/yt_dlp/extractor/iwara.py
+++ b/yt_dlp/extractor/iwara.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/izlesene.py b/yt_dlp/extractor/izlesene.py
index f8fca6c8f..6520ecf6d 100644
--- a/yt_dlp/extractor/izlesene.py
+++ b/yt_dlp/extractor/izlesene.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/jable.py b/yt_dlp/extractor/jable.py
index b294aee70..6840654cc 100644
--- a/yt_dlp/extractor/jable.py
+++ b/yt_dlp/extractor/jable.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/jamendo.py b/yt_dlp/extractor/jamendo.py
index 755d9703b..5dc2c25e6 100644
--- a/yt_dlp/extractor/jamendo.py
+++ b/yt_dlp/extractor/jamendo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hashlib
import random
diff --git a/yt_dlp/extractor/jeuxvideo.py b/yt_dlp/extractor/jeuxvideo.py
index 77c0f520c..56ea15cf9 100644
--- a/yt_dlp/extractor/jeuxvideo.py
+++ b/yt_dlp/extractor/jeuxvideo.py
@@ -1,8 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/joj.py b/yt_dlp/extractor/joj.py
index 7350f537c..a01411be1 100644
--- a/yt_dlp/extractor/joj.py
+++ b/yt_dlp/extractor/joj.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/jove.py b/yt_dlp/extractor/jove.py
index 4b7dfc526..245fe73d4 100644
--- a/yt_dlp/extractor/jove.py
+++ b/yt_dlp/extractor/jove.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/jwplatform.py b/yt_dlp/extractor/jwplatform.py
index 5aa508bf9..8dbbb2926 100644
--- a/yt_dlp/extractor/jwplatform.py
+++ b/yt_dlp/extractor/jwplatform.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/kakao.py b/yt_dlp/extractor/kakao.py
index 483ab7128..8ad1d9efd 100644
--- a/yt_dlp/extractor/kakao.py
+++ b/yt_dlp/extractor/kakao.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_HTTPError
from ..utils import (
diff --git a/yt_dlp/extractor/kaltura.py b/yt_dlp/extractor/kaltura.py
index f6dfc9caa..f9b9c5c78 100644
--- a/yt_dlp/extractor/kaltura.py
+++ b/yt_dlp/extractor/kaltura.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import base64
diff --git a/yt_dlp/extractor/kanalplay.py b/yt_dlp/extractor/kanalplay.py
index 5e24f7e21..ef74014c0 100644
--- a/yt_dlp/extractor/kanalplay.py
+++ b/yt_dlp/extractor/kanalplay.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/karaoketv.py b/yt_dlp/extractor/karaoketv.py
index bfccf89b0..381dc00ad 100644
--- a/yt_dlp/extractor/karaoketv.py
+++ b/yt_dlp/extractor/karaoketv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/karrierevideos.py b/yt_dlp/extractor/karrierevideos.py
index 7b291e0a0..28d4841aa 100644
--- a/yt_dlp/extractor/karrierevideos.py
+++ b/yt_dlp/extractor/karrierevideos.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urlparse
from ..utils import (
diff --git a/yt_dlp/extractor/keezmovies.py b/yt_dlp/extractor/keezmovies.py
index 06dbcbb40..79f9c7fa7 100644
--- a/yt_dlp/extractor/keezmovies.py
+++ b/yt_dlp/extractor/keezmovies.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/kelbyone.py b/yt_dlp/extractor/kelbyone.py
index 20c26cf48..dea056c12 100644
--- a/yt_dlp/extractor/kelbyone.py
+++ b/yt_dlp/extractor/kelbyone.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/ketnet.py b/yt_dlp/extractor/ketnet.py
index e0599d02f..ab6276727 100644
--- a/yt_dlp/extractor/ketnet.py
+++ b/yt_dlp/extractor/ketnet.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .canvas import CanvasIE
from .common import InfoExtractor
from ..compat import compat_urllib_parse_unquote
diff --git a/yt_dlp/extractor/khanacademy.py b/yt_dlp/extractor/khanacademy.py
index 87e520378..83cfeadba 100644
--- a/yt_dlp/extractor/khanacademy.py
+++ b/yt_dlp/extractor/khanacademy.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/kickstarter.py b/yt_dlp/extractor/kickstarter.py
index d4da8f484..c0d851d96 100644
--- a/yt_dlp/extractor/kickstarter.py
+++ b/yt_dlp/extractor/kickstarter.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import smuggle_url
diff --git a/yt_dlp/extractor/kinja.py b/yt_dlp/extractor/kinja.py
index 1be8b4809..c00abfbc1 100644
--- a/yt_dlp/extractor/kinja.py
+++ b/yt_dlp/extractor/kinja.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/kinopoisk.py b/yt_dlp/extractor/kinopoisk.py
index cdbb642e2..84a2489a3 100644
--- a/yt_dlp/extractor/kinopoisk.py
+++ b/yt_dlp/extractor/kinopoisk.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
dict_get,
diff --git a/yt_dlp/extractor/konserthusetplay.py b/yt_dlp/extractor/konserthusetplay.py
index dd42bb2f2..1e177c363 100644
--- a/yt_dlp/extractor/konserthusetplay.py
+++ b/yt_dlp/extractor/konserthusetplay.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/koo.py b/yt_dlp/extractor/koo.py
index 088db1cb0..892d355ba 100644
--- a/yt_dlp/extractor/koo.py
+++ b/yt_dlp/extractor/koo.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/krasview.py b/yt_dlp/extractor/krasview.py
index d27d052ff..4323aa429 100644
--- a/yt_dlp/extractor/krasview.py
+++ b/yt_dlp/extractor/krasview.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ku6.py b/yt_dlp/extractor/ku6.py
index a574408e5..31b4ea0c6 100644
--- a/yt_dlp/extractor/ku6.py
+++ b/yt_dlp/extractor/ku6.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/kusi.py b/yt_dlp/extractor/kusi.py
index 707fe1821..f1221ef1b 100644
--- a/yt_dlp/extractor/kusi.py
+++ b/yt_dlp/extractor/kusi.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import random
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/kuwo.py b/yt_dlp/extractor/kuwo.py
index 460a4252f..0c9518e66 100644
--- a/yt_dlp/extractor/kuwo.py
+++ b/yt_dlp/extractor/kuwo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/la7.py b/yt_dlp/extractor/la7.py
index de985e450..5d52decdb 100644
--- a/yt_dlp/extractor/la7.py
+++ b/yt_dlp/extractor/la7.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/laola1tv.py b/yt_dlp/extractor/laola1tv.py
index b5d27c2f0..4014a9256 100644
--- a/yt_dlp/extractor/laola1tv.py
+++ b/yt_dlp/extractor/laola1tv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/lastfm.py b/yt_dlp/extractor/lastfm.py
index 5215717e8..7ba666d06 100644
--- a/yt_dlp/extractor/lastfm.py
+++ b/yt_dlp/extractor/lastfm.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/lbry.py b/yt_dlp/extractor/lbry.py
index 5d5457c53..953ce2e18 100644
--- a/yt_dlp/extractor/lbry.py
+++ b/yt_dlp/extractor/lbry.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import json
diff --git a/yt_dlp/extractor/lci.py b/yt_dlp/extractor/lci.py
index 920872f5c..81cf88b6c 100644
--- a/yt_dlp/extractor/lci.py
+++ b/yt_dlp/extractor/lci.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/lcp.py b/yt_dlp/extractor/lcp.py
index ade27a99e..87543d56f 100644
--- a/yt_dlp/extractor/lcp.py
+++ b/yt_dlp/extractor/lcp.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .arkena import ArkenaIE
diff --git a/yt_dlp/extractor/lecture2go.py b/yt_dlp/extractor/lecture2go.py
index 81b5d41be..bee4e7587 100644
--- a/yt_dlp/extractor/lecture2go.py
+++ b/yt_dlp/extractor/lecture2go.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/lecturio.py b/yt_dlp/extractor/lecturio.py
index 0ee1eeb4d..c3d0cb193 100644
--- a/yt_dlp/extractor/lecturio.py
+++ b/yt_dlp/extractor/lecturio.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/leeco.py b/yt_dlp/extractor/leeco.py
index d5e11423c..258e396cb 100644
--- a/yt_dlp/extractor/leeco.py
+++ b/yt_dlp/extractor/leeco.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import datetime
import hashlib
import re
diff --git a/yt_dlp/extractor/lego.py b/yt_dlp/extractor/lego.py
index 901f43bcf..7d0238a1f 100644
--- a/yt_dlp/extractor/lego.py
+++ b/yt_dlp/extractor/lego.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import uuid
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/lemonde.py b/yt_dlp/extractor/lemonde.py
index 3306892e8..c916791af 100644
--- a/yt_dlp/extractor/lemonde.py
+++ b/yt_dlp/extractor/lemonde.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/lenta.py b/yt_dlp/extractor/lenta.py
index 2ebd4e577..10aac984e 100644
--- a/yt_dlp/extractor/lenta.py
+++ b/yt_dlp/extractor/lenta.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/libraryofcongress.py b/yt_dlp/extractor/libraryofcongress.py
index 03f205144..afe3c98a1 100644
--- a/yt_dlp/extractor/libraryofcongress.py
+++ b/yt_dlp/extractor/libraryofcongress.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/libsyn.py b/yt_dlp/extractor/libsyn.py
index d1fcda4ef..8245a3481 100644
--- a/yt_dlp/extractor/libsyn.py
+++ b/yt_dlp/extractor/libsyn.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/lifenews.py b/yt_dlp/extractor/lifenews.py
index 49a0a5989..8c7d2064d 100644
--- a/yt_dlp/extractor/lifenews.py
+++ b/yt_dlp/extractor/lifenews.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/limelight.py b/yt_dlp/extractor/limelight.py
index b20681ad1..25667fc07 100644
--- a/yt_dlp/extractor/limelight.py
+++ b/yt_dlp/extractor/limelight.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/line.py b/yt_dlp/extractor/line.py
index 987c43430..63b6c002a 100644
--- a/yt_dlp/extractor/line.py
+++ b/yt_dlp/extractor/line.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/linkedin.py b/yt_dlp/extractor/linkedin.py
index 0f57bfa06..27f1080b4 100644
--- a/yt_dlp/extractor/linkedin.py
+++ b/yt_dlp/extractor/linkedin.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from itertools import zip_longest
import re
diff --git a/yt_dlp/extractor/linuxacademy.py b/yt_dlp/extractor/linuxacademy.py
index 6aff88e13..bf22855a9 100644
--- a/yt_dlp/extractor/linuxacademy.py
+++ b/yt_dlp/extractor/linuxacademy.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
import random
diff --git a/yt_dlp/extractor/litv.py b/yt_dlp/extractor/litv.py
index 16b475a44..31826ac99 100644
--- a/yt_dlp/extractor/litv.py
+++ b/yt_dlp/extractor/litv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/livejournal.py b/yt_dlp/extractor/livejournal.py
index 3a9f4553f..96bd8b233 100644
--- a/yt_dlp/extractor/livejournal.py
+++ b/yt_dlp/extractor/livejournal.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/livestream.py b/yt_dlp/extractor/livestream.py
index 45bf26d26..4b90c22c5 100644
--- a/yt_dlp/extractor/livestream.py
+++ b/yt_dlp/extractor/livestream.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
import itertools
diff --git a/yt_dlp/extractor/lnkgo.py b/yt_dlp/extractor/lnkgo.py
index bd2dffac0..3bb52777f 100644
--- a/yt_dlp/extractor/lnkgo.py
+++ b/yt_dlp/extractor/lnkgo.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/localnews8.py b/yt_dlp/extractor/localnews8.py
index c3e9d10fa..6f3f02c70 100644
--- a/yt_dlp/extractor/localnews8.py
+++ b/yt_dlp/extractor/localnews8.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/lovehomeporn.py b/yt_dlp/extractor/lovehomeporn.py
index ca4b5f375..ba5a13acd 100644
--- a/yt_dlp/extractor/lovehomeporn.py
+++ b/yt_dlp/extractor/lovehomeporn.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .nuevo import NuevoBaseIE
diff --git a/yt_dlp/extractor/lrt.py b/yt_dlp/extractor/lrt.py
index 4024aef73..53076b839 100644
--- a/yt_dlp/extractor/lrt.py
+++ b/yt_dlp/extractor/lrt.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/lynda.py b/yt_dlp/extractor/lynda.py
index ce304743f..1ae7f9d4f 100644
--- a/yt_dlp/extractor/lynda.py
+++ b/yt_dlp/extractor/lynda.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/m6.py b/yt_dlp/extractor/m6.py
index 9806875e8..9dcc60164 100644
--- a/yt_dlp/extractor/m6.py
+++ b/yt_dlp/extractor/m6.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/magentamusik360.py b/yt_dlp/extractor/magentamusik360.py
index 5c274902f..5d0cb3bfb 100644
--- a/yt_dlp/extractor/magentamusik360.py
+++ b/yt_dlp/extractor/magentamusik360.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mailru.py b/yt_dlp/extractor/mailru.py
index 5d9f80bb3..5f30d0eaa 100644
--- a/yt_dlp/extractor/mailru.py
+++ b/yt_dlp/extractor/mailru.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import json
import re
diff --git a/yt_dlp/extractor/mainstreaming.py b/yt_dlp/extractor/mainstreaming.py
index 0f349a7a3..c144c7592 100644
--- a/yt_dlp/extractor/mainstreaming.py
+++ b/yt_dlp/extractor/mainstreaming.py
@@ -1,4 +1,3 @@
-# coding: utf-8
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/malltv.py b/yt_dlp/extractor/malltv.py
index fadfd9338..bfd6008b3 100644
--- a/yt_dlp/extractor/malltv.py
+++ b/yt_dlp/extractor/malltv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/mangomolo.py b/yt_dlp/extractor/mangomolo.py
index 68ce138b3..a392e9b54 100644
--- a/yt_dlp/extractor/mangomolo.py
+++ b/yt_dlp/extractor/mangomolo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_b64decode,
diff --git a/yt_dlp/extractor/manoto.py b/yt_dlp/extractor/manoto.py
index d12aa5f60..dc8653f5d 100644
--- a/yt_dlp/extractor/manoto.py
+++ b/yt_dlp/extractor/manoto.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/manyvids.py b/yt_dlp/extractor/manyvids.py
index bd24f8853..1f537d267 100644
--- a/yt_dlp/extractor/manyvids.py
+++ b/yt_dlp/extractor/manyvids.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/maoritv.py b/yt_dlp/extractor/maoritv.py
index 0d23fec75..67780eafc 100644
--- a/yt_dlp/extractor/maoritv.py
+++ b/yt_dlp/extractor/maoritv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/markiza.py b/yt_dlp/extractor/markiza.py
index def960a0c..53ed79158 100644
--- a/yt_dlp/extractor/markiza.py
+++ b/yt_dlp/extractor/markiza.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/massengeschmacktv.py b/yt_dlp/extractor/massengeschmacktv.py
index b381d31b4..4508e4391 100644
--- a/yt_dlp/extractor/massengeschmacktv.py
+++ b/yt_dlp/extractor/massengeschmacktv.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/matchtv.py b/yt_dlp/extractor/matchtv.py
index e003b8d25..94ae20b26 100644
--- a/yt_dlp/extractor/matchtv.py
+++ b/yt_dlp/extractor/matchtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import random
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mdr.py b/yt_dlp/extractor/mdr.py
index 3ca174c2b..b44cf809a 100644
--- a/yt_dlp/extractor/mdr.py
+++ b/yt_dlp/extractor/mdr.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urlparse
from ..utils import (
diff --git a/yt_dlp/extractor/medaltv.py b/yt_dlp/extractor/medaltv.py
index 59cc30736..527b50cb0 100644
--- a/yt_dlp/extractor/medaltv.py
+++ b/yt_dlp/extractor/medaltv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mediaite.py b/yt_dlp/extractor/mediaite.py
index b670f0d61..0f9079b11 100644
--- a/yt_dlp/extractor/mediaite.py
+++ b/yt_dlp/extractor/mediaite.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mediaklikk.py b/yt_dlp/extractor/mediaklikk.py
index 18ff3befa..f9a449377 100644
--- a/yt_dlp/extractor/mediaklikk.py
+++ b/yt_dlp/extractor/mediaklikk.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from ..utils import (
unified_strdate
)
diff --git a/yt_dlp/extractor/medialaan.py b/yt_dlp/extractor/medialaan.py
index 788acf7fb..297f8c4b2 100644
--- a/yt_dlp/extractor/medialaan.py
+++ b/yt_dlp/extractor/medialaan.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mediaset.py b/yt_dlp/extractor/mediaset.py
index d6b456c5d..60c454dda 100644
--- a/yt_dlp/extractor/mediaset.py
+++ b/yt_dlp/extractor/mediaset.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import re
diff --git a/yt_dlp/extractor/mediasite.py b/yt_dlp/extractor/mediasite.py
index fbf9223b2..30464bad0 100644
--- a/yt_dlp/extractor/mediasite.py
+++ b/yt_dlp/extractor/mediasite.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import json
diff --git a/yt_dlp/extractor/medici.py b/yt_dlp/extractor/medici.py
index cd910238e..328ccd2c9 100644
--- a/yt_dlp/extractor/medici.py
+++ b/yt_dlp/extractor/medici.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
unified_strdate,
diff --git a/yt_dlp/extractor/megaphone.py b/yt_dlp/extractor/megaphone.py
index 5bafa6cf4..0c150ef45 100644
--- a/yt_dlp/extractor/megaphone.py
+++ b/yt_dlp/extractor/megaphone.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/megatvcom.py b/yt_dlp/extractor/megatvcom.py
index 0d6793acd..ec481d016 100644
--- a/yt_dlp/extractor/megatvcom.py
+++ b/yt_dlp/extractor/megatvcom.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/meipai.py b/yt_dlp/extractor/meipai.py
index 2445b8b39..95b6dfe52 100644
--- a/yt_dlp/extractor/meipai.py
+++ b/yt_dlp/extractor/meipai.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/melonvod.py b/yt_dlp/extractor/melonvod.py
index bd8cf13ab..0cbc961c4 100644
--- a/yt_dlp/extractor/melonvod.py
+++ b/yt_dlp/extractor/melonvod.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/meta.py b/yt_dlp/extractor/meta.py
index cdb46e163..7c11e6017 100644
--- a/yt_dlp/extractor/meta.py
+++ b/yt_dlp/extractor/meta.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .pladform import PladformIE
from ..utils import (
diff --git a/yt_dlp/extractor/metacafe.py b/yt_dlp/extractor/metacafe.py
index 7b2d4a003..31fec86d2 100644
--- a/yt_dlp/extractor/metacafe.py
+++ b/yt_dlp/extractor/metacafe.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/metacritic.py b/yt_dlp/extractor/metacritic.py
index 1424288e7..543bdffad 100644
--- a/yt_dlp/extractor/metacritic.py
+++ b/yt_dlp/extractor/metacritic.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mgoon.py b/yt_dlp/extractor/mgoon.py
index 184c311be..c41c51384 100644
--- a/yt_dlp/extractor/mgoon.py
+++ b/yt_dlp/extractor/mgoon.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/mgtv.py b/yt_dlp/extractor/mgtv.py
index 4ac70ea57..96f3fb982 100644
--- a/yt_dlp/extractor/mgtv.py
+++ b/yt_dlp/extractor/mgtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import time
import uuid
diff --git a/yt_dlp/extractor/miaopai.py b/yt_dlp/extractor/miaopai.py
index cf0610bdf..329ce3658 100644
--- a/yt_dlp/extractor/miaopai.py
+++ b/yt_dlp/extractor/miaopai.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/microsoftstream.py b/yt_dlp/extractor/microsoftstream.py
index 4d5a9df1f..2dde82a75 100644
--- a/yt_dlp/extractor/microsoftstream.py
+++ b/yt_dlp/extractor/microsoftstream.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from base64 import b64decode
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/microsoftvirtualacademy.py b/yt_dlp/extractor/microsoftvirtualacademy.py
index 9255a7964..f15f00ee5 100644
--- a/yt_dlp/extractor/microsoftvirtualacademy.py
+++ b/yt_dlp/extractor/microsoftvirtualacademy.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mildom.py b/yt_dlp/extractor/mildom.py
index 4de8e9ef4..c7a61dfa0 100644
--- a/yt_dlp/extractor/mildom.py
+++ b/yt_dlp/extractor/mildom.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import json
import uuid
diff --git a/yt_dlp/extractor/minds.py b/yt_dlp/extractor/minds.py
index 9da07207b..393d20604 100644
--- a/yt_dlp/extractor/minds.py
+++ b/yt_dlp/extractor/minds.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/ministrygrid.py b/yt_dlp/extractor/ministrygrid.py
index 8ad9239c5..053c6726c 100644
--- a/yt_dlp/extractor/ministrygrid.py
+++ b/yt_dlp/extractor/ministrygrid.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/minoto.py b/yt_dlp/extractor/minoto.py
index 603ce940b..e799cd3bc 100644
--- a/yt_dlp/extractor/minoto.py
+++ b/yt_dlp/extractor/minoto.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/miomio.py b/yt_dlp/extractor/miomio.py
index 40f72d66f..a0a041ea5 100644
--- a/yt_dlp/extractor/miomio.py
+++ b/yt_dlp/extractor/miomio.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import random
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mirrativ.py b/yt_dlp/extractor/mirrativ.py
index 2111de615..8192f2b46 100644
--- a/yt_dlp/extractor/mirrativ.py
+++ b/yt_dlp/extractor/mirrativ.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/mit.py b/yt_dlp/extractor/mit.py
index 60e456978..38cc0c274 100644
--- a/yt_dlp/extractor/mit.py
+++ b/yt_dlp/extractor/mit.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
import json
diff --git a/yt_dlp/extractor/mitele.py b/yt_dlp/extractor/mitele.py
index b5937233b..12b2b2432 100644
--- a/yt_dlp/extractor/mitele.py
+++ b/yt_dlp/extractor/mitele.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .telecinco import TelecincoIE
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/mixch.py b/yt_dlp/extractor/mixch.py
index 31f450dfa..3f430a717 100644
--- a/yt_dlp/extractor/mixch.py
+++ b/yt_dlp/extractor/mixch.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/mixcloud.py b/yt_dlp/extractor/mixcloud.py
index b19e59b1a..796f268f4 100644
--- a/yt_dlp/extractor/mixcloud.py
+++ b/yt_dlp/extractor/mixcloud.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mlb.py b/yt_dlp/extractor/mlb.py
index b69301d97..5fb97083a 100644
--- a/yt_dlp/extractor/mlb.py
+++ b/yt_dlp/extractor/mlb.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mlssoccer.py b/yt_dlp/extractor/mlssoccer.py
index 1d6d4b804..9383f1358 100644
--- a/yt_dlp/extractor/mlssoccer.py
+++ b/yt_dlp/extractor/mlssoccer.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mnet.py b/yt_dlp/extractor/mnet.py
index 0e26ca1b3..65e3d476a 100644
--- a/yt_dlp/extractor/mnet.py
+++ b/yt_dlp/extractor/mnet.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/moevideo.py b/yt_dlp/extractor/moevideo.py
index a3f1b3866..fda08cae9 100644
--- a/yt_dlp/extractor/moevideo.py
+++ b/yt_dlp/extractor/moevideo.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/mofosex.py b/yt_dlp/extractor/mofosex.py
index 5234cac02..66a098c97 100644
--- a/yt_dlp/extractor/mofosex.py
+++ b/yt_dlp/extractor/mofosex.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mojvideo.py b/yt_dlp/extractor/mojvideo.py
index 16d94052b..d47ad0742 100644
--- a/yt_dlp/extractor/mojvideo.py
+++ b/yt_dlp/extractor/mojvideo.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/morningstar.py b/yt_dlp/extractor/morningstar.py
index 71a22a614..e9fcfe3e2 100644
--- a/yt_dlp/extractor/morningstar.py
+++ b/yt_dlp/extractor/morningstar.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/motherless.py b/yt_dlp/extractor/motherless.py
index 111c7c544..9e53a8a97 100644
--- a/yt_dlp/extractor/motherless.py
+++ b/yt_dlp/extractor/motherless.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import datetime
import re
diff --git a/yt_dlp/extractor/motorsport.py b/yt_dlp/extractor/motorsport.py
index c9d1ab64d..b292aeb9a 100644
--- a/yt_dlp/extractor/motorsport.py
+++ b/yt_dlp/extractor/motorsport.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_urlparse,
diff --git a/yt_dlp/extractor/movieclips.py b/yt_dlp/extractor/movieclips.py
index 5453da1ac..4777f440e 100644
--- a/yt_dlp/extractor/movieclips.py
+++ b/yt_dlp/extractor/movieclips.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
smuggle_url,
diff --git a/yt_dlp/extractor/moviepilot.py b/yt_dlp/extractor/moviepilot.py
index 4605d3481..ca541567a 100644
--- a/yt_dlp/extractor/moviepilot.py
+++ b/yt_dlp/extractor/moviepilot.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .dailymotion import DailymotionIE
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/moviezine.py b/yt_dlp/extractor/moviezine.py
index 730da4bd7..5757322d6 100644
--- a/yt_dlp/extractor/moviezine.py
+++ b/yt_dlp/extractor/moviezine.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/movingimage.py b/yt_dlp/extractor/movingimage.py
index 4f62d628a..cdd8ba4dc 100644
--- a/yt_dlp/extractor/movingimage.py
+++ b/yt_dlp/extractor/movingimage.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
unescapeHTML,
diff --git a/yt_dlp/extractor/msn.py b/yt_dlp/extractor/msn.py
index f34e2102c..6f4935e51 100644
--- a/yt_dlp/extractor/msn.py
+++ b/yt_dlp/extractor/msn.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/mtv.py b/yt_dlp/extractor/mtv.py
index cff314e27..3ef851e0b 100644
--- a/yt_dlp/extractor/mtv.py
+++ b/yt_dlp/extractor/mtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/muenchentv.py b/yt_dlp/extractor/muenchentv.py
index a53929e1b..b9681d1bd 100644
--- a/yt_dlp/extractor/muenchentv.py
+++ b/yt_dlp/extractor/muenchentv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/murrtube.py b/yt_dlp/extractor/murrtube.py
index 1eb5de660..508d51247 100644
--- a/yt_dlp/extractor/murrtube.py
+++ b/yt_dlp/extractor/murrtube.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import json
diff --git a/yt_dlp/extractor/musescore.py b/yt_dlp/extractor/musescore.py
index 09fadf8d9..289ae5733 100644
--- a/yt_dlp/extractor/musescore.py
+++ b/yt_dlp/extractor/musescore.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/musicdex.py b/yt_dlp/extractor/musicdex.py
index 05f722091..4d8e74f6b 100644
--- a/yt_dlp/extractor/musicdex.py
+++ b/yt_dlp/extractor/musicdex.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
date_from_str,
diff --git a/yt_dlp/extractor/mwave.py b/yt_dlp/extractor/mwave.py
index a67276596..0cbb16736 100644
--- a/yt_dlp/extractor/mwave.py
+++ b/yt_dlp/extractor/mwave.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/mxplayer.py b/yt_dlp/extractor/mxplayer.py
index 3c2afd838..cdc340a80 100644
--- a/yt_dlp/extractor/mxplayer.py
+++ b/yt_dlp/extractor/mxplayer.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import try_get
diff --git a/yt_dlp/extractor/mychannels.py b/yt_dlp/extractor/mychannels.py
index d820d4eb8..8a70c1f7b 100644
--- a/yt_dlp/extractor/mychannels.py
+++ b/yt_dlp/extractor/mychannels.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/myspace.py b/yt_dlp/extractor/myspace.py
index 4227d4248..63d36c30a 100644
--- a/yt_dlp/extractor/myspace.py
+++ b/yt_dlp/extractor/myspace.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/myspass.py b/yt_dlp/extractor/myspass.py
index 1775d5f0b..28ac982d6 100644
--- a/yt_dlp/extractor/myspass.py
+++ b/yt_dlp/extractor/myspass.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/myvi.py b/yt_dlp/extractor/myvi.py
index 75d286365..b31cf4493 100644
--- a/yt_dlp/extractor/myvi.py
+++ b/yt_dlp/extractor/myvi.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/myvideoge.py b/yt_dlp/extractor/myvideoge.py
index 0a1d7d0cb..513d4cb77 100644
--- a/yt_dlp/extractor/myvideoge.py
+++ b/yt_dlp/extractor/myvideoge.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import js_to_json
diff --git a/yt_dlp/extractor/myvidster.py b/yt_dlp/extractor/myvidster.py
index 2117d302d..c91f294bf 100644
--- a/yt_dlp/extractor/myvidster.py
+++ b/yt_dlp/extractor/myvidster.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/n1.py b/yt_dlp/extractor/n1.py
index fdb7f32db..cc0ff533e 100644
--- a/yt_dlp/extractor/n1.py
+++ b/yt_dlp/extractor/n1.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nate.py b/yt_dlp/extractor/nate.py
index 072faf6ea..c83b2acbd 100644
--- a/yt_dlp/extractor/nate.py
+++ b/yt_dlp/extractor/nate.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nationalgeographic.py b/yt_dlp/extractor/nationalgeographic.py
index ee12e2b47..f22317d56 100644
--- a/yt_dlp/extractor/nationalgeographic.py
+++ b/yt_dlp/extractor/nationalgeographic.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .fox import FOXIE
from ..utils import (
diff --git a/yt_dlp/extractor/naver.py b/yt_dlp/extractor/naver.py
index a6821ba86..a230d9cdd 100644
--- a/yt_dlp/extractor/naver.py
+++ b/yt_dlp/extractor/naver.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nba.py b/yt_dlp/extractor/nba.py
index 359cc52b7..e95c1b795 100644
--- a/yt_dlp/extractor/nba.py
+++ b/yt_dlp/extractor/nba.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import functools
import re
diff --git a/yt_dlp/extractor/nbc.py b/yt_dlp/extractor/nbc.py
index 109403440..8aab80a0f 100644
--- a/yt_dlp/extractor/nbc.py
+++ b/yt_dlp/extractor/nbc.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import base64
import json
import re
diff --git a/yt_dlp/extractor/ndr.py b/yt_dlp/extractor/ndr.py
index 1917254b8..de0142ccf 100644
--- a/yt_dlp/extractor/ndr.py
+++ b/yt_dlp/extractor/ndr.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/ndtv.py b/yt_dlp/extractor/ndtv.py
index bc3eb9160..fbb033169 100644
--- a/yt_dlp/extractor/ndtv.py
+++ b/yt_dlp/extractor/ndtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_urllib_parse_unquote_plus
diff --git a/yt_dlp/extractor/nebula.py b/yt_dlp/extractor/nebula.py
index 77f253519..eccf740aa 100644
--- a/yt_dlp/extractor/nebula.py
+++ b/yt_dlp/extractor/nebula.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import json
import time
diff --git a/yt_dlp/extractor/nerdcubed.py b/yt_dlp/extractor/nerdcubed.py
index 9feccc672..7c801b5d3 100644
--- a/yt_dlp/extractor/nerdcubed.py
+++ b/yt_dlp/extractor/nerdcubed.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import datetime
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/neteasemusic.py b/yt_dlp/extractor/neteasemusic.py
index 57b4774b6..4def7e76b 100644
--- a/yt_dlp/extractor/neteasemusic.py
+++ b/yt_dlp/extractor/neteasemusic.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from hashlib import md5
from base64 import b64encode
from datetime import datetime
diff --git a/yt_dlp/extractor/netzkino.py b/yt_dlp/extractor/netzkino.py
index 4ad0d8e96..49b29b67c 100644
--- a/yt_dlp/extractor/netzkino.py
+++ b/yt_dlp/extractor/netzkino.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/newgrounds.py b/yt_dlp/extractor/newgrounds.py
index 6525a6d8a..ba24720e3 100644
--- a/yt_dlp/extractor/newgrounds.py
+++ b/yt_dlp/extractor/newgrounds.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import re
diff --git a/yt_dlp/extractor/newstube.py b/yt_dlp/extractor/newstube.py
index 479141ae0..20db46057 100644
--- a/yt_dlp/extractor/newstube.py
+++ b/yt_dlp/extractor/newstube.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import hashlib
diff --git a/yt_dlp/extractor/newsy.py b/yt_dlp/extractor/newsy.py
index cf3164100..9fde6c079 100644
--- a/yt_dlp/extractor/newsy.py
+++ b/yt_dlp/extractor/newsy.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
js_to_json,
diff --git a/yt_dlp/extractor/nextmedia.py b/yt_dlp/extractor/nextmedia.py
index 7bd1290bf..1f83089fc 100644
--- a/yt_dlp/extractor/nextmedia.py
+++ b/yt_dlp/extractor/nextmedia.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urlparse
from ..utils import (
diff --git a/yt_dlp/extractor/nexx.py b/yt_dlp/extractor/nexx.py
index a521bb6e4..01376be3d 100644
--- a/yt_dlp/extractor/nexx.py
+++ b/yt_dlp/extractor/nexx.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hashlib
import random
import re
diff --git a/yt_dlp/extractor/nfb.py b/yt_dlp/extractor/nfb.py
index a12e503de..79c6aaf0c 100644
--- a/yt_dlp/extractor/nfb.py
+++ b/yt_dlp/extractor/nfb.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/nfhsnetwork.py b/yt_dlp/extractor/nfhsnetwork.py
index 802f6caf0..e6f98b036 100644
--- a/yt_dlp/extractor/nfhsnetwork.py
+++ b/yt_dlp/extractor/nfhsnetwork.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nfl.py b/yt_dlp/extractor/nfl.py
index 821276a31..e5810b346 100644
--- a/yt_dlp/extractor/nfl.py
+++ b/yt_dlp/extractor/nfl.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nhk.py b/yt_dlp/extractor/nhk.py
index 3b8efc3e6..cf2ec7b79 100644
--- a/yt_dlp/extractor/nhk.py
+++ b/yt_dlp/extractor/nhk.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nhl.py b/yt_dlp/extractor/nhl.py
index d3a5e17e9..884f9e2ae 100644
--- a/yt_dlp/extractor/nhl.py
+++ b/yt_dlp/extractor/nhl.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/nick.py b/yt_dlp/extractor/nick.py
index ba7da7602..2a228d8de 100644
--- a/yt_dlp/extractor/nick.py
+++ b/yt_dlp/extractor/nick.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .mtv import MTVServicesInfoExtractor
from ..utils import update_url_query
diff --git a/yt_dlp/extractor/niconico.py b/yt_dlp/extractor/niconico.py
index 4eb6ed070..e60556a4d 100644
--- a/yt_dlp/extractor/niconico.py
+++ b/yt_dlp/extractor/niconico.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import datetime
import functools
import itertools
diff --git a/yt_dlp/extractor/ninecninemedia.py b/yt_dlp/extractor/ninecninemedia.py
index 781842721..462caf466 100644
--- a/yt_dlp/extractor/ninecninemedia.py
+++ b/yt_dlp/extractor/ninecninemedia.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
float_or_none,
diff --git a/yt_dlp/extractor/ninegag.py b/yt_dlp/extractor/ninegag.py
index 14390823b..00ca95ea2 100644
--- a/yt_dlp/extractor/ninegag.py
+++ b/yt_dlp/extractor/ninegag.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/ninenow.py b/yt_dlp/extractor/ninenow.py
index 6043674ba..b970f8ccb 100644
--- a/yt_dlp/extractor/ninenow.py
+++ b/yt_dlp/extractor/ninenow.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/nintendo.py b/yt_dlp/extractor/nintendo.py
index ff8f70ba6..ed839af25 100644
--- a/yt_dlp/extractor/nintendo.py
+++ b/yt_dlp/extractor/nintendo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nitter.py b/yt_dlp/extractor/nitter.py
index 8bb709cd7..251bf444f 100644
--- a/yt_dlp/extractor/nitter.py
+++ b/yt_dlp/extractor/nitter.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urlparse
from ..utils import (
diff --git a/yt_dlp/extractor/njpwworld.py b/yt_dlp/extractor/njpwworld.py
index 68c8c8e52..e761cf257 100644
--- a/yt_dlp/extractor/njpwworld.py
+++ b/yt_dlp/extractor/njpwworld.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nobelprize.py b/yt_dlp/extractor/nobelprize.py
index 4dfdb09d6..35b64530f 100644
--- a/yt_dlp/extractor/nobelprize.py
+++ b/yt_dlp/extractor/nobelprize.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
js_to_json,
diff --git a/yt_dlp/extractor/noco.py b/yt_dlp/extractor/noco.py
index 28af909d5..583d399cc 100644
--- a/yt_dlp/extractor/noco.py
+++ b/yt_dlp/extractor/noco.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import time
import hashlib
diff --git a/yt_dlp/extractor/nonktube.py b/yt_dlp/extractor/nonktube.py
index ca1424e06..f191be33b 100644
--- a/yt_dlp/extractor/nonktube.py
+++ b/yt_dlp/extractor/nonktube.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .nuevo import NuevoBaseIE
diff --git a/yt_dlp/extractor/noodlemagazine.py b/yt_dlp/extractor/noodlemagazine.py
index 2f170bbfe..3e04da67e 100644
--- a/yt_dlp/extractor/noodlemagazine.py
+++ b/yt_dlp/extractor/noodlemagazine.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
parse_duration,
diff --git a/yt_dlp/extractor/noovo.py b/yt_dlp/extractor/noovo.py
index b40770d07..acbb74c6e 100644
--- a/yt_dlp/extractor/noovo.py
+++ b/yt_dlp/extractor/noovo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .brightcove import BrightcoveNewIE
from .common import InfoExtractor
from ..compat import compat_str
diff --git a/yt_dlp/extractor/normalboots.py b/yt_dlp/extractor/normalboots.py
index 61fe571df..07babcd2c 100644
--- a/yt_dlp/extractor/normalboots.py
+++ b/yt_dlp/extractor/normalboots.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .jwplatform import JWPlatformIE
diff --git a/yt_dlp/extractor/nosvideo.py b/yt_dlp/extractor/nosvideo.py
index 53c500c35..b6d3ea40c 100644
--- a/yt_dlp/extractor/nosvideo.py
+++ b/yt_dlp/extractor/nosvideo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nova.py b/yt_dlp/extractor/nova.py
index 00a64f88d..6875d26ba 100644
--- a/yt_dlp/extractor/nova.py
+++ b/yt_dlp/extractor/nova.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/novaplay.py b/yt_dlp/extractor/novaplay.py
index bfb2c8751..4f1a84651 100644
--- a/yt_dlp/extractor/novaplay.py
+++ b/yt_dlp/extractor/novaplay.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
from ..utils import int_or_none, parse_duration, parse_iso8601
diff --git a/yt_dlp/extractor/nowness.py b/yt_dlp/extractor/nowness.py
index b2c715f41..fc9043bce 100644
--- a/yt_dlp/extractor/nowness.py
+++ b/yt_dlp/extractor/nowness.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .brightcove import (
BrightcoveLegacyIE,
BrightcoveNewIE,
diff --git a/yt_dlp/extractor/noz.py b/yt_dlp/extractor/noz.py
index bdc2efcd7..22cb08e8a 100644
--- a/yt_dlp/extractor/noz.py
+++ b/yt_dlp/extractor/noz.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_urllib_parse_unquote,
diff --git a/yt_dlp/extractor/npo.py b/yt_dlp/extractor/npo.py
index a8aaef6f1..0b5f32c2e 100644
--- a/yt_dlp/extractor/npo.py
+++ b/yt_dlp/extractor/npo.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/npr.py b/yt_dlp/extractor/npr.py
index 49f062d7a..6d93f154c 100644
--- a/yt_dlp/extractor/npr.py
+++ b/yt_dlp/extractor/npr.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/nrk.py b/yt_dlp/extractor/nrk.py
index 0cf26d598..553c55132 100644
--- a/yt_dlp/extractor/nrk.py
+++ b/yt_dlp/extractor/nrk.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import random
import re
diff --git a/yt_dlp/extractor/nrl.py b/yt_dlp/extractor/nrl.py
index 0bd5086ae..798d03417 100644
--- a/yt_dlp/extractor/nrl.py
+++ b/yt_dlp/extractor/nrl.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ntvcojp.py b/yt_dlp/extractor/ntvcojp.py
index c9af91188..422ec6eb0 100644
--- a/yt_dlp/extractor/ntvcojp.py
+++ b/yt_dlp/extractor/ntvcojp.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/ntvde.py b/yt_dlp/extractor/ntvde.py
index 035582ee8..d252ced86 100644
--- a/yt_dlp/extractor/ntvde.py
+++ b/yt_dlp/extractor/ntvde.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ntvru.py b/yt_dlp/extractor/ntvru.py
index c47d1dfa4..c8df110e8 100644
--- a/yt_dlp/extractor/ntvru.py
+++ b/yt_dlp/extractor/ntvru.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/nuevo.py b/yt_dlp/extractor/nuevo.py
index be1e09d37..ec54041f1 100644
--- a/yt_dlp/extractor/nuevo.py
+++ b/yt_dlp/extractor/nuevo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/nuvid.py b/yt_dlp/extractor/nuvid.py
index 84fb97d6a..fafcc8f4b 100644
--- a/yt_dlp/extractor/nuvid.py
+++ b/yt_dlp/extractor/nuvid.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nytimes.py b/yt_dlp/extractor/nytimes.py
index 99964737d..f388688c4 100644
--- a/yt_dlp/extractor/nytimes.py
+++ b/yt_dlp/extractor/nytimes.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hmac
import hashlib
import base64
diff --git a/yt_dlp/extractor/nzherald.py b/yt_dlp/extractor/nzherald.py
index e5601b495..7c9efd922 100644
--- a/yt_dlp/extractor/nzherald.py
+++ b/yt_dlp/extractor/nzherald.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .brightcove import BrightcoveNewIE
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/nzz.py b/yt_dlp/extractor/nzz.py
index 61ee77adb..ac3b73156 100644
--- a/yt_dlp/extractor/nzz.py
+++ b/yt_dlp/extractor/nzz.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/odatv.py b/yt_dlp/extractor/odatv.py
index 314527f98..24ab93942 100644
--- a/yt_dlp/extractor/odatv.py
+++ b/yt_dlp/extractor/odatv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/odnoklassniki.py b/yt_dlp/extractor/odnoklassniki.py
index 293f1aa60..36a7f5f4e 100644
--- a/yt_dlp/extractor/odnoklassniki.py
+++ b/yt_dlp/extractor/odnoklassniki.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/oktoberfesttv.py b/yt_dlp/extractor/oktoberfesttv.py
index 276567436..e0ac8563a 100644
--- a/yt_dlp/extractor/oktoberfesttv.py
+++ b/yt_dlp/extractor/oktoberfesttv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/olympics.py b/yt_dlp/extractor/olympics.py
index 784f282c7..85f17a2f4 100644
--- a/yt_dlp/extractor/olympics.py
+++ b/yt_dlp/extractor/olympics.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/on24.py b/yt_dlp/extractor/on24.py
index d4d824430..779becc70 100644
--- a/yt_dlp/extractor/on24.py
+++ b/yt_dlp/extractor/on24.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/once.py b/yt_dlp/extractor/once.py
index 3e44b7829..460b82d02 100644
--- a/yt_dlp/extractor/once.py
+++ b/yt_dlp/extractor/once.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ondemandkorea.py b/yt_dlp/extractor/ondemandkorea.py
index e933ea2cc..84687ef47 100644
--- a/yt_dlp/extractor/ondemandkorea.py
+++ b/yt_dlp/extractor/ondemandkorea.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/onefootball.py b/yt_dlp/extractor/onefootball.py
index 826faadd2..41815bef1 100644
--- a/yt_dlp/extractor/onefootball.py
+++ b/yt_dlp/extractor/onefootball.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/onet.py b/yt_dlp/extractor/onet.py
index 95177a213..ea46d7def 100644
--- a/yt_dlp/extractor/onet.py
+++ b/yt_dlp/extractor/onet.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/onionstudios.py b/yt_dlp/extractor/onionstudios.py
index cf5c39e66..9776b4d97 100644
--- a/yt_dlp/extractor/onionstudios.py
+++ b/yt_dlp/extractor/onionstudios.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ooyala.py b/yt_dlp/extractor/ooyala.py
index 20cfa0a87..77017f08b 100644
--- a/yt_dlp/extractor/ooyala.py
+++ b/yt_dlp/extractor/ooyala.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import base64
import re
diff --git a/yt_dlp/extractor/opencast.py b/yt_dlp/extractor/opencast.py
index cf8d91717..c640224dd 100644
--- a/yt_dlp/extractor/opencast.py
+++ b/yt_dlp/extractor/opencast.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/openload.py b/yt_dlp/extractor/openload.py
index c19d04900..41ef2e892 100644
--- a/yt_dlp/extractor/openload.py
+++ b/yt_dlp/extractor/openload.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import os
import subprocess
@@ -50,7 +47,7 @@ def cookie_jar_to_list(cookie_jar):
return [cookie_to_dict(cookie) for cookie in cookie_jar]
-class PhantomJSwrapper(object):
+class PhantomJSwrapper:
"""PhantomJS wrapper class
This class is experimental.
@@ -136,7 +133,7 @@ class PhantomJSwrapper(object):
for name in self._TMP_FILE_NAMES:
try:
os.remove(self._TMP_FILES[name].name)
- except (IOError, OSError, KeyError):
+ except (OSError, KeyError):
pass
def _save_cookies(self, url):
@@ -217,9 +214,9 @@ class PhantomJSwrapper(object):
f.write(self._TEMPLATE.format(**replaces).encode('utf-8'))
if video_id is None:
- self.extractor.to_screen('%s' % (note2,))
+ self.extractor.to_screen(f'{note2}')
else:
- self.extractor.to_screen('%s: %s' % (video_id, note2))
+ self.extractor.to_screen(f'{video_id}: {note2}')
p = Popen(
[self.exe, '--ssl-protocol=any', self._TMP_FILES['script'].name],
diff --git a/yt_dlp/extractor/openrec.py b/yt_dlp/extractor/openrec.py
index 5eb1cdbad..7546c12fb 100644
--- a/yt_dlp/extractor/openrec.py
+++ b/yt_dlp/extractor/openrec.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/ora.py b/yt_dlp/extractor/ora.py
index 422d0b330..09b121422 100644
--- a/yt_dlp/extractor/ora.py
+++ b/yt_dlp/extractor/ora.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
from ..compat import compat_urlparse
diff --git a/yt_dlp/extractor/orf.py b/yt_dlp/extractor/orf.py
index 0628977a0..56309ffcb 100644
--- a/yt_dlp/extractor/orf.py
+++ b/yt_dlp/extractor/orf.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import re
diff --git a/yt_dlp/extractor/outsidetv.py b/yt_dlp/extractor/outsidetv.py
index c5333b08c..b1fcbd6a7 100644
--- a/yt_dlp/extractor/outsidetv.py
+++ b/yt_dlp/extractor/outsidetv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/packtpub.py b/yt_dlp/extractor/packtpub.py
index 62c52cd6e..51778d8a2 100644
--- a/yt_dlp/extractor/packtpub.py
+++ b/yt_dlp/extractor/packtpub.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/palcomp3.py b/yt_dlp/extractor/palcomp3.py
index d0a62fb17..4b0801c1a 100644
--- a/yt_dlp/extractor/palcomp3.py
+++ b/yt_dlp/extractor/palcomp3.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/pandoratv.py b/yt_dlp/extractor/pandoratv.py
index 623005338..3747f31d2 100644
--- a/yt_dlp/extractor/pandoratv.py
+++ b/yt_dlp/extractor/pandoratv.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/paramountplus.py b/yt_dlp/extractor/paramountplus.py
index 94a9319ea..7987d77c6 100644
--- a/yt_dlp/extractor/paramountplus.py
+++ b/yt_dlp/extractor/paramountplus.py
@@ -1,4 +1,3 @@
-from __future__ import unicode_literals
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/parliamentliveuk.py b/yt_dlp/extractor/parliamentliveuk.py
index 974d65482..38cb03164 100644
--- a/yt_dlp/extractor/parliamentliveuk.py
+++ b/yt_dlp/extractor/parliamentliveuk.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import uuid
diff --git a/yt_dlp/extractor/parlview.py b/yt_dlp/extractor/parlview.py
index c85eaa7dc..f31ae576c 100644
--- a/yt_dlp/extractor/parlview.py
+++ b/yt_dlp/extractor/parlview.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/patreon.py b/yt_dlp/extractor/patreon.py
index 963a0d6fb..cce9843d4 100644
--- a/yt_dlp/extractor/patreon.py
+++ b/yt_dlp/extractor/patreon.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/pbs.py b/yt_dlp/extractor/pbs.py
index e48a2b8e0..4e6674e85 100644
--- a/yt_dlp/extractor/pbs.py
+++ b/yt_dlp/extractor/pbs.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/pearvideo.py b/yt_dlp/extractor/pearvideo.py
index 1d777221c..d552e0966 100644
--- a/yt_dlp/extractor/pearvideo.py
+++ b/yt_dlp/extractor/pearvideo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/peekvids.py b/yt_dlp/extractor/peekvids.py
index 4bf68559a..f1c4469d6 100644
--- a/yt_dlp/extractor/peekvids.py
+++ b/yt_dlp/extractor/peekvids.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/peertube.py b/yt_dlp/extractor/peertube.py
index 9d6b82178..0d3bc18a8 100644
--- a/yt_dlp/extractor/peertube.py
+++ b/yt_dlp/extractor/peertube.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import re
diff --git a/yt_dlp/extractor/peertv.py b/yt_dlp/extractor/peertv.py
index 002d33a88..821abe496 100644
--- a/yt_dlp/extractor/peertv.py
+++ b/yt_dlp/extractor/peertv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import js_to_json
diff --git a/yt_dlp/extractor/peloton.py b/yt_dlp/extractor/peloton.py
index 7d832253f..8e50ffc7f 100644
--- a/yt_dlp/extractor/peloton.py
+++ b/yt_dlp/extractor/peloton.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/people.py b/yt_dlp/extractor/people.py
index 6ca95715e..c5143c3ed 100644
--- a/yt_dlp/extractor/people.py
+++ b/yt_dlp/extractor/people.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/performgroup.py b/yt_dlp/extractor/performgroup.py
index c00d39375..824495f40 100644
--- a/yt_dlp/extractor/performgroup.py
+++ b/yt_dlp/extractor/performgroup.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/periscope.py b/yt_dlp/extractor/periscope.py
index 1a292b8ac..fc8591a2c 100644
--- a/yt_dlp/extractor/periscope.py
+++ b/yt_dlp/extractor/periscope.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/philharmoniedeparis.py b/yt_dlp/extractor/philharmoniedeparis.py
index 9f4899c09..22164caaa 100644
--- a/yt_dlp/extractor/philharmoniedeparis.py
+++ b/yt_dlp/extractor/philharmoniedeparis.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/phoenix.py b/yt_dlp/extractor/phoenix.py
index e3ea01443..5fa133afe 100644
--- a/yt_dlp/extractor/phoenix.py
+++ b/yt_dlp/extractor/phoenix.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .youtube import YoutubeIE
diff --git a/yt_dlp/extractor/photobucket.py b/yt_dlp/extractor/photobucket.py
index 53aebe2d9..71e9a4805 100644
--- a/yt_dlp/extractor/photobucket.py
+++ b/yt_dlp/extractor/photobucket.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/piapro.py b/yt_dlp/extractor/piapro.py
index ae160623b..d8d9c7801 100644
--- a/yt_dlp/extractor/piapro.py
+++ b/yt_dlp/extractor/piapro.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urlparse
from ..utils import (
diff --git a/yt_dlp/extractor/picarto.py b/yt_dlp/extractor/picarto.py
index adf21fda8..54999a832 100644
--- a/yt_dlp/extractor/picarto.py
+++ b/yt_dlp/extractor/picarto.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/piksel.py b/yt_dlp/extractor/piksel.py
index 84c3de2f0..14a540859 100644
--- a/yt_dlp/extractor/piksel.py
+++ b/yt_dlp/extractor/piksel.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/pinkbike.py b/yt_dlp/extractor/pinkbike.py
index 9f3501f77..313b5cce0 100644
--- a/yt_dlp/extractor/pinkbike.py
+++ b/yt_dlp/extractor/pinkbike.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/pinterest.py b/yt_dlp/extractor/pinterest.py
index 80e9cd00e..171f9e4eb 100644
--- a/yt_dlp/extractor/pinterest.py
+++ b/yt_dlp/extractor/pinterest.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/pixivsketch.py b/yt_dlp/extractor/pixivsketch.py
index f0ad0b24a..bfdb8b24e 100644
--- a/yt_dlp/extractor/pixivsketch.py
+++ b/yt_dlp/extractor/pixivsketch.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/pladform.py b/yt_dlp/extractor/pladform.py
index 99ade85ec..301f5c838 100644
--- a/yt_dlp/extractor/pladform.py
+++ b/yt_dlp/extractor/pladform.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/planetmarathi.py b/yt_dlp/extractor/planetmarathi.py
index 07ac15b54..03b9d6aaa 100644
--- a/yt_dlp/extractor/planetmarathi.py
+++ b/yt_dlp/extractor/planetmarathi.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
try_get,
diff --git a/yt_dlp/extractor/platzi.py b/yt_dlp/extractor/platzi.py
index 17f52e7f4..29d3210ac 100644
--- a/yt_dlp/extractor/platzi.py
+++ b/yt_dlp/extractor/platzi.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_b64decode,
diff --git a/yt_dlp/extractor/playfm.py b/yt_dlp/extractor/playfm.py
index 4298cbe30..e895ba480 100644
--- a/yt_dlp/extractor/playfm.py
+++ b/yt_dlp/extractor/playfm.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/playplustv.py b/yt_dlp/extractor/playplustv.py
index cad2c3a0f..05dbaf066 100644
--- a/yt_dlp/extractor/playplustv.py
+++ b/yt_dlp/extractor/playplustv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/plays.py b/yt_dlp/extractor/plays.py
index ddfc6f148..700dfe407 100644
--- a/yt_dlp/extractor/plays.py
+++ b/yt_dlp/extractor/plays.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/playstuff.py b/yt_dlp/extractor/playstuff.py
index 5a329957f..b424ba187 100644
--- a/yt_dlp/extractor/playstuff.py
+++ b/yt_dlp/extractor/playstuff.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/playtvak.py b/yt_dlp/extractor/playtvak.py
index 30c8a599e..f7e5ddbe7 100644
--- a/yt_dlp/extractor/playtvak.py
+++ b/yt_dlp/extractor/playtvak.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_urlparse,
diff --git a/yt_dlp/extractor/playvid.py b/yt_dlp/extractor/playvid.py
index e1c406b6c..5ffefc934 100644
--- a/yt_dlp/extractor/playvid.py
+++ b/yt_dlp/extractor/playvid.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/playwire.py b/yt_dlp/extractor/playwire.py
index 9c9e597b5..ab7f71493 100644
--- a/yt_dlp/extractor/playwire.py
+++ b/yt_dlp/extractor/playwire.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
dict_get,
diff --git a/yt_dlp/extractor/pluralsight.py b/yt_dlp/extractor/pluralsight.py
index 2a5e0e488..b50152ad8 100644
--- a/yt_dlp/extractor/pluralsight.py
+++ b/yt_dlp/extractor/pluralsight.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import collections
import json
import os
diff --git a/yt_dlp/extractor/plutotv.py b/yt_dlp/extractor/plutotv.py
index 26aff1af5..6e8f46fa3 100644
--- a/yt_dlp/extractor/plutotv.py
+++ b/yt_dlp/extractor/plutotv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import uuid
diff --git a/yt_dlp/extractor/podomatic.py b/yt_dlp/extractor/podomatic.py
index 673a3ab94..985bfae9d 100644
--- a/yt_dlp/extractor/podomatic.py
+++ b/yt_dlp/extractor/podomatic.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/pokemon.py b/yt_dlp/extractor/pokemon.py
index b411390e2..eef0d02ca 100644
--- a/yt_dlp/extractor/pokemon.py
+++ b/yt_dlp/extractor/pokemon.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/pokergo.py b/yt_dlp/extractor/pokergo.py
index c9e2fed12..5c7baadf2 100644
--- a/yt_dlp/extractor/pokergo.py
+++ b/yt_dlp/extractor/pokergo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/polsatgo.py b/yt_dlp/extractor/polsatgo.py
index 1e3f46c07..e44d951e6 100644
--- a/yt_dlp/extractor/polsatgo.py
+++ b/yt_dlp/extractor/polsatgo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from uuid import uuid4
import json
diff --git a/yt_dlp/extractor/polskieradio.py b/yt_dlp/extractor/polskieradio.py
index b2b3eb29c..514753b64 100644
--- a/yt_dlp/extractor/polskieradio.py
+++ b/yt_dlp/extractor/polskieradio.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import json
import math
diff --git a/yt_dlp/extractor/popcorntimes.py b/yt_dlp/extractor/popcorntimes.py
index 5f9d0e720..ed741a07b 100644
--- a/yt_dlp/extractor/popcorntimes.py
+++ b/yt_dlp/extractor/popcorntimes.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import (
compat_b64decode,
diff --git a/yt_dlp/extractor/popcorntv.py b/yt_dlp/extractor/popcorntv.py
index 66d2e5094..77984626f 100644
--- a/yt_dlp/extractor/popcorntv.py
+++ b/yt_dlp/extractor/popcorntv.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
extract_attributes,
diff --git a/yt_dlp/extractor/porn91.py b/yt_dlp/extractor/porn91.py
index 20eac647a..af4a0dc9c 100644
--- a/yt_dlp/extractor/porn91.py
+++ b/yt_dlp/extractor/porn91.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
parse_duration,
diff --git a/yt_dlp/extractor/porncom.py b/yt_dlp/extractor/porncom.py
index 83df22141..2ebd3fa09 100644
--- a/yt_dlp/extractor/porncom.py
+++ b/yt_dlp/extractor/porncom.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/pornez.py b/yt_dlp/extractor/pornez.py
index 713dc0080..df0e44a69 100644
--- a/yt_dlp/extractor/pornez.py
+++ b/yt_dlp/extractor/pornez.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/pornflip.py b/yt_dlp/extractor/pornflip.py
index accf45269..26536bc65 100644
--- a/yt_dlp/extractor/pornflip.py
+++ b/yt_dlp/extractor/pornflip.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/pornhd.py b/yt_dlp/extractor/pornhd.py
index 9dbd72f1d..06a44ddd1 100644
--- a/yt_dlp/extractor/pornhd.py
+++ b/yt_dlp/extractor/pornhd.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/pornhub.py b/yt_dlp/extractor/pornhub.py
index 17c8c9100..d296ccacb 100644
--- a/yt_dlp/extractor/pornhub.py
+++ b/yt_dlp/extractor/pornhub.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import itertools
import math
diff --git a/yt_dlp/extractor/pornotube.py b/yt_dlp/extractor/pornotube.py
index 1b5b9a320..e0960f4c6 100644
--- a/yt_dlp/extractor/pornotube.py
+++ b/yt_dlp/extractor/pornotube.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/pornovoisines.py b/yt_dlp/extractor/pornovoisines.py
index 18459fc94..96d2da7c7 100644
--- a/yt_dlp/extractor/pornovoisines.py
+++ b/yt_dlp/extractor/pornovoisines.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/pornoxo.py b/yt_dlp/extractor/pornoxo.py
index 489dc2b25..5104d8a49 100644
--- a/yt_dlp/extractor/pornoxo.py
+++ b/yt_dlp/extractor/pornoxo.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
str_to_int,
diff --git a/yt_dlp/extractor/presstv.py b/yt_dlp/extractor/presstv.py
index bfb2eb71e..26ce74a59 100644
--- a/yt_dlp/extractor/presstv.py
+++ b/yt_dlp/extractor/presstv.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import remove_start
diff --git a/yt_dlp/extractor/projectveritas.py b/yt_dlp/extractor/projectveritas.py
index 9e9867ba5..e4aa4bd35 100644
--- a/yt_dlp/extractor/projectveritas.py
+++ b/yt_dlp/extractor/projectveritas.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/prosiebensat1.py b/yt_dlp/extractor/prosiebensat1.py
index e89bbfd27..cb5ada1b9 100644
--- a/yt_dlp/extractor/prosiebensat1.py
+++ b/yt_dlp/extractor/prosiebensat1.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from hashlib import sha1
diff --git a/yt_dlp/extractor/prx.py b/yt_dlp/extractor/prx.py
index 80561b80a..5bb183270 100644
--- a/yt_dlp/extractor/prx.py
+++ b/yt_dlp/extractor/prx.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor, SearchInfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/puhutv.py b/yt_dlp/extractor/puhutv.py
index ca71665e0..a5dac1dff 100644
--- a/yt_dlp/extractor/puhutv.py
+++ b/yt_dlp/extractor/puhutv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_HTTPError,
diff --git a/yt_dlp/extractor/puls4.py b/yt_dlp/extractor/puls4.py
index 80091b85f..3c13d1f56 100644
--- a/yt_dlp/extractor/puls4.py
+++ b/yt_dlp/extractor/puls4.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .prosiebensat1 import ProSiebenSat1BaseIE
from ..utils import (
unified_strdate,
diff --git a/yt_dlp/extractor/pyvideo.py b/yt_dlp/extractor/pyvideo.py
index 869619723..7b25166b2 100644
--- a/yt_dlp/extractor/pyvideo.py
+++ b/yt_dlp/extractor/pyvideo.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/qqmusic.py b/yt_dlp/extractor/qqmusic.py
index 0106d166f..fa2454df4 100644
--- a/yt_dlp/extractor/qqmusic.py
+++ b/yt_dlp/extractor/qqmusic.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import random
import re
import time
diff --git a/yt_dlp/extractor/r7.py b/yt_dlp/extractor/r7.py
index e2202d603..b459efceb 100644
--- a/yt_dlp/extractor/r7.py
+++ b/yt_dlp/extractor/r7.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/radiko.py b/yt_dlp/extractor/radiko.py
index 1e60de153..a0f5ebdd0 100644
--- a/yt_dlp/extractor/radiko.py
+++ b/yt_dlp/extractor/radiko.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import base64
import calendar
diff --git a/yt_dlp/extractor/radiobremen.py b/yt_dlp/extractor/radiobremen.py
index 2c35f9845..99ba050d0 100644
--- a/yt_dlp/extractor/radiobremen.py
+++ b/yt_dlp/extractor/radiobremen.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/radiocanada.py b/yt_dlp/extractor/radiocanada.py
index 4b4445c30..dd6f899a4 100644
--- a/yt_dlp/extractor/radiocanada.py
+++ b/yt_dlp/extractor/radiocanada.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_HTTPError
from ..utils import (
diff --git a/yt_dlp/extractor/radiode.py b/yt_dlp/extractor/radiode.py
index 038287363..befb0b72b 100644
--- a/yt_dlp/extractor/radiode.py
+++ b/yt_dlp/extractor/radiode.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/radiofrance.py b/yt_dlp/extractor/radiofrance.py
index 082238bbc..8fef54dab 100644
--- a/yt_dlp/extractor/radiofrance.py
+++ b/yt_dlp/extractor/radiofrance.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/radiojavan.py b/yt_dlp/extractor/radiojavan.py
index 3f74f0c01..6a6118899 100644
--- a/yt_dlp/extractor/radiojavan.py
+++ b/yt_dlp/extractor/radiojavan.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/radiokapital.py b/yt_dlp/extractor/radiokapital.py
index 2e93e034f..8f9737ac3 100644
--- a/yt_dlp/extractor/radiokapital.py
+++ b/yt_dlp/extractor/radiokapital.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/radiozet.py b/yt_dlp/extractor/radiozet.py
index 2e1ff36c2..67520172e 100644
--- a/yt_dlp/extractor/radiozet.py
+++ b/yt_dlp/extractor/radiozet.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
from ..utils import (
traverse_obj,
diff --git a/yt_dlp/extractor/rai.py b/yt_dlp/extractor/rai.py
index 7c72d60c6..31199e32e 100644
--- a/yt_dlp/extractor/rai.py
+++ b/yt_dlp/extractor/rai.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/raywenderlich.py b/yt_dlp/extractor/raywenderlich.py
index f04d51f7b..e0e3c3ead 100644
--- a/yt_dlp/extractor/raywenderlich.py
+++ b/yt_dlp/extractor/raywenderlich.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/rbmaradio.py b/yt_dlp/extractor/rbmaradio.py
index 9642fbbe1..86c63dbb7 100644
--- a/yt_dlp/extractor/rbmaradio.py
+++ b/yt_dlp/extractor/rbmaradio.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/rcs.py b/yt_dlp/extractor/rcs.py
index ace611bc9..abbc167c0 100644
--- a/yt_dlp/extractor/rcs.py
+++ b/yt_dlp/extractor/rcs.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/rcti.py b/yt_dlp/extractor/rcti.py
index ac42e58d9..0cfecbc9a 100644
--- a/yt_dlp/extractor/rcti.py
+++ b/yt_dlp/extractor/rcti.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import random
import time
diff --git a/yt_dlp/extractor/rds.py b/yt_dlp/extractor/rds.py
index 0c497856e..9a2e0d985 100644
--- a/yt_dlp/extractor/rds.py
+++ b/yt_dlp/extractor/rds.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
parse_duration,
diff --git a/yt_dlp/extractor/redbulltv.py b/yt_dlp/extractor/redbulltv.py
index 756a3666b..2f0e41c5b 100644
--- a/yt_dlp/extractor/redbulltv.py
+++ b/yt_dlp/extractor/redbulltv.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_HTTPError
from ..utils import (
diff --git a/yt_dlp/extractor/redgifs.py b/yt_dlp/extractor/redgifs.py
index 55196b768..e3712a1d6 100644
--- a/yt_dlp/extractor/redgifs.py
+++ b/yt_dlp/extractor/redgifs.py
@@ -1,4 +1,3 @@
-# coding: utf-8
import functools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/redtube.py b/yt_dlp/extractor/redtube.py
index 7fee54fee..ab7c505da 100644
--- a/yt_dlp/extractor/redtube.py
+++ b/yt_dlp/extractor/redtube.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/regiotv.py b/yt_dlp/extractor/regiotv.py
index e250a52f0..6114841fb 100644
--- a/yt_dlp/extractor/regiotv.py
+++ b/yt_dlp/extractor/regiotv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/rentv.py b/yt_dlp/extractor/rentv.py
index 7c8909d95..ab47ee552 100644
--- a/yt_dlp/extractor/rentv.py
+++ b/yt_dlp/extractor/rentv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/restudy.py b/yt_dlp/extractor/restudy.py
index d47fb45ca..cd3c20d7a 100644
--- a/yt_dlp/extractor/restudy.py
+++ b/yt_dlp/extractor/restudy.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/reuters.py b/yt_dlp/extractor/reuters.py
index 9dc482d21..1428b7cc9 100644
--- a/yt_dlp/extractor/reuters.py
+++ b/yt_dlp/extractor/reuters.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/reverbnation.py b/yt_dlp/extractor/reverbnation.py
index 4cb99c244..06b6c3c2f 100644
--- a/yt_dlp/extractor/reverbnation.py
+++ b/yt_dlp/extractor/reverbnation.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
qualities,
diff --git a/yt_dlp/extractor/rice.py b/yt_dlp/extractor/rice.py
index cf2bb1b51..9ca47f3d4 100644
--- a/yt_dlp/extractor/rice.py
+++ b/yt_dlp/extractor/rice.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/rmcdecouverte.py b/yt_dlp/extractor/rmcdecouverte.py
index 8bfce3416..8d29b302b 100644
--- a/yt_dlp/extractor/rmcdecouverte.py
+++ b/yt_dlp/extractor/rmcdecouverte.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from .brightcove import BrightcoveLegacyIE
from ..compat import (
diff --git a/yt_dlp/extractor/rockstargames.py b/yt_dlp/extractor/rockstargames.py
index cd6904bc9..5f1db0f05 100644
--- a/yt_dlp/extractor/rockstargames.py
+++ b/yt_dlp/extractor/rockstargames.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/rokfin.py b/yt_dlp/extractor/rokfin.py
index 0fd65db4b..d7e8ba620 100644
--- a/yt_dlp/extractor/rokfin.py
+++ b/yt_dlp/extractor/rokfin.py
@@ -1,4 +1,3 @@
-# coding: utf-8
import itertools
from datetime import datetime
diff --git a/yt_dlp/extractor/roosterteeth.py b/yt_dlp/extractor/roosterteeth.py
index a55dd4f8b..011dadfaa 100644
--- a/yt_dlp/extractor/roosterteeth.py
+++ b/yt_dlp/extractor/roosterteeth.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
from ..compat import compat_HTTPError
from ..utils import (
diff --git a/yt_dlp/extractor/rottentomatoes.py b/yt_dlp/extractor/rottentomatoes.py
index 14c8e8236..f133c851b 100644
--- a/yt_dlp/extractor/rottentomatoes.py
+++ b/yt_dlp/extractor/rottentomatoes.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .internetvideoarchive import InternetVideoArchiveIE
diff --git a/yt_dlp/extractor/rozhlas.py b/yt_dlp/extractor/rozhlas.py
index fccf69401..a8189676f 100644
--- a/yt_dlp/extractor/rozhlas.py
+++ b/yt_dlp/extractor/rozhlas.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/rtbf.py b/yt_dlp/extractor/rtbf.py
index 4b61fdb17..a300a2482 100644
--- a/yt_dlp/extractor/rtbf.py
+++ b/yt_dlp/extractor/rtbf.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/rte.py b/yt_dlp/extractor/rte.py
index 1fbc72915..93faf1b32 100644
--- a/yt_dlp/extractor/rte.py
+++ b/yt_dlp/extractor/rte.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/rtl2.py b/yt_dlp/extractor/rtl2.py
index e29171474..afa0d33cf 100644
--- a/yt_dlp/extractor/rtl2.py
+++ b/yt_dlp/extractor/rtl2.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/rtlnl.py b/yt_dlp/extractor/rtlnl.py
index 9eaa06f25..ed89554ab 100644
--- a/yt_dlp/extractor/rtlnl.py
+++ b/yt_dlp/extractor/rtlnl.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/rtnews.py b/yt_dlp/extractor/rtnews.py
index 68b6044b6..6be9945f7 100644
--- a/yt_dlp/extractor/rtnews.py
+++ b/yt_dlp/extractor/rtnews.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/rtp.py b/yt_dlp/extractor/rtp.py
index c165ade78..5928a207a 100644
--- a/yt_dlp/extractor/rtp.py
+++ b/yt_dlp/extractor/rtp.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import js_to_json
import re
diff --git a/yt_dlp/extractor/rtrfm.py b/yt_dlp/extractor/rtrfm.py
index 93d51e8ed..7381d8202 100644
--- a/yt_dlp/extractor/rtrfm.py
+++ b/yt_dlp/extractor/rtrfm.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/rts.py b/yt_dlp/extractor/rts.py
index 865a73024..e5ba1a26b 100644
--- a/yt_dlp/extractor/rts.py
+++ b/yt_dlp/extractor/rts.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .srgssr import SRGSSRIE
diff --git a/yt_dlp/extractor/rtve.py b/yt_dlp/extractor/rtve.py
index 7a1dc6f32..e5837e8c8 100644
--- a/yt_dlp/extractor/rtve.py
+++ b/yt_dlp/extractor/rtve.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import io
import sys
diff --git a/yt_dlp/extractor/rtvnh.py b/yt_dlp/extractor/rtvnh.py
index 6a00f7007..58af3dda2 100644
--- a/yt_dlp/extractor/rtvnh.py
+++ b/yt_dlp/extractor/rtvnh.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import ExtractorError
diff --git a/yt_dlp/extractor/rtvs.py b/yt_dlp/extractor/rtvs.py
index 3ea0f1883..fb06efa4b 100644
--- a/yt_dlp/extractor/rtvs.py
+++ b/yt_dlp/extractor/rtvs.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ruhd.py b/yt_dlp/extractor/ruhd.py
index 3c8053a26..abaa3f9ea 100644
--- a/yt_dlp/extractor/ruhd.py
+++ b/yt_dlp/extractor/ruhd.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/rule34video.py b/yt_dlp/extractor/rule34video.py
index a602a9f33..bb113d822 100644
--- a/yt_dlp/extractor/rule34video.py
+++ b/yt_dlp/extractor/rule34video.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
import re
from ..utils import parse_duration
diff --git a/yt_dlp/extractor/rumble.py b/yt_dlp/extractor/rumble.py
index a0d5f88d9..50c383d79 100644
--- a/yt_dlp/extractor/rumble.py
+++ b/yt_dlp/extractor/rumble.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import re
diff --git a/yt_dlp/extractor/rutube.py b/yt_dlp/extractor/rutube.py
index 2f753b41f..ecfcea939 100644
--- a/yt_dlp/extractor/rutube.py
+++ b/yt_dlp/extractor/rutube.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import itertools
diff --git a/yt_dlp/extractor/rutv.py b/yt_dlp/extractor/rutv.py
index 0ea8253fa..adf78ddb0 100644
--- a/yt_dlp/extractor/rutv.py
+++ b/yt_dlp/extractor/rutv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ruutu.py b/yt_dlp/extractor/ruutu.py
index 5a30e3360..f5dadf278 100644
--- a/yt_dlp/extractor/ruutu.py
+++ b/yt_dlp/extractor/ruutu.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/ruv.py b/yt_dlp/extractor/ruv.py
index d806ed068..12499d6ca 100644
--- a/yt_dlp/extractor/ruv.py
+++ b/yt_dlp/extractor/ruv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/safari.py b/yt_dlp/extractor/safari.py
index 7b4571daa..450a661e9 100644
--- a/yt_dlp/extractor/safari.py
+++ b/yt_dlp/extractor/safari.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/saitosan.py b/yt_dlp/extractor/saitosan.py
index 621335ca0..d2f60e92f 100644
--- a/yt_dlp/extractor/saitosan.py
+++ b/yt_dlp/extractor/saitosan.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import ExtractorError, try_get
diff --git a/yt_dlp/extractor/samplefocus.py b/yt_dlp/extractor/samplefocus.py
index 806c3c354..e9f5c227b 100644
--- a/yt_dlp/extractor/samplefocus.py
+++ b/yt_dlp/extractor/samplefocus.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/sapo.py b/yt_dlp/extractor/sapo.py
index df202a3a4..9a601a01c 100644
--- a/yt_dlp/extractor/sapo.py
+++ b/yt_dlp/extractor/sapo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/savefrom.py b/yt_dlp/extractor/savefrom.py
index 98efdc2a4..9c9e74b6d 100644
--- a/yt_dlp/extractor/savefrom.py
+++ b/yt_dlp/extractor/savefrom.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import os.path
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/sbs.py b/yt_dlp/extractor/sbs.py
index 4090f6385..711524406 100644
--- a/yt_dlp/extractor/sbs.py
+++ b/yt_dlp/extractor/sbs.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
smuggle_url,
diff --git a/yt_dlp/extractor/screencast.py b/yt_dlp/extractor/screencast.py
index 69a0d01f3..e3dbaab69 100644
--- a/yt_dlp/extractor/screencast.py
+++ b/yt_dlp/extractor/screencast.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_parse_qs,
diff --git a/yt_dlp/extractor/screencastomatic.py b/yt_dlp/extractor/screencastomatic.py
index 0afdc1715..f2f281f47 100644
--- a/yt_dlp/extractor/screencastomatic.py
+++ b/yt_dlp/extractor/screencastomatic.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
get_element_by_class,
diff --git a/yt_dlp/extractor/scrippsnetworks.py b/yt_dlp/extractor/scrippsnetworks.py
index 84918b67f..c3cee6e4a 100644
--- a/yt_dlp/extractor/scrippsnetworks.py
+++ b/yt_dlp/extractor/scrippsnetworks.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import hashlib
diff --git a/yt_dlp/extractor/scte.py b/yt_dlp/extractor/scte.py
index 7215cf5d1..d839ffcde 100644
--- a/yt_dlp/extractor/scte.py
+++ b/yt_dlp/extractor/scte.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/seeker.py b/yt_dlp/extractor/seeker.py
index e5c18c7a5..65eb16a09 100644
--- a/yt_dlp/extractor/seeker.py
+++ b/yt_dlp/extractor/seeker.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/senategov.py b/yt_dlp/extractor/senategov.py
index b295184a1..bced14328 100644
--- a/yt_dlp/extractor/senategov.py
+++ b/yt_dlp/extractor/senategov.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/sendtonews.py b/yt_dlp/extractor/sendtonews.py
index 858547b54..cf4b93d45 100644
--- a/yt_dlp/extractor/sendtonews.py
+++ b/yt_dlp/extractor/sendtonews.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/servus.py b/yt_dlp/extractor/servus.py
index 1610ddc2c..ac030ea41 100644
--- a/yt_dlp/extractor/servus.py
+++ b/yt_dlp/extractor/servus.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/sevenplus.py b/yt_dlp/extractor/sevenplus.py
index 9867961f0..8e95bc230 100644
--- a/yt_dlp/extractor/sevenplus.py
+++ b/yt_dlp/extractor/sevenplus.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/sexu.py b/yt_dlp/extractor/sexu.py
index 3df51520b..000f7e166 100644
--- a/yt_dlp/extractor/sexu.py
+++ b/yt_dlp/extractor/sexu.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/seznamzpravy.py b/yt_dlp/extractor/seznamzpravy.py
index eef4975cb..891bfcfee 100644
--- a/yt_dlp/extractor/seznamzpravy.py
+++ b/yt_dlp/extractor/seznamzpravy.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/shahid.py b/yt_dlp/extractor/shahid.py
index ab45d9ce4..53ca86b73 100644
--- a/yt_dlp/extractor/shahid.py
+++ b/yt_dlp/extractor/shahid.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import math
import re
diff --git a/yt_dlp/extractor/shared.py b/yt_dlp/extractor/shared.py
index 93ab2a167..5bc097b0d 100644
--- a/yt_dlp/extractor/shared.py
+++ b/yt_dlp/extractor/shared.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_b64decode,
diff --git a/yt_dlp/extractor/shemaroome.py b/yt_dlp/extractor/shemaroome.py
index 45c12915a..c0780abe2 100644
--- a/yt_dlp/extractor/shemaroome.py
+++ b/yt_dlp/extractor/shemaroome.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..aes import aes_cbc_decrypt, unpad_pkcs7
from ..compat import (
diff --git a/yt_dlp/extractor/showroomlive.py b/yt_dlp/extractor/showroomlive.py
index 1aada69ac..cd681a035 100644
--- a/yt_dlp/extractor/showroomlive.py
+++ b/yt_dlp/extractor/showroomlive.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/simplecast.py b/yt_dlp/extractor/simplecast.py
index 857e9414f..ecbb6123b 100644
--- a/yt_dlp/extractor/simplecast.py
+++ b/yt_dlp/extractor/simplecast.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/sina.py b/yt_dlp/extractor/sina.py
index b62b0c3e5..d30d57d85 100644
--- a/yt_dlp/extractor/sina.py
+++ b/yt_dlp/extractor/sina.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
HEADRequest,
diff --git a/yt_dlp/extractor/sixplay.py b/yt_dlp/extractor/sixplay.py
index fd747f59b..b7b7d7d7f 100644
--- a/yt_dlp/extractor/sixplay.py
+++ b/yt_dlp/extractor/sixplay.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/skeb.py b/yt_dlp/extractor/skeb.py
index 81aecb311..e02f8cef0 100644
--- a/yt_dlp/extractor/skeb.py
+++ b/yt_dlp/extractor/skeb.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import ExtractorError, determine_ext, parse_qs, traverse_obj
diff --git a/yt_dlp/extractor/sky.py b/yt_dlp/extractor/sky.py
index ad1e62d88..0a8b6cc76 100644
--- a/yt_dlp/extractor/sky.py
+++ b/yt_dlp/extractor/sky.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/skyit.py b/yt_dlp/extractor/skyit.py
index ddb43c075..438fb60e3 100644
--- a/yt_dlp/extractor/skyit.py
+++ b/yt_dlp/extractor/skyit.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_parse_qs,
diff --git a/yt_dlp/extractor/skylinewebcams.py b/yt_dlp/extractor/skylinewebcams.py
index 47bbb7632..4292bb2ae 100644
--- a/yt_dlp/extractor/skylinewebcams.py
+++ b/yt_dlp/extractor/skylinewebcams.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/skynewsarabia.py b/yt_dlp/extractor/skynewsarabia.py
index fffc9aa22..6264b04bb 100644
--- a/yt_dlp/extractor/skynewsarabia.py
+++ b/yt_dlp/extractor/skynewsarabia.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/skynewsau.py b/yt_dlp/extractor/skynewsau.py
index 8e079ee31..43a9c82cf 100644
--- a/yt_dlp/extractor/skynewsau.py
+++ b/yt_dlp/extractor/skynewsau.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
try_get,
diff --git a/yt_dlp/extractor/slideshare.py b/yt_dlp/extractor/slideshare.py
index 9b3ad0ad4..ab9dad0ec 100644
--- a/yt_dlp/extractor/slideshare.py
+++ b/yt_dlp/extractor/slideshare.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/slideslive.py b/yt_dlp/extractor/slideslive.py
index df6084647..72ca56057 100644
--- a/yt_dlp/extractor/slideslive.py
+++ b/yt_dlp/extractor/slideslive.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
bool_or_none,
diff --git a/yt_dlp/extractor/slutload.py b/yt_dlp/extractor/slutload.py
index 661f9e59d..8e6e89c9a 100644
--- a/yt_dlp/extractor/slutload.py
+++ b/yt_dlp/extractor/slutload.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/snotr.py b/yt_dlp/extractor/snotr.py
index 0bb548255..6889f1929 100644
--- a/yt_dlp/extractor/snotr.py
+++ b/yt_dlp/extractor/snotr.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
parse_duration,
diff --git a/yt_dlp/extractor/sohu.py b/yt_dlp/extractor/sohu.py
index 3bff5c595..c3a135955 100644
--- a/yt_dlp/extractor/sohu.py
+++ b/yt_dlp/extractor/sohu.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/sonyliv.py b/yt_dlp/extractor/sonyliv.py
index 5b6849fc9..771f890cc 100644
--- a/yt_dlp/extractor/sonyliv.py
+++ b/yt_dlp/extractor/sonyliv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import datetime
import math
import random
diff --git a/yt_dlp/extractor/soundcloud.py b/yt_dlp/extractor/soundcloud.py
index 749e6dda3..6dfa50c60 100644
--- a/yt_dlp/extractor/soundcloud.py
+++ b/yt_dlp/extractor/soundcloud.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import re
import json
diff --git a/yt_dlp/extractor/soundgasm.py b/yt_dlp/extractor/soundgasm.py
index d608eb7a7..9e59c7c0e 100644
--- a/yt_dlp/extractor/soundgasm.py
+++ b/yt_dlp/extractor/soundgasm.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/southpark.py b/yt_dlp/extractor/southpark.py
index 942a52dcf..855f1d6d3 100644
--- a/yt_dlp/extractor/southpark.py
+++ b/yt_dlp/extractor/southpark.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .mtv import MTVServicesInfoExtractor
diff --git a/yt_dlp/extractor/sovietscloset.py b/yt_dlp/extractor/sovietscloset.py
index 4bc2263f0..fc5a492a6 100644
--- a/yt_dlp/extractor/sovietscloset.py
+++ b/yt_dlp/extractor/sovietscloset.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
try_get,
diff --git a/yt_dlp/extractor/spankbang.py b/yt_dlp/extractor/spankbang.py
index dd849ae13..1aa8eaba1 100644
--- a/yt_dlp/extractor/spankbang.py
+++ b/yt_dlp/extractor/spankbang.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/spankwire.py b/yt_dlp/extractor/spankwire.py
index e97c1d23e..603f17e9d 100644
--- a/yt_dlp/extractor/spankwire.py
+++ b/yt_dlp/extractor/spankwire.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/spiegel.py b/yt_dlp/extractor/spiegel.py
index 58f2ed353..3701e295a 100644
--- a/yt_dlp/extractor/spiegel.py
+++ b/yt_dlp/extractor/spiegel.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .jwplatform import JWPlatformIE
diff --git a/yt_dlp/extractor/spiegeltv.py b/yt_dlp/extractor/spiegeltv.py
index 6ccf4c342..69942334e 100644
--- a/yt_dlp/extractor/spiegeltv.py
+++ b/yt_dlp/extractor/spiegeltv.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .nexx import NexxIE
diff --git a/yt_dlp/extractor/spike.py b/yt_dlp/extractor/spike.py
index 5805f3d44..5c1c78d8f 100644
--- a/yt_dlp/extractor/spike.py
+++ b/yt_dlp/extractor/spike.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .mtv import MTVServicesInfoExtractor
diff --git a/yt_dlp/extractor/sport5.py b/yt_dlp/extractor/sport5.py
index 35c57d62a..f4ac98b6e 100644
--- a/yt_dlp/extractor/sport5.py
+++ b/yt_dlp/extractor/sport5.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import ExtractorError
diff --git a/yt_dlp/extractor/sportbox.py b/yt_dlp/extractor/sportbox.py
index b9017fd2a..1041cc7d1 100644
--- a/yt_dlp/extractor/sportbox.py
+++ b/yt_dlp/extractor/sportbox.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/sportdeutschland.py b/yt_dlp/extractor/sportdeutschland.py
index 15b488ab7..75074b310 100644
--- a/yt_dlp/extractor/sportdeutschland.py
+++ b/yt_dlp/extractor/sportdeutschland.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/spotify.py b/yt_dlp/extractor/spotify.py
index 826f98cff..3b8dea8f4 100644
--- a/yt_dlp/extractor/spotify.py
+++ b/yt_dlp/extractor/spotify.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/spreaker.py b/yt_dlp/extractor/spreaker.py
index 6c7e40ae4..36a9bd291 100644
--- a/yt_dlp/extractor/spreaker.py
+++ b/yt_dlp/extractor/spreaker.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/springboardplatform.py b/yt_dlp/extractor/springboardplatform.py
index 49ac1f559..8e156bf1a 100644
--- a/yt_dlp/extractor/springboardplatform.py
+++ b/yt_dlp/extractor/springboardplatform.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/sprout.py b/yt_dlp/extractor/sprout.py
index e243732f2..444a6c270 100644
--- a/yt_dlp/extractor/sprout.py
+++ b/yt_dlp/extractor/sprout.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .adobepass import AdobePassIE
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/srgssr.py b/yt_dlp/extractor/srgssr.py
index f9919816d..6dd312985 100644
--- a/yt_dlp/extractor/srgssr.py
+++ b/yt_dlp/extractor/srgssr.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/srmediathek.py b/yt_dlp/extractor/srmediathek.py
index 359dadaa3..3cc39870f 100644
--- a/yt_dlp/extractor/srmediathek.py
+++ b/yt_dlp/extractor/srmediathek.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .ard import ARDMediathekBaseIE
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/stanfordoc.py b/yt_dlp/extractor/stanfordoc.py
index 0003075ac..be0f4afc1 100644
--- a/yt_dlp/extractor/stanfordoc.py
+++ b/yt_dlp/extractor/stanfordoc.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/startv.py b/yt_dlp/extractor/startv.py
index 411320ede..bb6e8f1ea 100644
--- a/yt_dlp/extractor/startv.py
+++ b/yt_dlp/extractor/startv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/steam.py b/yt_dlp/extractor/steam.py
index 4ed0fb592..ab22fdbc6 100644
--- a/yt_dlp/extractor/steam.py
+++ b/yt_dlp/extractor/steam.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/stitcher.py b/yt_dlp/extractor/stitcher.py
index 822782507..2fd200f87 100644
--- a/yt_dlp/extractor/stitcher.py
+++ b/yt_dlp/extractor/stitcher.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/storyfire.py b/yt_dlp/extractor/storyfire.py
index e18a59a49..716190220 100644
--- a/yt_dlp/extractor/storyfire.py
+++ b/yt_dlp/extractor/storyfire.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/streamable.py b/yt_dlp/extractor/streamable.py
index 808129649..a2935b04b 100644
--- a/yt_dlp/extractor/streamable.py
+++ b/yt_dlp/extractor/streamable.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/streamanity.py b/yt_dlp/extractor/streamanity.py
index 2e2d5eedf..f8c37c0dd 100644
--- a/yt_dlp/extractor/streamanity.py
+++ b/yt_dlp/extractor/streamanity.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/streamcloud.py b/yt_dlp/extractor/streamcloud.py
index b97bb4374..728980921 100644
--- a/yt_dlp/extractor/streamcloud.py
+++ b/yt_dlp/extractor/streamcloud.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/streamcz.py b/yt_dlp/extractor/streamcz.py
index 4cb9923e2..85fc3a3c3 100644
--- a/yt_dlp/extractor/streamcz.py
+++ b/yt_dlp/extractor/streamcz.py
@@ -1,4 +1,3 @@
-# coding: utf-8
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/streamff.py b/yt_dlp/extractor/streamff.py
index 6b190bb3b..93c42942c 100644
--- a/yt_dlp/extractor/streamff.py
+++ b/yt_dlp/extractor/streamff.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
from ..utils import int_or_none, parse_iso8601
diff --git a/yt_dlp/extractor/streetvoice.py b/yt_dlp/extractor/streetvoice.py
index f21681ae7..a32c8bc37 100644
--- a/yt_dlp/extractor/streetvoice.py
+++ b/yt_dlp/extractor/streetvoice.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/stretchinternet.py b/yt_dlp/extractor/stretchinternet.py
index ec08eae55..e438dee11 100644
--- a/yt_dlp/extractor/stretchinternet.py
+++ b/yt_dlp/extractor/stretchinternet.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/stripchat.py b/yt_dlp/extractor/stripchat.py
index 0d4a0ce4c..a7c7b0649 100644
--- a/yt_dlp/extractor/stripchat.py
+++ b/yt_dlp/extractor/stripchat.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/stv.py b/yt_dlp/extractor/stv.py
index ba5661d74..618dc4329 100644
--- a/yt_dlp/extractor/stv.py
+++ b/yt_dlp/extractor/stv.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
compat_str,
diff --git a/yt_dlp/extractor/sunporno.py b/yt_dlp/extractor/sunporno.py
index 59b77bf92..19498701c 100644
--- a/yt_dlp/extractor/sunporno.py
+++ b/yt_dlp/extractor/sunporno.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/sverigesradio.py b/yt_dlp/extractor/sverigesradio.py
index aa0691f0d..4a4b5cf7e 100644
--- a/yt_dlp/extractor/sverigesradio.py
+++ b/yt_dlp/extractor/sverigesradio.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/svt.py b/yt_dlp/extractor/svt.py
index 8ca62e370..e0c436b67 100644
--- a/yt_dlp/extractor/svt.py
+++ b/yt_dlp/extractor/svt.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/swrmediathek.py b/yt_dlp/extractor/swrmediathek.py
index 0f615979e..deebdd1a4 100644
--- a/yt_dlp/extractor/swrmediathek.py
+++ b/yt_dlp/extractor/swrmediathek.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
parse_duration,
diff --git a/yt_dlp/extractor/syfy.py b/yt_dlp/extractor/syfy.py
index def7e5a2c..c79d27a0d 100644
--- a/yt_dlp/extractor/syfy.py
+++ b/yt_dlp/extractor/syfy.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .adobepass import AdobePassIE
from ..utils import (
update_url_query,
diff --git a/yt_dlp/extractor/sztvhu.py b/yt_dlp/extractor/sztvhu.py
index cfad33146..1cbc2a3cf 100644
--- a/yt_dlp/extractor/sztvhu.py
+++ b/yt_dlp/extractor/sztvhu.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tagesschau.py b/yt_dlp/extractor/tagesschau.py
index 6e03d0a7d..9b9513f07 100644
--- a/yt_dlp/extractor/tagesschau.py
+++ b/yt_dlp/extractor/tagesschau.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tass.py b/yt_dlp/extractor/tass.py
index 6d336da78..d20dacfc1 100644
--- a/yt_dlp/extractor/tass.py
+++ b/yt_dlp/extractor/tass.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tastytrade.py b/yt_dlp/extractor/tastytrade.py
index 7fe96bd5f..bb26926e8 100644
--- a/yt_dlp/extractor/tastytrade.py
+++ b/yt_dlp/extractor/tastytrade.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .ooyala import OoyalaIE
diff --git a/yt_dlp/extractor/tbs.py b/yt_dlp/extractor/tbs.py
index c7d62ff4e..808c6c73d 100644
--- a/yt_dlp/extractor/tbs.py
+++ b/yt_dlp/extractor/tbs.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .turner import TurnerBaseIE
diff --git a/yt_dlp/extractor/tdslifeway.py b/yt_dlp/extractor/tdslifeway.py
index 101c6ee31..3623a68c8 100644
--- a/yt_dlp/extractor/tdslifeway.py
+++ b/yt_dlp/extractor/tdslifeway.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/teachable.py b/yt_dlp/extractor/teachable.py
index 232eaa521..e480d7610 100644
--- a/yt_dlp/extractor/teachable.py
+++ b/yt_dlp/extractor/teachable.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/teachertube.py b/yt_dlp/extractor/teachertube.py
index e22f0114c..2bf836abd 100644
--- a/yt_dlp/extractor/teachertube.py
+++ b/yt_dlp/extractor/teachertube.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/teachingchannel.py b/yt_dlp/extractor/teachingchannel.py
index 624cdb3ad..275f6d1f9 100644
--- a/yt_dlp/extractor/teachingchannel.py
+++ b/yt_dlp/extractor/teachingchannel.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/teamcoco.py b/yt_dlp/extractor/teamcoco.py
index 5793b711f..840702ed9 100644
--- a/yt_dlp/extractor/teamcoco.py
+++ b/yt_dlp/extractor/teamcoco.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .turner import TurnerBaseIE
diff --git a/yt_dlp/extractor/teamtreehouse.py b/yt_dlp/extractor/teamtreehouse.py
index 64522ec4c..dd802db5b 100644
--- a/yt_dlp/extractor/teamtreehouse.py
+++ b/yt_dlp/extractor/teamtreehouse.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/techtalks.py b/yt_dlp/extractor/techtalks.py
index 78f07319b..d37de360b 100644
--- a/yt_dlp/extractor/techtalks.py
+++ b/yt_dlp/extractor/techtalks.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tele13.py b/yt_dlp/extractor/tele13.py
index f8a27550e..8e35bc85f 100644
--- a/yt_dlp/extractor/tele13.py
+++ b/yt_dlp/extractor/tele13.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .youtube import YoutubeIE
from ..utils import (
diff --git a/yt_dlp/extractor/tele5.py b/yt_dlp/extractor/tele5.py
index c7beee153..58d343b44 100644
--- a/yt_dlp/extractor/tele5.py
+++ b/yt_dlp/extractor/tele5.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .dplay import DPlayIE
from ..compat import compat_urlparse
from ..utils import (
diff --git a/yt_dlp/extractor/telebruxelles.py b/yt_dlp/extractor/telebruxelles.py
index 9e8c89bd6..8d87b6ec1 100644
--- a/yt_dlp/extractor/telebruxelles.py
+++ b/yt_dlp/extractor/telebruxelles.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/telecinco.py b/yt_dlp/extractor/telecinco.py
index eecd6a5c9..a9c0755f4 100644
--- a/yt_dlp/extractor/telecinco.py
+++ b/yt_dlp/extractor/telecinco.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/telegraaf.py b/yt_dlp/extractor/telegraaf.py
index 2dc020537..bc9a8d608 100644
--- a/yt_dlp/extractor/telegraaf.py
+++ b/yt_dlp/extractor/telegraaf.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/telemb.py b/yt_dlp/extractor/telemb.py
index ac2d603b6..7e444c0d0 100644
--- a/yt_dlp/extractor/telemb.py
+++ b/yt_dlp/extractor/telemb.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/telemundo.py b/yt_dlp/extractor/telemundo.py
index ebcecf55f..64954b8f1 100644
--- a/yt_dlp/extractor/telemundo.py
+++ b/yt_dlp/extractor/telemundo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
try_get,
diff --git a/yt_dlp/extractor/telequebec.py b/yt_dlp/extractor/telequebec.py
index 4bef2fe76..e89137269 100644
--- a/yt_dlp/extractor/telequebec.py
+++ b/yt_dlp/extractor/telequebec.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/teletask.py b/yt_dlp/extractor/teletask.py
index b9e2ef8ca..a73dd68fb 100644
--- a/yt_dlp/extractor/teletask.py
+++ b/yt_dlp/extractor/teletask.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/telewebion.py b/yt_dlp/extractor/telewebion.py
index 1207b1a1b..550549f05 100644
--- a/yt_dlp/extractor/telewebion.py
+++ b/yt_dlp/extractor/telewebion.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tennistv.py b/yt_dlp/extractor/tennistv.py
index 58fdecebe..80acaf190 100644
--- a/yt_dlp/extractor/tennistv.py
+++ b/yt_dlp/extractor/tennistv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tenplay.py b/yt_dlp/extractor/tenplay.py
index 5c7b54531..fc4781447 100644
--- a/yt_dlp/extractor/tenplay.py
+++ b/yt_dlp/extractor/tenplay.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from datetime import datetime
import base64
diff --git a/yt_dlp/extractor/testurl.py b/yt_dlp/extractor/testurl.py
index 8bc512a9c..140fa4a96 100644
--- a/yt_dlp/extractor/testurl.py
+++ b/yt_dlp/extractor/testurl.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tf1.py b/yt_dlp/extractor/tf1.py
index 44785bc65..4cf0322b3 100644
--- a/yt_dlp/extractor/tf1.py
+++ b/yt_dlp/extractor/tf1.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tfo.py b/yt_dlp/extractor/tfo.py
index 0631cb7ab..a24789cb3 100644
--- a/yt_dlp/extractor/tfo.py
+++ b/yt_dlp/extractor/tfo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/theintercept.py b/yt_dlp/extractor/theintercept.py
index f23b58713..a991a4dfd 100644
--- a/yt_dlp/extractor/theintercept.py
+++ b/yt_dlp/extractor/theintercept.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/theplatform.py b/yt_dlp/extractor/theplatform.py
index c2729f12d..bf7efc013 100644
--- a/yt_dlp/extractor/theplatform.py
+++ b/yt_dlp/extractor/theplatform.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import time
import hmac
diff --git a/yt_dlp/extractor/thestar.py b/yt_dlp/extractor/thestar.py
index c3f118894..293c34c06 100644
--- a/yt_dlp/extractor/thestar.py
+++ b/yt_dlp/extractor/thestar.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/thesun.py b/yt_dlp/extractor/thesun.py
index 15d4a6932..ba5848283 100644
--- a/yt_dlp/extractor/thesun.py
+++ b/yt_dlp/extractor/thesun.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/theta.py b/yt_dlp/extractor/theta.py
index 8b6d70a9f..3ec6b9711 100644
--- a/yt_dlp/extractor/theta.py
+++ b/yt_dlp/extractor/theta.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import try_get
diff --git a/yt_dlp/extractor/theweatherchannel.py b/yt_dlp/extractor/theweatherchannel.py
index 9e506c9e0..9e94cd1ea 100644
--- a/yt_dlp/extractor/theweatherchannel.py
+++ b/yt_dlp/extractor/theweatherchannel.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .theplatform import ThePlatformIE
diff --git a/yt_dlp/extractor/thisamericanlife.py b/yt_dlp/extractor/thisamericanlife.py
index 91e45f2c3..9a3d79840 100644
--- a/yt_dlp/extractor/thisamericanlife.py
+++ b/yt_dlp/extractor/thisamericanlife.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/thisav.py b/yt_dlp/extractor/thisav.py
index 6bb00b3ab..b1cd57d1f 100644
--- a/yt_dlp/extractor/thisav.py
+++ b/yt_dlp/extractor/thisav.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import remove_end
diff --git a/yt_dlp/extractor/thisoldhouse.py b/yt_dlp/extractor/thisoldhouse.py
index 8a1d17311..55b6413ae 100644
--- a/yt_dlp/extractor/thisoldhouse.py
+++ b/yt_dlp/extractor/thisoldhouse.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import HEADRequest
diff --git a/yt_dlp/extractor/threeqsdn.py b/yt_dlp/extractor/threeqsdn.py
index 00a51dccd..1c0baf5ed 100644
--- a/yt_dlp/extractor/threeqsdn.py
+++ b/yt_dlp/extractor/threeqsdn.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/threespeak.py b/yt_dlp/extractor/threespeak.py
index fe6a9554a..ce28a37c0 100644
--- a/yt_dlp/extractor/threespeak.py
+++ b/yt_dlp/extractor/threespeak.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tiktok.py b/yt_dlp/extractor/tiktok.py
index 987b0c43b..4ba993582 100644
--- a/yt_dlp/extractor/tiktok.py
+++ b/yt_dlp/extractor/tiktok.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import random
import string
diff --git a/yt_dlp/extractor/tinypic.py b/yt_dlp/extractor/tinypic.py
index 39056e52e..216208cbd 100644
--- a/yt_dlp/extractor/tinypic.py
+++ b/yt_dlp/extractor/tinypic.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tmz.py b/yt_dlp/extractor/tmz.py
index aee2273b8..a8c91f617 100644
--- a/yt_dlp/extractor/tmz.py
+++ b/yt_dlp/extractor/tmz.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tnaflix.py b/yt_dlp/extractor/tnaflix.py
index d7617f708..6b766f3cc 100644
--- a/yt_dlp/extractor/tnaflix.py
+++ b/yt_dlp/extractor/tnaflix.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/toggle.py b/yt_dlp/extractor/toggle.py
index eb873495f..51a51d84b 100644
--- a/yt_dlp/extractor/toggle.py
+++ b/yt_dlp/extractor/toggle.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/tokentube.py b/yt_dlp/extractor/tokentube.py
index 579623fed..a30cabb3c 100644
--- a/yt_dlp/extractor/tokentube.py
+++ b/yt_dlp/extractor/tokentube.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import re
diff --git a/yt_dlp/extractor/tonline.py b/yt_dlp/extractor/tonline.py
index 9b6a40db5..720282663 100644
--- a/yt_dlp/extractor/tonline.py
+++ b/yt_dlp/extractor/tonline.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import int_or_none, join_nonempty
diff --git a/yt_dlp/extractor/toongoggles.py b/yt_dlp/extractor/toongoggles.py
index df13d64c0..1b8fc3acd 100644
--- a/yt_dlp/extractor/toongoggles.py
+++ b/yt_dlp/extractor/toongoggles.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/toutv.py b/yt_dlp/extractor/toutv.py
index 1d5da1040..349c0bded 100644
--- a/yt_dlp/extractor/toutv.py
+++ b/yt_dlp/extractor/toutv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .radiocanada import RadioCanadaIE
diff --git a/yt_dlp/extractor/toypics.py b/yt_dlp/extractor/toypics.py
index f705a06c9..bc7336186 100644
--- a/yt_dlp/extractor/toypics.py
+++ b/yt_dlp/extractor/toypics.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
import re
diff --git a/yt_dlp/extractor/traileraddict.py b/yt_dlp/extractor/traileraddict.py
index 514f4793e..5c4a138c4 100644
--- a/yt_dlp/extractor/traileraddict.py
+++ b/yt_dlp/extractor/traileraddict.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/trilulilu.py b/yt_dlp/extractor/trilulilu.py
index a800449e9..fb97be737 100644
--- a/yt_dlp/extractor/trilulilu.py
+++ b/yt_dlp/extractor/trilulilu.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/trovo.py b/yt_dlp/extractor/trovo.py
index 65ea13ddb..3487f3acc 100644
--- a/yt_dlp/extractor/trovo.py
+++ b/yt_dlp/extractor/trovo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import json
diff --git a/yt_dlp/extractor/trueid.py b/yt_dlp/extractor/trueid.py
index fc98303ab..696343627 100644
--- a/yt_dlp/extractor/trueid.py
+++ b/yt_dlp/extractor/trueid.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_HTTPError
from ..utils import (
diff --git a/yt_dlp/extractor/trunews.py b/yt_dlp/extractor/trunews.py
index cca5b5ceb..d5ce86ece 100644
--- a/yt_dlp/extractor/trunews.py
+++ b/yt_dlp/extractor/trunews.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/trutv.py b/yt_dlp/extractor/trutv.py
index c09ff897c..ea0f2f40e 100644
--- a/yt_dlp/extractor/trutv.py
+++ b/yt_dlp/extractor/trutv.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .turner import TurnerBaseIE
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/tube8.py b/yt_dlp/extractor/tube8.py
index db93b0182..32e80d9d2 100644
--- a/yt_dlp/extractor/tube8.py
+++ b/yt_dlp/extractor/tube8.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from ..utils import (
diff --git a/yt_dlp/extractor/tubitv.py b/yt_dlp/extractor/tubitv.py
index 31feb9a70..9c8e1ac87 100644
--- a/yt_dlp/extractor/tubitv.py
+++ b/yt_dlp/extractor/tubitv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tudou.py b/yt_dlp/extractor/tudou.py
index 7421378a8..69774ee38 100644
--- a/yt_dlp/extractor/tudou.py
+++ b/yt_dlp/extractor/tudou.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tumblr.py b/yt_dlp/extractor/tumblr.py
index 8086f613d..5d6615100 100644
--- a/yt_dlp/extractor/tumblr.py
+++ b/yt_dlp/extractor/tumblr.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/tunein.py b/yt_dlp/extractor/tunein.py
index 7e51de89e..e3d3f2a96 100644
--- a/yt_dlp/extractor/tunein.py
+++ b/yt_dlp/extractor/tunein.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tunepk.py b/yt_dlp/extractor/tunepk.py
index 9d42651ce..2973d15ec 100644
--- a/yt_dlp/extractor/tunepk.py
+++ b/yt_dlp/extractor/tunepk.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/turbo.py b/yt_dlp/extractor/turbo.py
index f6bbf2529..e3f8941c4 100644
--- a/yt_dlp/extractor/turbo.py
+++ b/yt_dlp/extractor/turbo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/turner.py b/yt_dlp/extractor/turner.py
index 519dc323c..568b6de49 100644
--- a/yt_dlp/extractor/turner.py
+++ b/yt_dlp/extractor/turner.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .adobepass import AdobePassIE
diff --git a/yt_dlp/extractor/tv2.py b/yt_dlp/extractor/tv2.py
index 977da30fe..391baa6c5 100644
--- a/yt_dlp/extractor/tv2.py
+++ b/yt_dlp/extractor/tv2.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tv2dk.py b/yt_dlp/extractor/tv2dk.py
index ec5cbdf03..0af286312 100644
--- a/yt_dlp/extractor/tv2dk.py
+++ b/yt_dlp/extractor/tv2dk.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/tv2hu.py b/yt_dlp/extractor/tv2hu.py
index f2104358b..6ac07716b 100644
--- a/yt_dlp/extractor/tv2hu.py
+++ b/yt_dlp/extractor/tv2hu.py
@@ -1,6 +1,4 @@
# encoding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
traverse_obj,
diff --git a/yt_dlp/extractor/tv4.py b/yt_dlp/extractor/tv4.py
index 4043e6366..e8cdd5c8c 100644
--- a/yt_dlp/extractor/tv4.py
+++ b/yt_dlp/extractor/tv4.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tv5mondeplus.py b/yt_dlp/extractor/tv5mondeplus.py
index a0832d28f..d449cdc04 100644
--- a/yt_dlp/extractor/tv5mondeplus.py
+++ b/yt_dlp/extractor/tv5mondeplus.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/tv5unis.py b/yt_dlp/extractor/tv5unis.py
index 398b85db5..978255b17 100644
--- a/yt_dlp/extractor/tv5unis.py
+++ b/yt_dlp/extractor/tv5unis.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/tva.py b/yt_dlp/extractor/tva.py
index 52a4ddf32..9afe23328 100644
--- a/yt_dlp/extractor/tva.py
+++ b/yt_dlp/extractor/tva.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
float_or_none,
diff --git a/yt_dlp/extractor/tvanouvelles.py b/yt_dlp/extractor/tvanouvelles.py
index 1086176a2..b9f5e110e 100644
--- a/yt_dlp/extractor/tvanouvelles.py
+++ b/yt_dlp/extractor/tvanouvelles.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tvc.py b/yt_dlp/extractor/tvc.py
index 008f64cc2..4ccc8f522 100644
--- a/yt_dlp/extractor/tvc.py
+++ b/yt_dlp/extractor/tvc.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tver.py b/yt_dlp/extractor/tver.py
index f23af1f14..19236f8e8 100644
--- a/yt_dlp/extractor/tver.py
+++ b/yt_dlp/extractor/tver.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/tvigle.py b/yt_dlp/extractor/tvigle.py
index aa25ba0dc..cc1d35dc2 100644
--- a/yt_dlp/extractor/tvigle.py
+++ b/yt_dlp/extractor/tvigle.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/tvland.py b/yt_dlp/extractor/tvland.py
index 9ebf57f74..481d5eb19 100644
--- a/yt_dlp/extractor/tvland.py
+++ b/yt_dlp/extractor/tvland.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .mtv import MTVServicesInfoExtractor
# TODO: Remove - Reason not used anymore - Service moved to youtube
diff --git a/yt_dlp/extractor/tvn24.py b/yt_dlp/extractor/tvn24.py
index de0fb5063..22b605823 100644
--- a/yt_dlp/extractor/tvn24.py
+++ b/yt_dlp/extractor/tvn24.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/tvnet.py b/yt_dlp/extractor/tvnet.py
index aa1e9d923..5820bb4a7 100644
--- a/yt_dlp/extractor/tvnet.py
+++ b/yt_dlp/extractor/tvnet.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tvnoe.py b/yt_dlp/extractor/tvnoe.py
index 26a5aeae4..712fbb275 100644
--- a/yt_dlp/extractor/tvnoe.py
+++ b/yt_dlp/extractor/tvnoe.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/tvnow.py b/yt_dlp/extractor/tvnow.py
index b31818477..4aa558d83 100644
--- a/yt_dlp/extractor/tvnow.py
+++ b/yt_dlp/extractor/tvnow.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tvopengr.py b/yt_dlp/extractor/tvopengr.py
index a11cdc6b0..aded261f3 100644
--- a/yt_dlp/extractor/tvopengr.py
+++ b/yt_dlp/extractor/tvopengr.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tvp.py b/yt_dlp/extractor/tvp.py
index 48e2c6e76..69168f655 100644
--- a/yt_dlp/extractor/tvp.py
+++ b/yt_dlp/extractor/tvp.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import random
import re
diff --git a/yt_dlp/extractor/tvplay.py b/yt_dlp/extractor/tvplay.py
index b5dbc5526..f815b5137 100644
--- a/yt_dlp/extractor/tvplay.py
+++ b/yt_dlp/extractor/tvplay.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/tvplayer.py b/yt_dlp/extractor/tvplayer.py
index 5970596b2..31d70b6b8 100644
--- a/yt_dlp/extractor/tvplayer.py
+++ b/yt_dlp/extractor/tvplayer.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_HTTPError,
diff --git a/yt_dlp/extractor/tweakers.py b/yt_dlp/extractor/tweakers.py
index 2b10d9bca..6d1f92bbb 100644
--- a/yt_dlp/extractor/tweakers.py
+++ b/yt_dlp/extractor/tweakers.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/twentyfourvideo.py b/yt_dlp/extractor/twentyfourvideo.py
index ae19e11e1..baeb85d47 100644
--- a/yt_dlp/extractor/twentyfourvideo.py
+++ b/yt_dlp/extractor/twentyfourvideo.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
parse_iso8601,
diff --git a/yt_dlp/extractor/twentymin.py b/yt_dlp/extractor/twentymin.py
index a42977f39..616c3c36e 100644
--- a/yt_dlp/extractor/twentymin.py
+++ b/yt_dlp/extractor/twentymin.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/twentythreevideo.py b/yt_dlp/extractor/twentythreevideo.py
index e8cf5a1e9..290c3761e 100644
--- a/yt_dlp/extractor/twentythreevideo.py
+++ b/yt_dlp/extractor/twentythreevideo.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/twitcasting.py b/yt_dlp/extractor/twitcasting.py
index 7f3fa0735..3d6a12265 100644
--- a/yt_dlp/extractor/twitcasting.py
+++ b/yt_dlp/extractor/twitcasting.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import re
diff --git a/yt_dlp/extractor/twitch.py b/yt_dlp/extractor/twitch.py
index 10de74c8e..834350d12 100644
--- a/yt_dlp/extractor/twitch.py
+++ b/yt_dlp/extractor/twitch.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import collections
import itertools
import json
diff --git a/yt_dlp/extractor/twitter.py b/yt_dlp/extractor/twitter.py
index 8ccc38e24..af6750333 100644
--- a/yt_dlp/extractor/twitter.py
+++ b/yt_dlp/extractor/twitter.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/udemy.py b/yt_dlp/extractor/udemy.py
index 77485247f..d35cd0d43 100644
--- a/yt_dlp/extractor/udemy.py
+++ b/yt_dlp/extractor/udemy.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/udn.py b/yt_dlp/extractor/udn.py
index 2c8e5c7b4..4fa74b9e8 100644
--- a/yt_dlp/extractor/udn.py
+++ b/yt_dlp/extractor/udn.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/ufctv.py b/yt_dlp/extractor/ufctv.py
index 3d74ba071..2c1c5e0ff 100644
--- a/yt_dlp/extractor/ufctv.py
+++ b/yt_dlp/extractor/ufctv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .imggaming import ImgGamingBaseIE
diff --git a/yt_dlp/extractor/ukcolumn.py b/yt_dlp/extractor/ukcolumn.py
index d2626f0d3..aade79f20 100644
--- a/yt_dlp/extractor/ukcolumn.py
+++ b/yt_dlp/extractor/ukcolumn.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from ..utils import (
unescapeHTML,
urljoin,
diff --git a/yt_dlp/extractor/uktvplay.py b/yt_dlp/extractor/uktvplay.py
index f28fd514d..abea07ab5 100644
--- a/yt_dlp/extractor/uktvplay.py
+++ b/yt_dlp/extractor/uktvplay.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/umg.py b/yt_dlp/extractor/umg.py
index c1b65d189..e6ed656b9 100644
--- a/yt_dlp/extractor/umg.py
+++ b/yt_dlp/extractor/umg.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/unistra.py b/yt_dlp/extractor/unistra.py
index 685d74f35..083c87209 100644
--- a/yt_dlp/extractor/unistra.py
+++ b/yt_dlp/extractor/unistra.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/unity.py b/yt_dlp/extractor/unity.py
index 73daacf29..d1b0ecbf3 100644
--- a/yt_dlp/extractor/unity.py
+++ b/yt_dlp/extractor/unity.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .youtube import YoutubeIE
diff --git a/yt_dlp/extractor/uol.py b/yt_dlp/extractor/uol.py
index 1baee0b10..e3d9127d8 100644
--- a/yt_dlp/extractor/uol.py
+++ b/yt_dlp/extractor/uol.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_str,
diff --git a/yt_dlp/extractor/uplynk.py b/yt_dlp/extractor/uplynk.py
index 9adb96943..04c96f388 100644
--- a/yt_dlp/extractor/uplynk.py
+++ b/yt_dlp/extractor/uplynk.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/urort.py b/yt_dlp/extractor/urort.py
index 020425fc7..296799d38 100644
--- a/yt_dlp/extractor/urort.py
+++ b/yt_dlp/extractor/urort.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import (
compat_urllib_parse,
diff --git a/yt_dlp/extractor/urplay.py b/yt_dlp/extractor/urplay.py
index eb2ab26e1..30bd3dcbf 100644
--- a/yt_dlp/extractor/urplay.py
+++ b/yt_dlp/extractor/urplay.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
dict_get,
diff --git a/yt_dlp/extractor/usanetwork.py b/yt_dlp/extractor/usanetwork.py
index d953e460b..d6b58a51c 100644
--- a/yt_dlp/extractor/usanetwork.py
+++ b/yt_dlp/extractor/usanetwork.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .nbc import NBCIE
diff --git a/yt_dlp/extractor/usatoday.py b/yt_dlp/extractor/usatoday.py
index b2103448d..3243f3e3b 100644
--- a/yt_dlp/extractor/usatoday.py
+++ b/yt_dlp/extractor/usatoday.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/ustream.py b/yt_dlp/extractor/ustream.py
index 4a7a8f879..fff21667a 100644
--- a/yt_dlp/extractor/ustream.py
+++ b/yt_dlp/extractor/ustream.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import random
import re
diff --git a/yt_dlp/extractor/ustudio.py b/yt_dlp/extractor/ustudio.py
index 92509d1bf..fd5dad0fc 100644
--- a/yt_dlp/extractor/ustudio.py
+++ b/yt_dlp/extractor/ustudio.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/utreon.py b/yt_dlp/extractor/utreon.py
index 4986635f2..1213ae1bf 100644
--- a/yt_dlp/extractor/utreon.py
+++ b/yt_dlp/extractor/utreon.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
dict_get,
diff --git a/yt_dlp/extractor/varzesh3.py b/yt_dlp/extractor/varzesh3.py
index 32655b96d..2c13cbdc0 100644
--- a/yt_dlp/extractor/varzesh3.py
+++ b/yt_dlp/extractor/varzesh3.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/vbox7.py b/yt_dlp/extractor/vbox7.py
index 8152acefd..76c844cb8 100644
--- a/yt_dlp/extractor/vbox7.py
+++ b/yt_dlp/extractor/vbox7.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/veehd.py b/yt_dlp/extractor/veehd.py
index a6dc3c8d8..5ecd88726 100644
--- a/yt_dlp/extractor/veehd.py
+++ b/yt_dlp/extractor/veehd.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
import json
diff --git a/yt_dlp/extractor/veo.py b/yt_dlp/extractor/veo.py
index d87bb5b47..25d462a7d 100644
--- a/yt_dlp/extractor/veo.py
+++ b/yt_dlp/extractor/veo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
diff --git a/yt_dlp/extractor/veoh.py b/yt_dlp/extractor/veoh.py
index d9afb5617..70280ae85 100644
--- a/yt_dlp/extractor/veoh.py
+++ b/yt_dlp/extractor/veoh.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/vesti.py b/yt_dlp/extractor/vesti.py
index 002047dbf..e9731a941 100644
--- a/yt_dlp/extractor/vesti.py
+++ b/yt_dlp/extractor/vesti.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vevo.py b/yt_dlp/extractor/vevo.py
index 8a0f29259..bc0187511 100644
--- a/yt_dlp/extractor/vevo.py
+++ b/yt_dlp/extractor/vevo.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
import json
diff --git a/yt_dlp/extractor/vgtv.py b/yt_dlp/extractor/vgtv.py
index 9d6090b08..6564b7b0b 100644
--- a/yt_dlp/extractor/vgtv.py
+++ b/yt_dlp/extractor/vgtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vh1.py b/yt_dlp/extractor/vh1.py
index 862c5c7dc..41b8a4607 100644
--- a/yt_dlp/extractor/vh1.py
+++ b/yt_dlp/extractor/vh1.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .mtv import MTVServicesInfoExtractor
# TODO Remove - Reason: Outdated Site
diff --git a/yt_dlp/extractor/vice.py b/yt_dlp/extractor/vice.py
index c8c30559e..abb4a6fa0 100644
--- a/yt_dlp/extractor/vice.py
+++ b/yt_dlp/extractor/vice.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import functools
import hashlib
import json
diff --git a/yt_dlp/extractor/vidbit.py b/yt_dlp/extractor/vidbit.py
index 91f45b7cc..2813032db 100644
--- a/yt_dlp/extractor/vidbit.py
+++ b/yt_dlp/extractor/vidbit.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urlparse
from ..utils import (
diff --git a/yt_dlp/extractor/viddler.py b/yt_dlp/extractor/viddler.py
index ecc48246f..f491b67ef 100644
--- a/yt_dlp/extractor/viddler.py
+++ b/yt_dlp/extractor/viddler.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
float_or_none,
diff --git a/yt_dlp/extractor/videa.py b/yt_dlp/extractor/videa.py
index 90d705092..251eb78fe 100644
--- a/yt_dlp/extractor/videa.py
+++ b/yt_dlp/extractor/videa.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import random
import re
import string
diff --git a/yt_dlp/extractor/videocampus_sachsen.py b/yt_dlp/extractor/videocampus_sachsen.py
index 96e98573f..fe9e061ae 100644
--- a/yt_dlp/extractor/videocampus_sachsen.py
+++ b/yt_dlp/extractor/videocampus_sachsen.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/videodetective.py b/yt_dlp/extractor/videodetective.py
index fe70db713..7928a41c2 100644
--- a/yt_dlp/extractor/videodetective.py
+++ b/yt_dlp/extractor/videodetective.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .internetvideoarchive import InternetVideoArchiveIE
diff --git a/yt_dlp/extractor/videofyme.py b/yt_dlp/extractor/videofyme.py
index cd3f50a63..1d1c8f7b7 100644
--- a/yt_dlp/extractor/videofyme.py
+++ b/yt_dlp/extractor/videofyme.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/videomore.py b/yt_dlp/extractor/videomore.py
index 17ef3b1b9..09d12d192 100644
--- a/yt_dlp/extractor/videomore.py
+++ b/yt_dlp/extractor/videomore.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/videopress.py b/yt_dlp/extractor/videopress.py
index 6376ff096..3c5e27a9d 100644
--- a/yt_dlp/extractor/videopress.py
+++ b/yt_dlp/extractor/videopress.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vidio.py b/yt_dlp/extractor/vidio.py
index 6bfb8d442..599996bf9 100644
--- a/yt_dlp/extractor/vidio.py
+++ b/yt_dlp/extractor/vidio.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
clean_html,
diff --git a/yt_dlp/extractor/vidlii.py b/yt_dlp/extractor/vidlii.py
index a63919ff2..b9845affd 100644
--- a/yt_dlp/extractor/vidlii.py
+++ b/yt_dlp/extractor/vidlii.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vidzi.py b/yt_dlp/extractor/vidzi.py
index 42ea4952c..efa9be116 100644
--- a/yt_dlp/extractor/vidzi.py
+++ b/yt_dlp/extractor/vidzi.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vier.py b/yt_dlp/extractor/vier.py
index 94aa350e7..eab894ab6 100644
--- a/yt_dlp/extractor/vier.py
+++ b/yt_dlp/extractor/vier.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import itertools
diff --git a/yt_dlp/extractor/viewlift.py b/yt_dlp/extractor/viewlift.py
index 4627f66fd..d081a2f12 100644
--- a/yt_dlp/extractor/viewlift.py
+++ b/yt_dlp/extractor/viewlift.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import json
import re
diff --git a/yt_dlp/extractor/viidea.py b/yt_dlp/extractor/viidea.py
index 0da06818b..157ce4d8f 100644
--- a/yt_dlp/extractor/viidea.py
+++ b/yt_dlp/extractor/viidea.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/viki.py b/yt_dlp/extractor/viki.py
index 8a930798d..a922b195c 100644
--- a/yt_dlp/extractor/viki.py
+++ b/yt_dlp/extractor/viki.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
import hashlib
import hmac
import json
diff --git a/yt_dlp/extractor/vimeo.py b/yt_dlp/extractor/vimeo.py
index a00b387f3..b2c929373 100644
--- a/yt_dlp/extractor/vimeo.py
+++ b/yt_dlp/extractor/vimeo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import functools
import re
diff --git a/yt_dlp/extractor/vimm.py b/yt_dlp/extractor/vimm.py
index 060b92ba6..3522b8e33 100644
--- a/yt_dlp/extractor/vimm.py
+++ b/yt_dlp/extractor/vimm.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vimple.py b/yt_dlp/extractor/vimple.py
index c74b43766..a8b16dd29 100644
--- a/yt_dlp/extractor/vimple.py
+++ b/yt_dlp/extractor/vimple.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/vine.py b/yt_dlp/extractor/vine.py
index e59b1037b..bbf43a83f 100644
--- a/yt_dlp/extractor/vine.py
+++ b/yt_dlp/extractor/vine.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/viqeo.py b/yt_dlp/extractor/viqeo.py
index be7dfa814..d214223e9 100644
--- a/yt_dlp/extractor/viqeo.py
+++ b/yt_dlp/extractor/viqeo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/viu.py b/yt_dlp/extractor/viu.py
index ba627ca5b..63b6fd3a1 100644
--- a/yt_dlp/extractor/viu.py
+++ b/yt_dlp/extractor/viu.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import json
import uuid
diff --git a/yt_dlp/extractor/vk.py b/yt_dlp/extractor/vk.py
index cbc315961..402508aa3 100644
--- a/yt_dlp/extractor/vk.py
+++ b/yt_dlp/extractor/vk.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import collections
import re
diff --git a/yt_dlp/extractor/vlive.py b/yt_dlp/extractor/vlive.py
index ae35c976c..c60801417 100644
--- a/yt_dlp/extractor/vlive.py
+++ b/yt_dlp/extractor/vlive.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import json
diff --git a/yt_dlp/extractor/vodlocker.py b/yt_dlp/extractor/vodlocker.py
index 02c9617d2..1c7236ed3 100644
--- a/yt_dlp/extractor/vodlocker.py
+++ b/yt_dlp/extractor/vodlocker.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/vodpl.py b/yt_dlp/extractor/vodpl.py
index 9e919708e..8af1572d0 100644
--- a/yt_dlp/extractor/vodpl.py
+++ b/yt_dlp/extractor/vodpl.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .onet import OnetBaseIE
diff --git a/yt_dlp/extractor/vodplatform.py b/yt_dlp/extractor/vodplatform.py
index 74d2257e7..2b45dcd86 100644
--- a/yt_dlp/extractor/vodplatform.py
+++ b/yt_dlp/extractor/vodplatform.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import unescapeHTML
diff --git a/yt_dlp/extractor/voicerepublic.py b/yt_dlp/extractor/voicerepublic.py
index a52e40afa..e8cbd0e32 100644
--- a/yt_dlp/extractor/voicerepublic.py
+++ b/yt_dlp/extractor/voicerepublic.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/voicy.py b/yt_dlp/extractor/voicy.py
index 37c7d5685..e4570a03a 100644
--- a/yt_dlp/extractor/voicy.py
+++ b/yt_dlp/extractor/voicy.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/voot.py b/yt_dlp/extractor/voot.py
index a9b66b95c..7ac38a813 100644
--- a/yt_dlp/extractor/voot.py
+++ b/yt_dlp/extractor/voot.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/voxmedia.py b/yt_dlp/extractor/voxmedia.py
index 661208125..a7bf298aa 100644
--- a/yt_dlp/extractor/voxmedia.py
+++ b/yt_dlp/extractor/voxmedia.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from .once import OnceIE
from ..compat import compat_urllib_parse_unquote
diff --git a/yt_dlp/extractor/vrak.py b/yt_dlp/extractor/vrak.py
index daa247cce..198c0a294 100644
--- a/yt_dlp/extractor/vrak.py
+++ b/yt_dlp/extractor/vrak.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vrt.py b/yt_dlp/extractor/vrt.py
index 10dc94abc..26f48bf67 100644
--- a/yt_dlp/extractor/vrt.py
+++ b/yt_dlp/extractor/vrt.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
extract_attributes,
diff --git a/yt_dlp/extractor/vrv.py b/yt_dlp/extractor/vrv.py
index 00e1006c4..35662753e 100644
--- a/yt_dlp/extractor/vrv.py
+++ b/yt_dlp/extractor/vrv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import base64
import json
import hashlib
diff --git a/yt_dlp/extractor/vshare.py b/yt_dlp/extractor/vshare.py
index b4874ac39..8ef75d30e 100644
--- a/yt_dlp/extractor/vshare.py
+++ b/yt_dlp/extractor/vshare.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vtm.py b/yt_dlp/extractor/vtm.py
index 093f1aa69..6381fd311 100644
--- a/yt_dlp/extractor/vtm.py
+++ b/yt_dlp/extractor/vtm.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/vuclip.py b/yt_dlp/extractor/vuclip.py
index 55e087bdb..0e562983d 100644
--- a/yt_dlp/extractor/vuclip.py
+++ b/yt_dlp/extractor/vuclip.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vupload.py b/yt_dlp/extractor/vupload.py
index b561f63f7..23ea70c77 100644
--- a/yt_dlp/extractor/vupload.py
+++ b/yt_dlp/extractor/vupload.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
parse_duration,
diff --git a/yt_dlp/extractor/vvvvid.py b/yt_dlp/extractor/vvvvid.py
index 3faa90fbd..ccc44d08a 100644
--- a/yt_dlp/extractor/vvvvid.py
+++ b/yt_dlp/extractor/vvvvid.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/vyborymos.py b/yt_dlp/extractor/vyborymos.py
index 4d93666c5..386518795 100644
--- a/yt_dlp/extractor/vyborymos.py
+++ b/yt_dlp/extractor/vyborymos.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
diff --git a/yt_dlp/extractor/vzaar.py b/yt_dlp/extractor/vzaar.py
index 54f88bba8..7ce0ba9f5 100644
--- a/yt_dlp/extractor/vzaar.py
+++ b/yt_dlp/extractor/vzaar.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/wakanim.py b/yt_dlp/extractor/wakanim.py
index a70a71961..155008f8c 100644
--- a/yt_dlp/extractor/wakanim.py
+++ b/yt_dlp/extractor/wakanim.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from urllib.parse import unquote
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/walla.py b/yt_dlp/extractor/walla.py
index 00f081bca..6b954c5cc 100644
--- a/yt_dlp/extractor/walla.py
+++ b/yt_dlp/extractor/walla.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/wasdtv.py b/yt_dlp/extractor/wasdtv.py
index 38c10dc62..bf1ad65b2 100644
--- a/yt_dlp/extractor/wasdtv.py
+++ b/yt_dlp/extractor/wasdtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/washingtonpost.py b/yt_dlp/extractor/washingtonpost.py
index 9d6ae2870..7274eaa39 100644
--- a/yt_dlp/extractor/washingtonpost.py
+++ b/yt_dlp/extractor/washingtonpost.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/wat.py b/yt_dlp/extractor/wat.py
index 9ff4523db..2ad664890 100644
--- a/yt_dlp/extractor/wat.py
+++ b/yt_dlp/extractor/wat.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/watchbox.py b/yt_dlp/extractor/watchbox.py
index d19d80102..e41148d4a 100644
--- a/yt_dlp/extractor/watchbox.py
+++ b/yt_dlp/extractor/watchbox.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/watchindianporn.py b/yt_dlp/extractor/watchindianporn.py
index a86819173..3ded2d1d4 100644
--- a/yt_dlp/extractor/watchindianporn.py
+++ b/yt_dlp/extractor/watchindianporn.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/wdr.py b/yt_dlp/extractor/wdr.py
index ef58a66c3..d0ad69477 100644
--- a/yt_dlp/extractor/wdr.py
+++ b/yt_dlp/extractor/wdr.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/webcaster.py b/yt_dlp/extractor/webcaster.py
index a858e992c..374fe35cd 100644
--- a/yt_dlp/extractor/webcaster.py
+++ b/yt_dlp/extractor/webcaster.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/webofstories.py b/yt_dlp/extractor/webofstories.py
index f2b8d19b4..fde9300b0 100644
--- a/yt_dlp/extractor/webofstories.py
+++ b/yt_dlp/extractor/webofstories.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/weibo.py b/yt_dlp/extractor/weibo.py
index dafa2af3b..d5a52ce20 100644
--- a/yt_dlp/extractor/weibo.py
+++ b/yt_dlp/extractor/weibo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
import json
diff --git a/yt_dlp/extractor/weiqitv.py b/yt_dlp/extractor/weiqitv.py
index 7e0befd39..c9ff64154 100644
--- a/yt_dlp/extractor/weiqitv.py
+++ b/yt_dlp/extractor/weiqitv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/whowatch.py b/yt_dlp/extractor/whowatch.py
index e4b610d00..21574471c 100644
--- a/yt_dlp/extractor/whowatch.py
+++ b/yt_dlp/extractor/whowatch.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/willow.py b/yt_dlp/extractor/willow.py
index 4d3d62f95..6c71e9a04 100644
--- a/yt_dlp/extractor/willow.py
+++ b/yt_dlp/extractor/willow.py
@@ -1,4 +1,3 @@
-# coding: utf-8
from ..utils import ExtractorError
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/wimtv.py b/yt_dlp/extractor/wimtv.py
index ea953bf77..6e7ec3436 100644
--- a/yt_dlp/extractor/wimtv.py
+++ b/yt_dlp/extractor/wimtv.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/wistia.py b/yt_dlp/extractor/wistia.py
index a170966c3..8f0e7949b 100644
--- a/yt_dlp/extractor/wistia.py
+++ b/yt_dlp/extractor/wistia.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/worldstarhiphop.py b/yt_dlp/extractor/worldstarhiphop.py
index 82587b4ce..c6948a1eb 100644
--- a/yt_dlp/extractor/worldstarhiphop.py
+++ b/yt_dlp/extractor/worldstarhiphop.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/wppilot.py b/yt_dlp/extractor/wppilot.py
index 3003a0f10..6349e5326 100644
--- a/yt_dlp/extractor/wppilot.py
+++ b/yt_dlp/extractor/wppilot.py
@@ -1,5 +1,3 @@
-# coding: utf-8
-
from .common import InfoExtractor
from ..utils import (
try_get,
diff --git a/yt_dlp/extractor/wsj.py b/yt_dlp/extractor/wsj.py
index 67236f377..8be3645e3 100644
--- a/yt_dlp/extractor/wsj.py
+++ b/yt_dlp/extractor/wsj.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/wwe.py b/yt_dlp/extractor/wwe.py
index bebc77bb5..9bbd477c3 100644
--- a/yt_dlp/extractor/wwe.py
+++ b/yt_dlp/extractor/wwe.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/xbef.py b/yt_dlp/extractor/xbef.py
index 4c41e98b2..ac69528a3 100644
--- a/yt_dlp/extractor/xbef.py
+++ b/yt_dlp/extractor/xbef.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urllib_parse_unquote
diff --git a/yt_dlp/extractor/xboxclips.py b/yt_dlp/extractor/xboxclips.py
index 9bac982f8..235b567d9 100644
--- a/yt_dlp/extractor/xboxclips.py
+++ b/yt_dlp/extractor/xboxclips.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/xfileshare.py b/yt_dlp/extractor/xfileshare.py
index cd97c77dc..28b6ecb6e 100644
--- a/yt_dlp/extractor/xfileshare.py
+++ b/yt_dlp/extractor/xfileshare.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/xhamster.py b/yt_dlp/extractor/xhamster.py
index 9d4ed47d4..ff15d3707 100644
--- a/yt_dlp/extractor/xhamster.py
+++ b/yt_dlp/extractor/xhamster.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import itertools
import re
diff --git a/yt_dlp/extractor/xiami.py b/yt_dlp/extractor/xiami.py
index 769aab331..71b2956a8 100644
--- a/yt_dlp/extractor/xiami.py
+++ b/yt_dlp/extractor/xiami.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_urllib_parse_unquote
from ..utils import int_or_none
diff --git a/yt_dlp/extractor/ximalaya.py b/yt_dlp/extractor/ximalaya.py
index 802d1bb1b..c3447fba0 100644
--- a/yt_dlp/extractor/ximalaya.py
+++ b/yt_dlp/extractor/ximalaya.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
import itertools
import re
diff --git a/yt_dlp/extractor/xinpianchang.py b/yt_dlp/extractor/xinpianchang.py
index 9832d2398..96e23bb8d 100644
--- a/yt_dlp/extractor/xinpianchang.py
+++ b/yt_dlp/extractor/xinpianchang.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
int_or_none,
diff --git a/yt_dlp/extractor/xminus.py b/yt_dlp/extractor/xminus.py
index 36e5ead1e..5f113810f 100644
--- a/yt_dlp/extractor/xminus.py
+++ b/yt_dlp/extractor/xminus.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import time
diff --git a/yt_dlp/extractor/xnxx.py b/yt_dlp/extractor/xnxx.py
index 27f991627..14beb1347 100644
--- a/yt_dlp/extractor/xnxx.py
+++ b/yt_dlp/extractor/xnxx.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/xstream.py b/yt_dlp/extractor/xstream.py
index 792843df5..42bffb071 100644
--- a/yt_dlp/extractor/xstream.py
+++ b/yt_dlp/extractor/xstream.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/xtube.py b/yt_dlp/extractor/xtube.py
index abd319188..93a6a3f33 100644
--- a/yt_dlp/extractor/xtube.py
+++ b/yt_dlp/extractor/xtube.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import itertools
import re
diff --git a/yt_dlp/extractor/xuite.py b/yt_dlp/extractor/xuite.py
index 0276c0dbb..52423a327 100644
--- a/yt_dlp/extractor/xuite.py
+++ b/yt_dlp/extractor/xuite.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/xvideos.py b/yt_dlp/extractor/xvideos.py
index d5261b6ab..50b939496 100644
--- a/yt_dlp/extractor/xvideos.py
+++ b/yt_dlp/extractor/xvideos.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/xxxymovies.py b/yt_dlp/extractor/xxxymovies.py
index 0d536015c..e3e3a9fe6 100644
--- a/yt_dlp/extractor/xxxymovies.py
+++ b/yt_dlp/extractor/xxxymovies.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
parse_duration,
diff --git a/yt_dlp/extractor/yahoo.py b/yt_dlp/extractor/yahoo.py
index 20504de2c..3fe6192bf 100644
--- a/yt_dlp/extractor/yahoo.py
+++ b/yt_dlp/extractor/yahoo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hashlib
import itertools
import re
diff --git a/yt_dlp/extractor/yandexdisk.py b/yt_dlp/extractor/yandexdisk.py
index c15f3a4f3..d87a7f9be 100644
--- a/yt_dlp/extractor/yandexdisk.py
+++ b/yt_dlp/extractor/yandexdisk.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/yandexmusic.py b/yt_dlp/extractor/yandexmusic.py
index a3558cc12..8ea416a1d 100644
--- a/yt_dlp/extractor/yandexmusic.py
+++ b/yt_dlp/extractor/yandexmusic.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hashlib
import itertools
diff --git a/yt_dlp/extractor/yandexvideo.py b/yt_dlp/extractor/yandexvideo.py
index 7d3966bf1..37ff514b3 100644
--- a/yt_dlp/extractor/yandexvideo.py
+++ b/yt_dlp/extractor/yandexvideo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
import re
diff --git a/yt_dlp/extractor/yapfiles.py b/yt_dlp/extractor/yapfiles.py
index cfb368de9..8fabdf81c 100644
--- a/yt_dlp/extractor/yapfiles.py
+++ b/yt_dlp/extractor/yapfiles.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/yesjapan.py b/yt_dlp/extractor/yesjapan.py
index 681338c96..b45fa8f14 100644
--- a/yt_dlp/extractor/yesjapan.py
+++ b/yt_dlp/extractor/yesjapan.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import (
HEADRequest,
diff --git a/yt_dlp/extractor/yinyuetai.py b/yt_dlp/extractor/yinyuetai.py
index 1fd8d35c6..b28c39380 100644
--- a/yt_dlp/extractor/yinyuetai.py
+++ b/yt_dlp/extractor/yinyuetai.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import ExtractorError
diff --git a/yt_dlp/extractor/ynet.py b/yt_dlp/extractor/ynet.py
index c4ae4d88e..444785947 100644
--- a/yt_dlp/extractor/ynet.py
+++ b/yt_dlp/extractor/ynet.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
import json
diff --git a/yt_dlp/extractor/youjizz.py b/yt_dlp/extractor/youjizz.py
index 111623ffe..cd12be500 100644
--- a/yt_dlp/extractor/youjizz.py
+++ b/yt_dlp/extractor/youjizz.py
@@ -1,6 +1,3 @@
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
determine_ext,
diff --git a/yt_dlp/extractor/youku.py b/yt_dlp/extractor/youku.py
index b50579915..45856fbbe 100644
--- a/yt_dlp/extractor/youku.py
+++ b/yt_dlp/extractor/youku.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import random
import re
import string
diff --git a/yt_dlp/extractor/younow.py b/yt_dlp/extractor/younow.py
index 583aea38d..76d89f3ce 100644
--- a/yt_dlp/extractor/younow.py
+++ b/yt_dlp/extractor/younow.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import itertools
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/youporn.py b/yt_dlp/extractor/youporn.py
index 5feb568e7..5aea82295 100644
--- a/yt_dlp/extractor/youporn.py
+++ b/yt_dlp/extractor/youporn.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/yourporn.py b/yt_dlp/extractor/yourporn.py
index 98347491e..38f42a991 100644
--- a/yt_dlp/extractor/yourporn.py
+++ b/yt_dlp/extractor/yourporn.py
@@ -1,5 +1,3 @@
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
diff --git a/yt_dlp/extractor/yourupload.py b/yt_dlp/extractor/yourupload.py
index 9fa772838..def63293a 100644
--- a/yt_dlp/extractor/yourupload.py
+++ b/yt_dlp/extractor/yourupload.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import urljoin
diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py
index f284487b8..21c6143bd 100644
--- a/yt_dlp/extractor/youtube.py
+++ b/yt_dlp/extractor/youtube.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-
-from __future__ import unicode_literals
-
import calendar
import copy
import datetime
@@ -452,7 +448,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
return None
# SAPISIDHASH algorithm from https://stackoverflow.com/a/32065323
sapisidhash = hashlib.sha1(
- f'{time_now} {self._SAPISID} {origin}'.encode('utf-8')).hexdigest()
+ f'{time_now} {self._SAPISID} {origin}'.encode()).hexdigest()
return f'SAPISIDHASH {time_now}_{sapisidhash}'
def _call_api(self, ep, query, video_id, fatal=True, headers=None,
@@ -466,14 +462,14 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
if headers:
real_headers.update(headers)
return self._download_json(
- 'https://%s/youtubei/v1/%s' % (api_hostname or self._get_innertube_host(default_client), ep),
+ f'https://{api_hostname or self._get_innertube_host(default_client)}/youtubei/v1/{ep}',
video_id=video_id, fatal=fatal, note=note, errnote=errnote,
data=json.dumps(data).encode('utf8'), headers=real_headers,
query={'key': api_key or self._extract_api_key(), 'prettyPrint': 'false'})
def extract_yt_initial_data(self, item_id, webpage, fatal=True):
data = self._search_regex(
- (r'%s\s*%s' % (self._YT_INITIAL_DATA_RE, self._YT_INITIAL_BOUNDARY_RE),
+ (fr'{self._YT_INITIAL_DATA_RE}\s*{self._YT_INITIAL_BOUNDARY_RE}',
self._YT_INITIAL_DATA_RE), webpage, 'yt initial data', fatal=fatal)
if data:
return self._parse_json(data, item_id, fatal=fatal)
@@ -657,7 +653,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
warnings.append([alert_type, alert_message])
for alert_type, alert_message in (warnings + errors[:-1]):
- self.report_warning('YouTube said: %s - %s' % (alert_type, alert_message), only_once=only_once)
+ self.report_warning(f'YouTube said: {alert_type} - {alert_message}', only_once=only_once)
if errors:
raise ExtractorError('YouTube said: %s' % errors[-1][1], expected=expected)
@@ -2214,10 +2210,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
qs = parse_qs(url)
if qs.get('list', [None])[0]:
return False
- return super(YoutubeIE, cls).suitable(url)
+ return super().suitable(url)
def __init__(self, *args, **kwargs):
- super(YoutubeIE, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
self._code_cache = {}
self._player_cache = {}
@@ -2413,8 +2409,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
player_id = self._extract_player_info(player_url)
# Read from filesystem cache
- func_id = 'js_%s_%s' % (
- player_id, self._signature_cache_id(example_sig))
+ func_id = f'js_{player_id}_{self._signature_cache_id(example_sig)}'
assert os.path.basename(func_id) == func_id
cache_spec = self._downloader.cache.load('youtube-sigfuncs', func_id)
@@ -2441,7 +2436,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
starts = '' if start == 0 else str(start)
ends = (':%d' % (end + step)) if end + step >= 0 else ':'
steps = '' if step == 1 else (':%d' % step)
- return 's[%s%s%s]' % (starts, ends, steps)
+ return f's[{starts}{ends}{steps}]'
step = None
# Quelch pyflakes warnings - start will be set when step is set
@@ -2603,7 +2598,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
# cpn generation algorithm is reverse engineered from base.js.
# In fact it works even with dummy cpn.
CPN_ALPHABET = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_'
- cpn = ''.join((CPN_ALPHABET[random.randint(0, 256) & 63] for _ in range(0, 16)))
+ cpn = ''.join(CPN_ALPHABET[random.randint(0, 256) & 63] for _ in range(0, 16))
qs.update({
'ver': ['2'],
@@ -2714,7 +2709,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
def _extract_yt_initial_variable(self, webpage, regex, video_id, name):
return self._parse_json(self._search_regex(
- (r'%s\s*%s' % (regex, self._YT_INITIAL_BOUNDARY_RE),
+ (fr'{regex}\s*{self._YT_INITIAL_BOUNDARY_RE}',
regex), webpage, name, default='{}'), video_id, fatal=False)
def _extract_comment(self, comment_renderer, parent=None):
@@ -2812,8 +2807,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
comment_entries_iter = self._comment_entries(
comment_replies_renderer, ytcfg, video_id,
parent=comment.get('id'), tracker=tracker)
- for reply_comment in itertools.islice(comment_entries_iter, min(max_replies_per_thread, max(0, max_replies - tracker['total_reply_comments']))):
- yield reply_comment
+ yield from itertools.islice(comment_entries_iter, min(
+ max_replies_per_thread, max(0, max_replies - tracker['total_reply_comments'])))
# Keeps track of counts across recursive calls
if not tracker:
@@ -2955,7 +2950,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
requested_clients = []
default = ['android', 'web']
allowed_clients = sorted(
- [client for client in INNERTUBE_CLIENTS.keys() if client[:1] != '_'],
+ (client for client in INNERTUBE_CLIENTS.keys() if client[:1] != '_'),
key=lambda client: INNERTUBE_CLIENTS[client]['priority'], reverse=True)
for client in self._configuration_arg('player_client'):
if client in allowed_clients:
@@ -3865,8 +3860,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor):
# TODO: add support for nested playlists so each shelf is processed
# as separate playlist
# TODO: this includes only first N items
- for entry in self._grid_entries(renderer):
- yield entry
+ yield from self._grid_entries(renderer)
renderer = content.get('horizontalListRenderer')
if renderer:
# TODO
@@ -3886,8 +3880,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor):
title = self._get_text(shelf_renderer, 'title')
yield self.url_result(shelf_url, video_title=title)
# Shelf may not contain shelf URL, fallback to extraction from content
- for entry in self._shelf_entries_from_content(shelf_renderer):
- yield entry
+ yield from self._shelf_entries_from_content(shelf_renderer)
def _playlist_entries(self, video_list_renderer):
for content in video_list_renderer['contents']:
@@ -3965,8 +3958,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor):
renderer = content.get('backstagePostThreadRenderer')
if not isinstance(renderer, dict):
continue
- for entry in self._post_thread_entries(renderer):
- yield entry
+ yield from self._post_thread_entries(renderer)
r''' # unused
def _rich_grid_entries(self, contents):
@@ -4036,8 +4028,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor):
parent_renderer = (
try_get(tab_content, lambda x: x['sectionListRenderer'], dict)
or try_get(tab_content, lambda x: x['richGridRenderer'], dict) or {})
- for entry in extract_entries(parent_renderer):
- yield entry
+ yield from extract_entries(parent_renderer)
continuation = continuation_list[0]
for page_num in itertools.count(1):
@@ -4046,7 +4037,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor):
headers = self.generate_api_headers(
ytcfg=ytcfg, account_syncid=account_syncid, visitor_data=visitor_data)
response = self._extract_response(
- item_id='%s page %s' % (item_id, page_num),
+ item_id=f'{item_id} page {page_num}',
query=continuation, headers=headers, ytcfg=ytcfg,
check_get_keys=('continuationContents', 'onResponseReceivedActions', 'onResponseReceivedEndpoints'))
@@ -4070,8 +4061,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor):
continue
continuation_renderer = value
continuation_list = [None]
- for entry in known_continuation_renderers[key](continuation_renderer):
- yield entry
+ yield from known_continuation_renderers[key](continuation_renderer)
continuation = continuation_list[0] or self._extract_continuation(continuation_renderer)
break
if continuation_renderer:
@@ -4097,8 +4087,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor):
continue
video_items_renderer = {known_renderers[key][1]: continuation_items}
continuation_list = [None]
- for entry in known_renderers[key][0](video_items_renderer):
- yield entry
+ yield from known_renderers[key][0](video_items_renderer)
continuation = continuation_list[0] or self._extract_continuation(video_items_renderer)
break
if video_items_renderer:
@@ -4470,7 +4459,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor):
('continuationContents', ),
)
display_id = f'query "{query}"'
- check_get_keys = tuple(set(keys[0] for keys in content_keys))
+ check_get_keys = tuple({keys[0] for keys in content_keys})
ytcfg = self._download_ytcfg(default_client, display_id) if not self.skip_webpage else {}
self._report_playlist_authcheck(ytcfg, fatal=False)
@@ -5180,8 +5169,7 @@ class YoutubeTabIE(YoutubeTabBaseInfoExtractor):
@classmethod
def suitable(cls, url):
- return False if YoutubeIE.suitable(url) else super(
- YoutubeTabIE, cls).suitable(url)
+ return False if YoutubeIE.suitable(url) else super().suitable(url)
_URL_RE = re.compile(rf'(?P<pre>{_VALID_URL})(?(not_channel)|(?P<tab>/\w+))?(?P<post>.*)$')
@@ -5228,7 +5216,7 @@ class YoutubeTabIE(YoutubeTabBaseInfoExtractor):
# Handle both video/playlist URLs
qs = parse_qs(url)
- video_id, playlist_id = [qs.get(key, [None])[0] for key in ('v', 'list')]
+ video_id, playlist_id = (qs.get(key, [None])[0] for key in ('v', 'list'))
if not video_id and mobj['not_channel'].startswith('watch'):
if not playlist_id:
@@ -5414,7 +5402,7 @@ class YoutubePlaylistIE(InfoExtractor):
qs = parse_qs(url)
if qs.get('v', [None])[0]:
return False
- return super(YoutubePlaylistIE, cls).suitable(url)
+ return super().suitable(url)
def _real_extract(self, url):
playlist_id = self._match_id(url)
@@ -5883,5 +5871,5 @@ class YoutubeTruncatedIDIE(InfoExtractor):
def _real_extract(self, url):
video_id = self._match_id(url)
raise ExtractorError(
- 'Incomplete YouTube ID %s. URL %s looks truncated.' % (video_id, url),
+ f'Incomplete YouTube ID {video_id}. URL {url} looks truncated.',
expected=True)
diff --git a/yt_dlp/extractor/zapiks.py b/yt_dlp/extractor/zapiks.py
index 161b011ab..a1546fd88 100644
--- a/yt_dlp/extractor/zapiks.py
+++ b/yt_dlp/extractor/zapiks.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/zattoo.py b/yt_dlp/extractor/zattoo.py
index 8614ca23d..16f827a7e 100644
--- a/yt_dlp/extractor/zattoo.py
+++ b/yt_dlp/extractor/zattoo.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from uuid import uuid4
diff --git a/yt_dlp/extractor/zdf.py b/yt_dlp/extractor/zdf.py
index 5f4d26622..a388ff562 100644
--- a/yt_dlp/extractor/zdf.py
+++ b/yt_dlp/extractor/zdf.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor
diff --git a/yt_dlp/extractor/zee5.py b/yt_dlp/extractor/zee5.py
index 9e411d83f..9ff36052e 100644
--- a/yt_dlp/extractor/zee5.py
+++ b/yt_dlp/extractor/zee5.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import json
from .common import InfoExtractor
@@ -96,14 +93,14 @@ class Zee5IE(InfoExtractor):
def _perform_login(self, username, password):
if len(username) == 10 and username.isdigit() and self._USER_TOKEN is None:
self.report_login()
- otp_request_json = self._download_json('https://b2bapi.zee5.com/device/sendotp_v1.php?phoneno=91{}'.format(username),
+ otp_request_json = self._download_json(f'https://b2bapi.zee5.com/device/sendotp_v1.php?phoneno=91{username}',
None, note='Sending OTP')
if otp_request_json['code'] == 0:
self.to_screen(otp_request_json['message'])
else:
raise ExtractorError(otp_request_json['message'], expected=True)
otp_code = self._get_tfa_info('OTP')
- otp_verify_json = self._download_json('https://b2bapi.zee5.com/device/verifyotp_v1.php?phoneno=91{}&otp={}&guest_token={}&platform=web'.format(username, otp_code, self._DEVICE_ID),
+ otp_verify_json = self._download_json(f'https://b2bapi.zee5.com/device/verifyotp_v1.php?phoneno=91{username}&otp={otp_code}&guest_token={self._DEVICE_ID}&platform=web',
None, note='Verifying OTP', fatal=False)
if not otp_verify_json:
raise ExtractorError('Unable to verify OTP.', expected=True)
@@ -227,13 +224,13 @@ class Zee5SeriesIE(InfoExtractor):
'X-Access-Token': access_token_request['token'],
'Referer': 'https://www.zee5.com/',
}
- show_url = 'https://gwapi.zee5.com/content/tvshow/{}?translation=en&country=IN'.format(show_id)
+ show_url = f'https://gwapi.zee5.com/content/tvshow/{show_id}?translation=en&country=IN'
page_num = 0
show_json = self._download_json(show_url, video_id=show_id, headers=headers)
for season in show_json.get('seasons') or []:
season_id = try_get(season, lambda x: x['id'], compat_str)
- next_url = 'https://gwapi.zee5.com/content/tvshow/?season_id={}&type=episode&translation=en&country=IN&on_air=false&asset_subtype=tvshow&page=1&limit=100'.format(season_id)
+ next_url = f'https://gwapi.zee5.com/content/tvshow/?season_id={season_id}&type=episode&translation=en&country=IN&on_air=false&asset_subtype=tvshow&page=1&limit=100'
while next_url:
page_num += 1
episodes_json = self._download_json(
diff --git a/yt_dlp/extractor/zhihu.py b/yt_dlp/extractor/zhihu.py
index 278a9438e..70eb3ccd1 100644
--- a/yt_dlp/extractor/zhihu.py
+++ b/yt_dlp/extractor/zhihu.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
from .common import InfoExtractor
from ..utils import format_field, float_or_none, int_or_none
diff --git a/yt_dlp/extractor/zingmp3.py b/yt_dlp/extractor/zingmp3.py
index 419bf30d8..42a8ac056 100644
--- a/yt_dlp/extractor/zingmp3.py
+++ b/yt_dlp/extractor/zingmp3.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import hashlib
import hmac
import urllib.parse
diff --git a/yt_dlp/extractor/zoom.py b/yt_dlp/extractor/zoom.py
index c00548839..a455f8c04 100644
--- a/yt_dlp/extractor/zoom.py
+++ b/yt_dlp/extractor/zoom.py
@@ -1,7 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
diff --git a/yt_dlp/extractor/zype.py b/yt_dlp/extractor/zype.py
index 7663cb36b..6f2fbb9e9 100644
--- a/yt_dlp/extractor/zype.py
+++ b/yt_dlp/extractor/zype.py
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
import re
from .common import InfoExtractor