python库学习之you-get

    技术2025-04-26  35

    作为b站的粉丝,在逛的时候,收藏过很多制作精良、满满都是干货的视频,然鹅,一段时间过去,这些视频可能会下架,因此,如何能把这些视频及时保存下来,就成了一大心事,直到遇到了you-get!!!😘

    话不多说,开始我们的you-get之旅吧! for more details:https://github.com/soimort/you-get

    目录

    一、安装二、使用1.查看画质2.暂停并恢复下载3.指定下载输出的目录4.指定下载的视频的文件名5.命令解释6.支持的网站 三、安装中出现的一些问题问题1:pip执行过程中爆红,出现read time out问题2:you-get不是内部或外部命令,也不是可运行的程序或批处理文件。问题3:下载b站视频时,seid不是内部或外部命令,也不是可运行的程序或批处理文件。 参考文档

    一、安装

    安装的过程很简单,直接在命令行中输入

    pip install you-get //或者是 pip3 install you-get

    然后会出现如下的过程,出现successful就是成功的标志。 在命令行输入you-get,会展示出可用的命令和含义

    二、使用

    以b站视频为例,研究视频下载的过程

    1.查看画质

    输入命令 you-get -i https://www.bilibili.com/video/BV1Dz411v7qE

    标有DEFAULT 为默认画质。

    标有DASH 指的是质量最高的视频(音频/图像) 命令参考:

    //指定一个版本下载 you-get --format=dash-flv https://www.bilibili.com/video/BV1Dz411v7qE //什么都不加,就是默认 you-get https://www.bilibili.com/video/BV1Dz411v7qE

    2.暂停并恢复下载

    可以使用 + 来中断下载。Ctrl+C

    临时文件保存在输出目录中。下次使用相同的参数运行时,下载进度将从上一个会话恢复。如果文件完全下载(临时扩展名已消失),将跳过下载。

    如果不指定 目录,you-get会把文件下载到

    C:/Users/xxxx(系统用户名)/下

    3.指定下载输出的目录

    可以使用-o DIR 或者--output-dir DIR命令,这里是小写的字母o

    如:

    you-get -o E:/test4 https://www.bilibili.com/video/BV1Dz411v7qE

    4.指定下载的视频的文件名

    可以使用或者 -O FILE 或者 --output-filename FILE命令,这里是大写的字母O,不是数字0

    文件名不需要跟后缀。

    you-get -o E:/test4 -O test https://www.bilibili.com/video/BV1Dz411v7qE

    5.命令解释

    C:\Users\60913>you-get usage: you-get [OPTION]... URL... //方括号表示这一项是可选项 //这里提示了使用方法, you-get [具体配置,可看下面的命令] 下载链接 可选参数 命令英文说明中文含义-V, --versionPrint version and exit打印出you-get的版本号,并退出you-get-h, --helpPrint this help message and exit打印出提示信息,并退出you-get 空运行,预检选项(意思就是不会真的开始下载) 命令英文说明中文含义-i, --infoPrint extracted information打印待下载内容的相关信息-u, --urlPrint extracted information with URLs打印出url的更多信息–jsonPrint extracted URLs in JSON format以json格式打印出待下载的url的详细信息 下载选项 命令英文说明中文含义-n, --no-mergeDo not merge video parts不合并视频–no-captionDo not download captions (subtitles, lyrics, danmak…)不加字慕等-f, --forceForce overwriting existing files覆盖原先下载的文件–skip-existing-file-size-checkSkip existing file without checking file size跳过现有文件而不检查文件大小-F STREAM_ID, --format STREAM_IDSet video format to STREAM_ID把视频格式设置为流id-O FILE, --output-filename FILESet output filename设置输出文件的名称-o DIR, --output-dir DIRSet output directory设置输出文件夹,即存放在哪一个文件夹下-p PLAYER, --player PLAYERStream extracted URL to a PLAYER使用 --player/-p 将视频喂进播放器, 例如 mplayer 或者 vlc,而不是下载: 把流提取的url放到播放器-c COOKIES_FILE, --cookies COOKIES_FILELoad cookies.txt or cookies.sqlite并非所有视频可供任何人观看。如果需要登录以观看 (例如, 私密视频), 可能必须将浏览器cookie通过–cookies/-c 加载入 you-get.注意:目前支持两种cookie格式:Mozilla cookies.sqlite 和 Netscape cookies.txt.-t SECONDS, --timeout SECONDSSet socket timeout设置套接字超时-d, --debugShow traceback and other debug info显示回溯和其他debug信息-I FILE, --input-file FILERead non-playlist URLs from FILE从文件里读取非播放列表的url-P PASSWORD, --password PASSWORDSet video visit password to PASSWORD设置视频访问密码-l, --playlistPrefer to download a playlist批量下载-a, --auto-renameAuto rename same name different files自动重命名相同文件名的文件-k, --insecureignore ssl errors忽略ssl报错 代理选项 命令英文说明中文含义-x HOST:PORT, --http-proxy HOST:PORTUse an HTTP proxy for downloading使用http代理来下载,这里的写法是-x ip地址:端口号或者是写成–http-proxy IP地址:端口号–no-proxyNever use a proxy不使用代理-y HOST:PORT, --extractor-proxy HOST:PORTUse an HTTP proxy for extracting only使用HTTP代理仅用于提取-s HOST:PORT, --socks-proxy HOST:PORTUse an SOCKS5 proxy for downloading使用SOCKS5代理下载

    6.支持的网站

    网址链接视频?图片?音频?YouTubehttps://www.youtube.com/✓Twitterhttps://twitter.com/✓✓VKhttp://vk.com/✓✓Vinehttps://vine.co/✓Vimeohttps://vimeo.com/✓Veohhttp://www.veoh.com/✓Tumblrhttps://www.tumblr.com/✓✓✓TEDhttp://www.ted.com/✓SoundCloudhttps://soundcloud.com/✓SHOWROOMhttps://www.showroom-live.com/✓Pinteresthttps://www.pinterest.com/✓MTV81http://www.mtv81.com/✓Mixcloudhttps://www.mixcloud.com/✓Metacafehttp://www.metacafe.com/✓Magistohttp://www.magisto.com/✓Khan Academyhttps://www.khanacademy.org/✓Internet Archivehttps://archive.org/✓Instagramhttps://instagram.com/✓✓InfoQhttp://www.infoq.com/presentations/✓Imgurhttp://imgur.com/✓Heavy Music Archivehttp://www.heavy-music.ru/✓Freesoundhttp://www.freesound.org/✓Flickrhttps://www.flickr.com/✓✓FC2 Videohttp://video.fc2.com/✓Facebookhttps://www.facebook.com/✓eHowhttp://www.ehow.com/✓Dailymotionhttp://www.dailymotion.com/✓Coubhttp://coub.com/✓CBShttp://www.cbs.com/✓Bandcamphttp://bandcamp.com/✓AliveThaihttp://alive.in.th/✓interest.mehttp://ch.interest.me/tvn✓755ナナゴーゴーhttp://7gogo.jp/✓✓niconicoニコニコ動画http://www.nicovideo.jp/✓163网易视频网易云音乐http://v.163.com/ http://music.163.com/✓✓56网http://www.56.com/✓AcFunhttp://www.acfun.cn/✓Baidu百度贴吧http://tieba.baidu.com/✓✓爆米花网http://www.baomihua.com/✓bilibili哔哩哔哩http://www.bilibili.com/✓✓✓豆瓣http://www.douban.com/✓✓斗鱼http://www.douyutv.com/✓凤凰视频http://v.ifeng.com/✓风行网http://www.fun.tv/✓iQIYI爱奇艺http://www.iqiyi.com/✓激动网http://www.joy.cn/✓酷6网http://www.ku6.com/✓酷狗音乐http://www.kugou.com/✓酷我音乐http://www.kuwo.cn/✓乐视网http://www.le.com/✓荔枝FMhttp://www.lizhi.fm/✓秒拍http://www.miaopai.com/✓MioMio弹幕网http://www.miomio.tv/✓MissEvan猫耳FMhttp://www.missevan.com/✓痞客邦https://www.pixnet.net/✓PPTV聚力http://www.pptv.com/✓齐鲁网http://v.iqilu.com/✓QQ腾讯视频http://v.qq.com/✓企鹅直播http://live.qq.com/✓Sina新浪视频微博秒拍视频http://video.sina.com.cn/ http://video.weibo.com/✓Sohu搜狐视频http://tv.sohu.com/✓Tudou土豆http://www.tudou.com/✓虾米http://www.xiami.com/✓✓阳光卫视http://www.isuntv.com/✓音悦Taihttp://www.yinyuetai.com/✓Youku优酷http://www.youku.com/✓战旗TVhttp://www.zhanqi.tv/lives✓央视网http://www.cntv.cn/✓Naver네이버http://tvcast.naver.com/✓芒果TVhttp://www.mgtv.com/✓火猫TVhttp://www.huomao.com/✓阳光宽频网http://www.365yg.com/✓西瓜视频https://www.ixigua.com/✓新片场https://www.xinpianchang.com//✓快手https://www.kuaishou.com/✓✓抖音https://www.douyin.com/✓TikTokhttps://www.tiktok.com/✓中国体育(TV)http://v.zhibo.tv/ http://video.zhibo.tv/✓知乎https://www.zhihu.com/✓

    三、安装中出现的一些问题

    问题1:pip执行过程中爆红,出现read time out

    首先检查是否是自己的网络不稳定或者网速太慢。

    这个时候可以考虑使用国内镜像源进行加速度。

    https://pypi.tuna.tsinghua.edu.cn/simple #清华 http://mirrors.aliyun.com/pypi/simple/ #阿里云 https://pypi.mirrors.ustc.edu.cn/simple/ #中国科技大学 http://pypi.hustunique.com/ #华中理工大学 http://pypi.sdutlinux.org/ #山东理工大学 http://pypi.douban.com/simple/ #豆瓣

    临时指定镜像的方法是,在pip命令后,加一个 -i ,然后跟上上面的镜像地址 永久改变镜像的方法是,修改pip的配置文件。

    对于windows用户,可以按照如下操作:

    直接在user目录中创建一个pip目录,如:C:\Users\xx\pip 新建文件 pip.ini 内容 [global] index-url = http://pypi.douban.com/simple trusted-host = pypi.douban.com disable-pip-version-check = true timeout = 120 或者 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn disable-pip-version-check = true timeout = 120

    其中,index-url 源,可以换成其他的源 trusted-host 添加源为可信主机,要不然可能报错

    disable-pip-version-check 设置为true取消pip版本检查,排除每次都报最新的pip

    timeout 超时设置。

    对于linux用户,可以按照如下操作:

    修改 ~/.pip/pip.conf (没有就自己创建), 增加或者修改 index-url 至源 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn disable-pip-version-check = true 豆瓣源使用 mkdir -p ~/.pip echo -e '[global]\ntrusted-host = pypi.douban.com\nindex-url = http://pypi.douban.com/simple' > ~/.pip/pip.conf

    问题2:you-get不是内部或外部命令,也不是可运行的程序或批处理文件。

    这是由于环境变量没有配置成功,可以用pip uninstall you-get卸载掉,然后重新安装

    问题3:下载b站视频时,seid不是内部或外部命令,也不是可运行的程序或批处理文件。

    可以把命令改为:&seid= 变为 %3D

    //原本是这样 https://www.bilibili.com/video/BV1xE411j78R?from=search&seid=12492812551117772852 //把seid改为 https://www.bilibili.com/video/BV1xE411j78R?from=search%3D12492812551117772852

    参考文档

    python国内镜像加速you-get中文说明
    Processed: 0.015, SQL: 9