顯示具有 youtube 標籤的文章。 顯示所有文章
顯示具有 youtube 標籤的文章。 顯示所有文章

2021年12月3日 星期五

[Ubuntu] 使用 yt-dlp 取代 youtube-dl 下載 youtube 上的音樂/影片

瀏覽數
系統: Ubuntu 20.04.x64 or Android手機上的Termux

最近使用 youtube-dl 指令下載 youtube 的影音,下載速度真的可以用「龜速」來形容。上網爬文了一下,有一個 youtube-dl 分支程式 yt-dlp,指令使用的方式幾乎一樣,但是下載速度超快的,所以改用 yt-dlp 來 [下載 | 搭配 mpv 即時觀看] youtube上的影音。

安裝方式如下:

1. 安裝

由於使用 python 的 pip 的方式安裝,可以先參考這篇 https://tinyurl.com/2s427cnk 如何安裝 youtube-dl。

升級 python3.8 +pip3:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
sudo update-alternatives --config python
替代項目 python(提供 /usr/bin/python)有 3 個選擇。
  選項       路徑              優先權  狀態
------------------------------------------------------------
  0            /usr/bin/python3.8   3         自動模式
  1            /usr/bin/python2.7   1         手動模式
  2            /usr/bin/python3.7   2         手動模式
* 3            /usr/bin/python3.8   3         手動模式
按下 <enter> 鍵以保留目前選項[*],或是輸入選擇編號:
輸入想要的python版本選項編號: 3


檢查python版本:
python -V
安裝pip3:
sudo apt install python3-pip
檢查pip3版本:
pip3 -V

使用 pip3 安裝更新 pip 及 yt-dlp:
sudo -H pip3 install -U pip yt-dlp

安裝 mp3gain (可以將音量標準化的一個軟體):
sudo apt update && sudo apt install snapd && sudo snap install mp3gain

安裝 mpv 影音播放軟體:
sudo apt install mpv


2. 自訂函數

you2mp3()  #下載 youtube 轉成 mp3
you2mp4()  #下載 youtube 轉成 mp4
youtv()  #直接使用 yt-dlp + mpv 線上聽音樂或觀看影片

編輯 .bashrc 將you2mp3() you2mp4() youtv() 3個自訂函數貼到 .bashrc 檔案的最下方並存檔
vi ~/.bashrc

you2mp3() {
  #如果是下載整個播放清單,網址須符合右方的格式 => https://www.youtube.com/playlist?list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy
  #youtube-dl -cit --extract-audio --audio-format mp3 $1
  yt-dlp -ci --extract-audio --audio-format mp3 $1
  if [ $2 ] ; then
      find $(pwd) -type f -iname \*.mp3 |
      while read f ;do echo '處理中………"$f"'
        mp3gain -p -a -r -k -d 6 "$f"
        #mid3iconv -e gbk --remove-v1 "$f" &>/dev/null
      done
  fi
  echo "$1" | grep -i "?v=" > /dev/null && f=$(echo "$1" | sed -e "s/^.*\?v=\(.*$\)/\1/") || f=$(echo "$1" | sed -e "s/^.*[a-z]\/\(.*$\)/\1/")
  if [ "$f" != "" ] ; then
    f1=$(find ./ -name "*$f*.mp3")
    echo "mp3gain音量處理 $f1"
    mp3gain -p -a -r -k -d 6 "$f1"
  fi
}
you2mp4() {
  如果是下載整個播放清單,網址須符合右方的格式 => https://www.youtube.com/playlist?list=PLo4HKDlY6L_nWnTF8EYBC0EeykU0LNYis
  #youtube-dl "$1" -ci -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4
  yt-dlp "$1" -ci -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4
}
youtv() {
  [ $# == 0 ] && echo "請輸入Youtube影片網址URL" && return
  mxy="--autofit=350 --ontop --geometry=100%:97%"
  msync="--autosync=1 --mc=1"
  mm="mpv $mxy $msync --cache=yes --loop=0"
  tv="$mm --no-border"
  #mp3="$mm --no-video --shuffle"
  mp3="mpv --cache=yes --no-video --shuffle"

  url=$1
  border=$2
  if [ "$border" == "" ] ; then
    read -p "只播放音樂(請輸入mp3):" border
  fi
  case $border in
    "mp3") $mp3 $url ;;
    *) yt-dlp -q --no-check-certificate --prefer-ffmpeg -o- $url | $tv - ;;
  esac
}


重新載入 ~/.bashrc
source ~/.bashrc


3. 使用

下載youtube影音儲存為mp3音樂檔(並標準化音量95db)
you2mp3 https://www.youtube.com/watch?v=xxxxx

下載youtube影音儲存為mp4影音檔
you2mp4 https://www.youtube.com/watch?v=xxxxx

觀看公視直播
youtv https://www.youtube.com/watch?v=JAzRXylm3M0

2019年1月25日 星期五

[Firefox] 安裝延伸套件 [send to MPV player]

瀏覽數
作業系統為 Ubuntu 16.04,Firefox 瀏覽器有個非常好用的延伸套件
[send to MPV player]https://addons.mozilla.org/zh-TW/firefox/addon/send-to-mpv-player/

安裝延伸套件完後,開啟 Youtube 網站,在想要觀看的影片中按滑鼠右鍵,選取選單中的 [send to MPV player],第一次會導引到一個網頁上,需要下載安裝檔,下載 linux.zip 解壓縮後,指令模式切換到解壓縮後的目錄下,直接執行:
./install.sh

安裝完成後一樣開啟 Youtube 網站,在想要觀看的影片中按滑鼠右鍵,選取選單中的 [send to MPV player],影片就會用 MPV player 播放 (所以須先安裝 MPV player,安裝MPV player 可參考 https://goo.gl/1KrAdE) ,使用上非常方便。

第二個好處是, MPV player 支援GPU硬解,播放影片時,可減少CPU的耗用。

2019年1月11日 星期五

[Ubuntu] 觀看youtube影片的好幫手,youtube-dl + mpv播放器

瀏覽數
在Ubuntu上使用瀏覽器看Youtube的影片,其實蠻耗CPU的。Ubuntu在12.04以前的版本播放影片使用mplayer+vaapi(GPU硬解),CPU資源耗用非常小,播放體驗很棒!但後來Ubuntu的版本,mplayer 已經不支援 vaapi了。

但沒關係後來有 mpv 播放器,它實際上是從 mplayer 分支出來的,而且支援 VDPAU, VAAPI, DXVA2, VDA (GPU硬解)。

以Ubuntu 16.04 x86_64 作業系統為例:

1.安裝 mpv播放器:
sudo add-apt-repository ppa:mc3man/mpv-tests
sudo apt-get update && sudo apt-get install mpv

2.安裝vaapi及drm庫:
sudo apt-get install libdrm-intel1 libva1 vainfo

3.安裝 GPU 硬解驅動程式:
#Intel driver
sudo apt-get install i965-va-driver
#nvidia driver
sudo apt-get install libvdpau-va-gl1


4.檢查驅動:
vainfo

5.編輯mpv設定檔:
vi ~/.config/mpv/mpv.conf
我是用Intel CPU內建顯卡,底下是我的設定檔提供參考
=================================
#使用intel 顯卡硬解 ------
vo=vaapi
hwdec=vaapi
#--------------------------
#使用nvidia 顯卡硬解----------
#vo=vdpau
#hwdec=vdpau
#-------------------------------
#最上層顯示---
ontop
#--------------
#不顯示視窗外框---
no-border
#-------------------
#lang=zh,chi
#預設字幕語系--------------------------------------
sub-codepage=utf8:cp950:gb2312:gb18030:enus
#----------------------------------------------------
#sub-scale=3
#播放時停用螢幕保護---
stop-screensaver=yes
#-----------------------
###########################
#volume=70
#af=volume=volumedb=10
#af=volume=10.1
###########################
#預設聲音大小---
volume=100
#----------------
#聲音可加大3倍----
volume-max=300
--------------------
#autofit=300
###########################
#預設播放器大小----------
autofit-larger=60%x60%
#--------------------------
#預設播放位置-螢幕正中央-----
geometry=50%:50%
#-------------------------------
#[extension.mjpg]
#demuxer-lavf-probescore=25
#vf-del=vdpaupp
#預設快取-----
#cache=8192
#mpv git-2019-04-25-71ad1e2 以後版本改成 auto/yes/no
cache=auto
#--------------
=================================

6.試試播放本機的影片:
mpv /mp4/myvideo.mp4
按 q 鍵可結束播放
按 f 鍵可全螢幕切換
按 9 鍵聲音小,按 0 鍵聲音大
按 ↑ 鍵前進60秒,按 ↓ 鍵後退60秒
按 → 鍵前進10秒,按 ← 鍵後退10秒

7.安裝 youtube-dl:
可參考: https://goo.gl/c7W3be

8.使用 mpv 直接播放 youtube 影片:
a.直接播放:
mpv https://www.youtube.com/watch?v=X0vK_57vQ7s 
b.使用一些參數播放:
mpv --autofit=350 --ontop --geometry=100%:97% --autosync=1 --mc=1 --cache=8192 --loop=0 --no-border https://www.youtube.com/watch?v=X0vK_57vQ7s

9. youtube-dl + mpv 播放:
youtube-dl -q --no-check-certificate --prefer-ffmpeg -o- https://www.youtube.com/watch?v=X0vK_57vQ7s | mpv --autofit=350 --ontop --geometry=100%:97% --autosync=1 --mc=1 --cache=8192 --loop=0 --no-border -

10.
可將上述指令寫成函數:
將底下的函數程式碼加入 ~/.bashrc
vi ~/.bashrc
在檔案底部加入以下程式碼:

youtv() {
  [ $# == 0 ] && echo "請輸入Youtube影片網址URL" && return
  mxy="--autofit=350 --ontop --geometry=100%:97%"
  msync="--autosync=1 --mc=1"
  mm="mpv $mxy $msync --cache=auto --loop=0"
  tv="$mm --no-border"
  mp3="$mm --no-video --shuffle"
  url=$1
  border=$2
  if [ "$border" == "" ] ; then
    read -p "只播放音樂(請輸入mp3):" border
  fi
  case $border in
    "mp3") $mp3 $url ;;
    *) youtube-dl -q --no-check-certificate --prefer-ffmpeg -o- $url | $tv - ;;
  esac


存檔後,Ctrl+d 關閉 terminal。
再重新開啟 terminal,然後執行youtv "youtu影片網址" 即可,如執行:
youtv https://www.youtube.com/watch?v=X0vK_57vQ7s
若是音樂影片只想聽音樂就輸入mp3,然後按[Enter],就可以聽音樂。
直接按[Enter],即可播放影片。如下圖:


這樣可以一邊工作,有空時欣賞一下水族箱 ,而且CPU耗用很小。

2018年1月5日 星期五

[Ubuntu] 將電腦螢幕變成 dlna render(終端播放)

瀏覽數
環境 Ubuntu 16.04 x64 + Android 6.0 手機

1.安裝 dlna render
sudo apt install gmediarender

2.啟用服務
gmediarender -f "ubuntu" --logfile=/dev/stdout --ip-address=192.168.1.70
or
gmediarender -f "ubuntu" --logfile=/tmp/gmediarender.log --ip-address=192.168.1.70
or
gmediarender -f "ubuntu" --logfile=/dev/stdout --ip-address=$(ifconfig | head -n9 | awk '/inet addr/{print substr($2,6)}')

參數說明:
-f 後面的 "ubuntu" 可自行輸入,表示此播放設備的名稱
--ip-address=請輸入電腦的IP 

3.手機開啟wifi,必須與電腦在同一個區域網路內

4.Android手機安裝tubio的APP
https://play.google.com/store/apps/details?id=com.aesoftware.tubio

5.開啟tubio,選取youtube
點選畫面下方的圖示

選取 ubuntu 播放設備

6.再選取想要觀看的youtube影片,即可將影片投放在電腦螢幕上觀賞。

2015年11月27日 星期五

[Ubuntu] 使用 youtube-dl 指令下載 youtube 上的音樂/影片

瀏覽數
來源: http://blogger.gtwang.org/2014/02/youtube-dl.html

youtube-dl 是一個以 Python 所寫成的小工具,適用於各種作業系統,常見的 Windows、Linux 與 Mac OS X 等都可以使用,其原始程式碼亦可從 GitHub 上下載。

1.安裝:

在 Ubuntu Linux 中,可以使用 apt 來安裝 youtube-dl:
sudo apt-get install youtube-dl

雖然使用 apt 安裝很方便,但是由於 YouTube 這類的影音網站更新的速度很快,如果安裝的 youtube-dl 版本不是最新的,就有可能無法使用,這種狀況在使用官方的套件庫時會比較容易出現,如果要避免這樣的困擾,可使用 pip 來安裝:
sudo apt-get install python python-pip
sudo pip install --upgrade youtube-dl

2.下載單一影片:

複製單一影片網址,例如: https://www.youtube.com/watch?v=O84CCjrcmR8

單一影片下載儲存為 mp4
youtube-dl https://www.youtube.com/watch?v=O84CCjrcmR8

單一影片下載儲存為 mp3
youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=O84CCjrcmR8

3.下載播放清單內所有的影片:

複製播放清單網址,例如: https://www.youtube.com/watch?v=O84CCjrcmR8&list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy
將播放清單網址改成: https://www.youtube.com/playlist?list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy

播放清單下載儲存為 mp4
youtube-dl -cit https://www.youtube.com/playlist?list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy

播放清單下載儲存為 mp3
youtube-dl -cit --extract-audio --audio-format mp3 https://www.youtube.com/playlist?list=PLf4gvJzKEA1IB_qHaFz4uaIy2Yq6jqFKy

4.直接使用 mplayer 看 youtube 的影片:

將 youtube-dl 下載的資料流,利用管線導入 mplayer,不需下載就可以直接播放。
echo "youm() {youtube-dl -q -o- \$1 | mplayer -cache 8192 -}" >> ~/.bashrc
source ~/.bashrc
youm https://www.youtube.com/watch?v=O84CCjrcmR8