1. 程式人生 > >Python 實現視訊下載

Python 實現視訊下載

最近一兩年短視訊業務風生水起,各個視訊網站都有各自特色的短視訊內容。如果有這樣一個程式,可以把各大視訊網站的熱門使用者最新發布的視訊都下載下來,不僅方便自己觀看,還可以將沒有版權的視訊釋出在個人社交網站上,增加自己的人氣,豈不美哉?

parker就是這樣一個專案(專案地址:https://github.com/LiuRoy/parker),它採用celery框架定時爬取使用者視訊列表,將最新發布的視訊通過you-get非同步下載,可以很方便地實現分散式部署。因為各個網站的頁面佈局和介面更新比較頻繁,為了保證程式的高可用,特意增加了Statsd監控,方便及時發現出錯。

程式碼架構

程式碼架構

目前parker中只實現了B站和秒拍的下載,從框架圖可以看出,針對每一類網站,需要實現兩個非同步介面:從使用者視訊主頁解析釋出視訊的播放地址、根據播放地址下載視訊。因此增加網站型別,不需要修改原來的程式碼,只需要新增新的解析和下載介面即可。針對視訊下載完成之後的後續操作,我還沒有實現,大家可以根據自己的需求自由的去實現。

在執行的時候,celery會將配置好的優質使用者列表定時傳送到對應網站的解析介面非同步執行,篩選出最新發布的視訊播放地址,交給對應的下載介面非同步下載,下載完成之後再非同步呼叫後續操作。因此需要啟動一個celery beat程序傳送定時任務,以及若干celery非同步任務去執行解析和下載操作,對於比較大的視訊,下載會相當耗時,建議根據任務列表的多少合理分配非同步任務的個數。

程式執行

經驗證,此程式可以在ubuntu和mac下正常執行, 由於本地windows下的celery無法正常啟動,所以沒有在windows環境做過驗證。

依賴庫安裝

python版本為3.5,進入專案目錄後,執行:

1 pip install-rrequirements.txt

建立資料庫表

引數配置

config路徑下的logging.yaml、params.yaml、sites.yaml分別對應日誌配置、執行引數配置、熱門使用者配置。

日誌配置

debug模式下日誌會直接輸出在標準輸出流,release模式下會將日誌內容輸出到檔案中,因此需要配置輸出日誌檔案。

執行配置

  • mode debug除錯模式,此模式下日誌指向標準輸出,並且沒有監控資料;release模式下,日誌輸出到制定檔案,並且有監控資料。
  • broker_url 對應於celery的BROKER_URL,可以配置為redis或者rabbitmq
  • mysql_url 資料庫地址,需要提前建好兩張表
  • download_path 視訊下載路徑
  • statsd_address 監控地址
  • video_number_per_page 每次從使用者視訊主頁解析出多少條視訊播放地址,因為大部分使用者每次釋出的視訊個數很少,只需要設定成一個很小的值即可。在初次執行的時候,也不會下載大量久遠的視訊。
  • download_timeout 視訊下載的超時時間

熱門使用者配置

parker會根據此配置生成一份celery beat scheduler列表。

  • name 規則是-,parker會根據此作為scheduler任務名稱
  • url 使用者的釋出視訊主頁
  • task 對應的celery解析非同步任務
  • minute 多少分鐘檢查一次使用者視訊列表

啟動任務

進入專案目錄,執行下面命令啟動celery worker

1 celery-Aspider worker

執行下面命令啟動celery beat定時任務

1 celery-Aspider beat

監控

監控

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

相關推薦

Python 實現視訊下載

最近一兩年短視訊業務風生水起,各個視訊網站都有各自特色的短視訊內容。如果有這樣一個程式,可以把各大視訊網站的熱門使用者最新發布的視訊都下載下來,不僅方便自己觀看,還可以將沒有版權的視訊釋出在個人社交網站上,增加自己的人氣,豈不美哉? parker就是這樣一個專案(專案地址:ht

OpenCV + Python 實現視訊通道分離與合併

通道分離 #--coding: utf-8-- import cv2 as cv import numpy as np def channels_split(): capture = cv.VideoCapture('/home/pi/Desktop/白衣黑褲.m

OpenCV + Python 實現視訊色彩分割

實現色彩分割基本步驟 其原理同靜態影象色彩分割一致:OpenCV + Python 實現靜態影象色彩分割 Code: #--coding: utf-8-- import cv2 as cv import numpy as np def colo

突破某雲盤的限速,利用python實現加速下載

計劃做這樣的多執行緒下載是因為xx雲盤限速厲害,到了噁心的地步,我想試試用多執行緒下載xx雲盤的資源是否能夠實現加速。 xx雲盤限速分析   1. 關於限速,我揣測有兩種情況:         &nbs

python學習視訊下載地址全套

  Python,一種強大的計算機程式語言,對於沒有學過程式碼的同學,Python無疑是你的最佳選擇,簡單易學功能強大,使得它備受大家歡迎。有想學Python的朋友嗎?   或許你需要python視訊下載地址。   比如: Python初識與職業發展   https

python實現檔案下載(包含進度條顯示,檔案大小顯示,下載速度顯示)

不多說了,直接上程式碼記錄: #!/usr/bin/lgy #-*-coding:utf-8-*- import urllib2,threading from PyQt4.QtGui import * from PyQt4.QtCore import * from pu

利用Python實現批量下載騰訊視頻!

mar 視頻 http 分鐘 交流 ogl 分享圖片 tps 技術分享 導語 利用Python下載騰訊非VIP視頻,也就是可以免費觀看的視頻。做這個的起因是最近在看一個叫"請吃紅小豆吧"的動漫,一共三分鐘的動漫,廣告時間竟然要一分鐘,實在忍無可忍,於是

打造一款Python實現自動下載電影的“指令碼”!那種電影也可以哦!

都很有規律不是嗎?而在Scrapy裡面,就可以設定我們想要的規律,Scrapy就可以對這些符合規律的網址及頁面資訊進行處理。先來看看成果吧,這一部分中,我們想要的結果就是輸出排行榜裡面的電影名稱:而且我們其實可以做的更好。Pycharm用這個資料夾建立Project,douban/db處建立一個方便IDE執行

利用python爬蟲實現:抖音短視訊無水印視訊下載

  各位小夥伴,之前一段時間迷上了抖音小姐姐視訊,但是下載的視訊都有水印,於是自己用Python 寫了個爬取小姐姐視訊的工具,大家可以直接拷貝到自己編譯器上執行。經過半天的琢磨,自己用python搞出來一個根據抖音分享視訊連結去除水印並下載的功能。此外,我還利用pyqt5寫了

Python實現下載進度

org log def 遠程 bsp color 實現 www. nbsp # encoding:utf-8 import urllib import os def Schedule(a,b,c): ‘‘‘‘‘ a:已經下載的數據塊 b:數據塊

Python 實現下載進度條(不帶GUI界面)

Python requests 進度條 話不多說,先上圖該Python代碼可以實現獲取下載的文件名,下載文件的大小,下載速度等。 代碼關鍵點: 1、關於下載文件名的獲取:代碼裏使用兩種方式獲取:(1) 通過Content-Disposition屬性,該屬性是作為對下載文件的一個標識字段,存儲著下載

Python實現下載界面(帶進度條,斷點續傳,多線程多任務下載等)

Python 下載界面 tkinter 斷點續傳 進度條 開發環境: Windows 7 64位,Python 3.6.2 實現功能: 進度條,下載速度和下載進度的顯示,斷點續傳(暫停繼續下載功能),取消下載等功能下載界面,如圖所示點擊‘新建任務‘,彈出輸入下載鏈接的窗口,如圖所示點擊‘開

使用Python 實現文件的上傳與下載

sport .get close OS imp down tran oca word 1,使用到Python的paramiko模塊 2,下面直接上代碼 import paramiko localpath =r‘/tmp/a.txt‘remotepath = r‘/mn

Python爬取王者榮耀官網,實現一對一下載軟件!

案例 界面 image inter ima requests mage 視頻教程 inf 效果: 我沒有弄文件夾保存,因為皮膚與英雄都是一一對應,這樣子更加方便操作。 點擊下載皮膚後,會自動從官網下載一個json文件,所以出了新英雄、新皮膚軟件會自動更新。高

python實現簡單的百度雲自動下載

pan odin ret lines spa lee 自動 資源 class 最近女同讓我幫助從百度雲下載200個文件,給了我連接和提取碼,這種重復的工作不適合人做寫了一個簡單的爬蟲 #coding=utf-8 ‘‘‘ 自動填寫提取碼下載百度雲資源 方法: for 讀

Python實現簡單爬蟲功能--批量下載百度貼吧裡的圖片

在上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片儲存下載,或者使用者用來做桌面桌布,或者用來做設計的素材。   我們最常規的做法就是通過滑鼠右鍵,選擇另存為。但有些圖片滑鼠右鍵的時候並沒有另存為選項,還有辦法就通過就是通過截圖工具擷取下來,但這樣就降低圖片的清晰度

FFmpeg+python實現批量視訊分幀

使用FFmpeg工具對短視訊批量分幀,以下是一段很簡單的程式碼: import PIL.Image as Image import pylab import imageio #註釋的程式碼執行一次就好,以後都會預設下載完成 #imageio.plugins.ffmpeg.download()

python爬蟲8——下載視訊:you-get工具

由於博主經常性會學習一些視訊教程,除了自己下的外,就很像把公司買的視訊也下下來觀摩觀摩。先來一個軟體,叫you-get的包。 一、you-get說明 You-Get 乃一小小噠命令列程式,提供便利的方式來下載網路上的媒體資訊。 利用you-get下載這個網頁的視訊: &nb

Python實現下載檔案的三種方法

下面來看看三種方法是如何來下載zip檔案的:方法一: import urllib print "downloading with urllib" url = 'http://www.jb51.net//test/demo.zip' urllib.urlretrieve(url, "demo.zip")

視訊下載-------python

今天看了一個小視訊,很好笑 說的是:欲練神功,揮刀自宮,如不自宮,也能成功 觀看連結: https://m.baidu.com/?from=1012852s#iact=wiseindex%2Ftabs%2Fnews%2Factivity%2Fnewsdetail%3D%257B%25