Ubuntu 18.04 安装youtube-dl 与 FFMPEG心得!

     Youtube-dl是一款不错的Youtube视频下载工具与FFMPEG配合可以在主机上很轻松的下载Youtube上的任意可视视频。

     关于Youtube-dl的教程网上多的很。基本上都只说明了安装步骤。却没有说明使用是报错问题的解决与修正。

  这次本文连同安装与错误解决方案一同说明。

  1、Youtube-dl基本支持三种系统。Centos 、Ubuntu、Windows。个人感觉Ubuntu 安装时比较容易看懂。使用是在压制视频时比其他两个系统都要显得略好一些。

  2、本文就用Ubuntu 18.04 为例。从安装到使用及报错等解决方法。【虽然步骤比较多,也比较繁琐,但是用起来你就会发现它比其他两个系统的程序要好的多。】

    1、在安装Youtube-dl前必须先安装FFMPEG。

    安装 FFMPEG。有两种方法,个人比较推荐第一种,虽然繁琐但是使用可靠。

    第一种方法安装FFMPEG。

    

1 sudo apt-get update -y # 更新apt-get程序。
 
2 sudo apt-get install yasm #安装yasm。

3 sudo apt-get install libsdl1.2-dev --fix-missing # 安装libsdl1.2-dev。

    下一步安装SDL程序。【这里要说一下程序时常更新换代,下载的连接自己去官网查阅。】

    前往 SDL的官网 http://www.libsdl.org 在里面找到Download目录栏,复制最新版本的SDL(这里我用SDL version 2.0.10为例。

 1 sudo apt-get wget -y # 安装下载工具若系统中已有可以忽略次行。
 2 
 3 mkdir /home/ffmpeg # 在/home目录下新建一个ffmpeg目录。可以不建只是看上去比较美观干净。
 4 
 5 cd /home/ffmpeg # 进入ffmpeg目录。
 6 
 7 wget http://www.libsdl.org/release/SDL2-2.0.10.tar.gz # 下载SDL程序。
 8 
 9 tar -xvf SDL2-2.0.10.tar.gz # 解压安装包。
10 
11 cd SDL2-2.0.10 # SDL程序目录。
12 
13 ./configure # 执行程序
14 
15 make && make install #安装解析程序文件。
16 
17 cd /home/ffmpeg # 返回上级目录。

    然后同理下载安装 FFMPEG 程序 【这里要一样程序时常更新换代,下载的连接自己去官网查阅。】

    前往  FFMPEG 的官网 https://www.ffmpeg.org/download.html 在里面找到最新版本的FFMPEG(这里我用 FFMPEG-4.2.1.tar.bz2 为例。)

    在/home/ffmpeg目录中执行以下代码。

 1 wget https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 # 下载 ffmpeg程序。
 2 
 3 tar -xvf ffmpeg-4.2.1.tar.bz2 # 解压 ffmpeg程序。
 4 
 5 cd ffmpeg-4.2.1 # 进入 ffmpeg目录。
 6 
 7 ./configure # 执行程序。
 8 
 9 make && make install # 安装解析程序文件。
10 
11 ffmpeg -version # 检查ffmpeg版本。

    弄好了上面的一切,下面就可以安装Youtube-dl了。

  前往  Youtube-dl 的官网 https://yt-dl.org 当然你也可以自己手动下载。

1 curl -L https://yt-dl.org/latest/youtube-dl -o /usr/bin/youtube-dl #下载与安装Youtube-dl。
2 
3 sudo chmod 755 /usr/bin/youtube-dl # 给程序文件赋予权限。

   到这里安装的部分就结束了,但是你用youtube-dl 命令是一定会以下错误代码。

# /usr/bin/env: ‘python’: No such file or directory

  具体原因可能是程序开发者在编译时编译器不匹配。Centos就不会有这个问题。国内的很多网站只告诉了你原因,却没有解决方法,我也是在国外的一个论坛上查阅到。修正方法。

  

1 sudo apt remove youtube-dl # 解除 Youtube-dl与系统的关联。
2 
3 sudo apt install python3-pip -y # 安装 python3-pip 这里不知道为什么,明明系统中有却还要在装一遍。不然就不行。
4 
5 pip3 install --user youtube-dl # 在pip中重新安装挂载youtube-dl。
6 
7 sudo ln -s /usr/bin/python3 /usr/local/bin/python # 进行系统python的关联。

   弄到这里基本上Youtube-dl就能正常使用了。这里我们用一个视频作为例子。

    【考虑到视频著作权问题视频文件后缀以XXXXXX代替。】

【注意你可以用这个视频用来测试。但前提是你的主机能登陆Youtube这是重点。出不去,无法访问其他一些都是白搭。】

   首先建议单独为Youtube建立一个目录(个人习惯不弄也是可以的。)

1 youtube-dl -F https://www.youtube.com/watch?v=XXXXXX # (直接复制视频网页连接即可,单一视频连接,不建议,批量下载视频集。)把视频目录展开。

  目录如下显示:

[youtube] XXXXXX: Downloading webpage
[youtube] XXXXXX: Downloading video info webpage
[info] Available formats for XXXXXX:
format code  extension  resolution note
249          webm       audio only tiny   53k , opus @ 50k (48000Hz), 1.55MiB
250          webm       audio only tiny   68k , opus @ 70k (48000Hz), 1.96MiB
251          webm       audio only tiny  129k , opus @160k (48000Hz), 3.59MiB
140          m4a        audio only tiny  130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 4.36MiB
394          mp4        256x144    144p   90k , av01.0.00M.08, 30fps, video only, 2.59MiB
278          webm       256x144    144p   97k , webm container, vp9, 30fps, video only, 2.98MiB
160          mp4        256x144    144p  122k , avc1.4d400c, 30fps, video only, 3.19MiB
395          mp4        426x240    240p  207k , av01.0.00M.08, 30fps, video only, 5.65MiB
242          webm       426x240    240p  224k , vp9, 30fps, video only, 6.62MiB
133          mp4        426x240    240p  324k , avc1.4d4015, 30fps, video only, 7.39MiB
396          mp4        640x360    360p  375k , av01.0.01M.08, 30fps, video only, 10.23MiB
243          webm       640x360    360p  411k , vp9, 30fps, video only, 12.14MiB
134          mp4        640x360    360p  678k , avc1.4d401e, 30fps, video only, 15.02MiB
397          mp4        854x480    480p  687k , av01.0.04M.08, 30fps, video only, 18.42MiB
244          webm       854x480    480p  761k , vp9, 30fps, video only, 22.03MiB
135          mp4        854x480    480p 1091k , avc1.4d401f, 30fps, video only, 24.36MiB
398          mp4        1280x720   720p60 1317k , av01.0.08M.08, 59fps, video only, 35.64MiB
247          webm       1280x720   720p 1521k , vp9, 30fps, video only, 44.27MiB
298          mp4        1280x720   720p60 1965k , avc1.4d4020, 60fps, video only, 45.06MiB
302          webm       1280x720   720p60 2670k , vp9, 60fps, video only, 76.57MiB
248          webm       1920x1080  1080p 2722k , vp9, 30fps, video only, 78.40MiB
136          mp4        1280x720   720p 3684k , avc1.4d401f, 30fps, video only, 77.54MiB
303          webm       1920x1080  1080p60 4452k , vp9, 60fps, video only, 128.69MiB
299          mp4        1920x1080  1080p60 5780k , avc1.64002a, 60fps, video only, 145.49MiB
137          mp4        1920x1080  1080p 6270k , avc1.640028, 30fps, video only, 132.16MiB
43           webm       640x360    360p , vp8.0, vorbis@128k, 27.20MiB
18           mp4        640x360    360p  672k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 22.64MiB
22           mp4        1280x720   720p 2432k , avc1.64001F, mp4a.40.2@192k (44100Hz) (best)

    这里展开后有媒体流与音频流分离的视频音频段,也有压缩整合好的现成的媒体格式下载这里要注意区分。有avc与video 组合呈现的就是可以不用FFMPEG编译下载就能看听的。【在这里不推荐,本人一直是下载高清组合媒体视频用FFMPEG直接编译后在下载。】操作如下。

youtube-dl -f 248+251 https://www.youtube.com/watch?v=XXXXXX

    这注意一下,组合编译一定是 视频序号在前加上音频序号在后原则。结果呈现如下。

[youtube] XXXXXX: Downloading webpage
[youtube] XXXXXX: Downloading video info webpage
[download] Destination: 标题-XXXXXX.f248.webm
[download] 100% of 78.40MiB in 00:11
[download] Destination: 标题-XXXXXX.f251.webm
[download] 100% of 3.59MiB in 00:00
[ffmpeg] Merging formats into "标题-XXXXXX.webm"
Deleting original file 标题-XXXXXX.webm (pass -k to keep)
Deleting original file 标题-XXXXXX.webm (pass -k to keep)

  这样视频连同下载加编译全部完成。ls 之后你就能看见视频文件了。主机上直接用播放器播放即可。如果是远段VPS回传下载即可。当时这个是webm的网页媒体流。

下面有个特殊情况。先测试上面是否能完全成功有无报错,若一切正常下面的不用做了。

python File "/usr/bin/pip", line 11, in <module> sys.exit(main()) File "/usr/lib/python3.4/site-packages/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/u

上面的问题是python与python-pip出问题了。(到目前为止只发现个别VPS主机的Ubuntu 18.04系统。出现过这个问题)解决方法如下。

 1 uname -a # 检查系统版本
 2    
 3 python --version # 检查python 版本与是否安装。
 4     
 5 pip --version # 检查python 版本与是否安装。(大部分都是pip没有安装。)
 6 
 7 suso  apt-get install python-pip -y # 安装 python-pip
 8 
 9 unset LC_ALL
10 
11 pip install virtualenv # 在pip 安装 virtualenv
12 
13 export LC_ALL=C  # 这里是重点   
14 
15  pip install virtualenv

 弄完以后Youtube-dl就能正常使用了。

  我也查阅了很多资料网页。以上的这个特殊故障是在Windows下的python才会出现。Ubuntu为什么也会出现不解。但部分Ubuntu的主机确实存在这个问题。

  若有人知道还请指教。!!!

 

猜你喜欢

转载自www.cnblogs.com/hannuo/p/11748124.html