New Ribbon
超人氣Instagram視覺行銷力:小編不哭,經營IG品牌人氣王的110個秘技! 我也要當 YouTuber!百萬粉絲網紅不能說的秘密 大字大圖解:快樂用Facebook+LINE 沒有投資理財基因!就用Excel省錢賺現金 網路開店×拍賣王:蝦皮來了! 用Photoshop玩影像設計比你想的簡單:快快樂樂學Photoshop CC(第二版) 翻倍效率工作術-不會就太可惜的Google超極限應用(第三版) 翻倍效率工作術:不會就太可惜的Excel 必學函數(第二版) 翻倍效率工作術–詢問度破表的Office職人技500+ iOS 11+iPhone 8 / 8Plus / X / iPad 完全活用術:225個超進化技巧攻略 翻倍效率工作術:不會就太可惜的Excel+Power BI 大數據視覺圖表設計與分析 會做簡報就會製作跨平台 App:Smart Apps Creator 3 超神開發術 快快樂樂學威力導演15 - 影片/MV剪輯活用情報特蒐 Excel 2016高效實用範例必修16課-善用資料圖表 x 函數巨集的精算達人 中老年人快樂學電腦(Windows 10+Office 2016) 中老年人快樂學Facebook+LINE 翻倍效率工作術:不會就太可惜的Excel必學圖表

 

  python初學特訓班的pytube套件問題

小賴

小賴
更新時間:2017/10/19 下午 11:30:45

 

請問使用pytube來下載youtube的影片方式是否改變了,因為要執行這本書第九章的pytube1.py和pytube2.py都會出現問題,會顯示:
----> 2 yt = YouTube()
TypeError

----> 4 video = yt.get("mp4", "360p")
AttributeError: 'YouTube' object has no attribute 'get'

請問這要如何解決?

文淵閣工作室

文淵閣工作室
更新時間:2017/10/20 上午 08:16:16

 

pytube 從 7.0.0 版開始語法大幅改變,可參考 pytube 官網:http://python-pytube.readthedocs.io/en/latest/user/quickstart.html#downloading-a-video
pytube1.py 程式碼改為:
from pytube import YouTube
yt = YouTube("https://www.youtube.com/watch?v=27ob2G3GUCQ")
stream = yt.streams.filter(file_extension='mp4', res='360p').first()
stream.download("d:\\tem")

文淵閣工作雄,

文淵閣工作雄,
更新時間:2017/10/20 上午 09:27:47

 

如果不想改書上程式碼,可安裝 7.0.0 以前版本的 pytube,方法:
pip uninstall pytube
pip install -v pytube==6.4.2
即可正常執行書上所有 pytube 程式。

翁


更新時間:2018/11/12 下午 02:03:56

 

老師您好,想請教...目前我已照您的程式碼打 但出現了些狀況無法排除 可以幫忙解惑嗎 謝謝。
---以下錯誤內容---
Traceback (most recent call last):
  File "C:\Users\shi\Desktop\python_start\youtube\GUIcenter.py", line 4, in <module>
    yt = YouTube("https://www.youtube.com/watch?v=k_7zyy8b_BY")
  File "C:\Python37-32\lib\site-packages\pytube\__main__.py", line 88, in __init__
    self.prefetch_init()
  File "C:\Python37-32\lib\site-packages\pytube\__main__.py", line 97, in prefetch_init
    self.init()
  File "C:\Python37-32\lib\site-packages\pytube\__main__.py", line 133, in init
    mixins.apply_signature(self.player_config_args, fmt, self.js)
  File "C:\Python37-32\lib\site-packages\pytube\mixins.py", line 49, in apply_signature
    signature = cipher.get_signature(js, stream['s'])
  File "C:\Python37-32\lib\site-packages\pytube\cipher.py", line 250, in get_signature
    tplan = get_transform_plan(js)
  File "C:\Python37-32\lib\site-packages\pytube\cipher.py", line 69, in get_transform_plan
    name = re.escape(get_initial_function_name(js))
  File "C:\Python37-32\lib\site-packages\pytube\cipher.py", line 45, in get_initial_function_name
    return regex_search(pattern, js, group=1)
  File "C:\Python37-32\lib\site-packages\pytube\helpers.py", line 41, in regex_search
    .format(pattern=p),
pytube.exceptions.RegexMatchError: regex pattern (yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*c\s*&&\s*d\.set\([^,]+\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\() had zero matches
[Finished in 4.4s]

LAI

LAI
更新時間:2018/11/12 下午 11:10:16

 

pytube 9.3.6 是我安裝的版本

我今天在使用的時候,有發生RE錯誤的問題

在官方網站上也有人提出此ISSUE

也有人提出解決辦法了

剛剛修改後是可以正常使用的

簡單來說就是修改pytube的某個檔案中的RE PATTERN 內容就可以了


附上連結:https://github.com/nficano/pytube/issues/312

Kevin

Kevin
更新時間:2018/12/24 下午 11:11:37

 

老師您好, 我試著把pytube安裝回6.4.2版, 但還是會出現不一樣的錯誤, 請問這是什麼原因呢?

  File "C:\Users\User\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "C:\Users\User\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/User/Desktop/PYTHON-初學特訓班 - 練習用/本書範例/ch09/pytube1.py", line 2, in <module>
    yt = YouTube()

  File "C:\Users\User\Anaconda3\lib\site-packages\pytube\__main__.py", line 70, in __init__
    print_available_vids(videos)

NameError: name 'extract' is not defined

文淵閣工作室

文淵閣工作室
更新時間:2018/12/25 上午 06:19:02

 

剛才執行程式,一切正常,甚至將檔案置於與您相同的路徑執行,也正常下載,沒有錯誤產生。

黃


更新時間:2019/6/19 上午 11:03:46

 

pytube 我是安裝9.5版的
執行後 會出現下面的錯誤訊息

KeyError                                  Traceback (most recent call last)
<ipython-input-5-521b0f352f06> in <module>
----> 1 yt = YouTube('https://www.youtube.com/watch?v=R0UBOYWEu28')

H:\Anaconda3\lib\site-packages\pytube\__main__.py in __init__(self, url, defer_prefetch_init, on_progress_callback, on_complete_callback, proxies)
     86
     87         if not defer_prefetch_init:
---> 88             self.prefetch_init()
     89
     90     def prefetch_init(self):

H:\Anaconda3\lib\site-packages\pytube\__main__.py in prefetch_init(self)
     95         """
     96         self.prefetch()
---> 97         self.init()
     98
     99     def init(self):

H:\Anaconda3\lib\site-packages\pytube\__main__.py in init(self)
    131
    132             try:
--> 133                 mixins.apply_signature(self.player_config_args, fmt, self.js)
    134             except TypeError:
    135                 self.js_url = extract.js_url(

H:\Anaconda3\lib\site-packages\pytube\mixins.py in apply_signature(config_args, fmt, js)
     47
     48         if js is not None:
---> 49             signature = cipher.get_signature(js, stream['s'])
     50         else:
     51             # signature not present in url (line 33), need js to descramble

KeyError: 's'

文淵閣工作室

文淵閣工作室
更新時間:2019/6/19 下午 08:56:14

 

您好
這是最近會出現的問題
請您參考
https://github.com/nficano/pytube/issues/402

黃


更新時間:2019/6/20 上午 08:44:31

 

您好 我修改之後 還是出現錯誤如下

Traceback (most recent call last):

  File "H:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3296, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)

  File "<ipython-input-2-1b7f01655236>", line 1, in <module>
    from pytube import YouTube

  File "H:\Anaconda3\lib\site-packages\pytube\__init__.py", line 18, in <module>
    from pytube.contrib.playlist import Playlist

  File "H:\Anaconda3\lib\site-packages\pytube\contrib\playlist.py", line 11, in <module>
    from pytube.__main__ import YouTube

  File "H:\Anaconda3\lib\site-packages\pytube\__main__.py", line 18, in <module>
    from pytube import mixins

  File "H:\Anaconda3\lib\site-packages\pytube\mixins.py", line 42
    if ('signature=' in url) or ('&sig=' in url) or ('&lsig=' in url):
                                                                      ^
TabError: inconsistent use of tabs and spaces in indentation

文淵閣工作室

文淵閣工作室
更新時間:2019/6/20 上午 08:56:47

 

看一下您的訊息似乎是沒有改好喔!
我們跟著修改是能完成的,
您可以參考以下影片修改的方式:

https://www.youtube.com/watch?v=ZGxeVNg51Z8&t=8s

不過這個是Pytube目前錯誤的問題,可能要等他們新版推出才能解決,而不是我們使用者單方面能解決的。

請您先試看看。

黃


更新時間:2019/6/20 上午 11:23:08

 

您好
我找出問題在哪裡了
提供出來也許有人會跟我一樣

在迴圈裡 如果是用tab縮排
該迴圈都要用tab縮排
如果是用空4格縮排 那就要用空4格縮排

因為我是用notepad++去修改mixins.py
再接上是用複製貼上的
所以在if前面是空4格縮排
但原本的mixins.py是用tab去縮排
才會造成執行錯誤

只要把縮排方式都改成一樣的 就OK了

文淵閣工作室

文淵閣工作室
更新時間:2019/6/20 下午 01:49:44

 

真的很感謝您的分享。

小羊

小羊
更新時間:2019/7/3 上午 12:46:34

 

老師不好意思QQ 我去github的問題區看了很多回應,但改來改去,最後還是不能用,不知道能不能提供現行可以使用的code,以及如何修正。

邱


更新時間:2019/7/3 上午 09:26:41

 

File "youtube.py", line 6, in <module>
    video.download()
  File "/usr/local/lib/python3.6/dist-packages/pytube/streams.py", line 217, in download
    bytes_remaining = self.filesize
  File "/usr/local/lib/python3.6/dist-packages/pytube/streams.py", line 164, in filesize
    headers = request.get(self.url, headers=True)
  File "/usr/local/lib/python3.6/dist-packages/pytube/request.py", line 21, in get
    response = urlopen(url)
  File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.6/urllib/request.py", line 532, in open
    response = meth(req, response)
  File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.6/urllib/request.py", line 570, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

我試著跟著github上大家的作法來更改,可以也沒有用QQ 請問這要如何解決?

文淵閣工作室

文淵閣工作室
更新時間:2019/7/5 上午 09:04:11

 

請先參考以下影片
https://www.youtube.com/watch?v=ZGxeVNg51Z8&t=21s




 

 

Re:python初學特訓班的pytube套件問題

請輸入姓名。

已超出字元數目的最大值。


請輸入電子郵件。

格式無效。


請輸入內容。