一个下载文件的Python库
Project description
PyFilesDownloader
介绍
PyFilesDownloader是一个基于Python的下载器,可以下载各种网站的资源。
安装依赖
pip install requests
pip install loguru
pip install pycryptodome
pip install m3u8
安装教程
pip install PyFilesDownloader
使用说明
示例代码
下载单个文件
from PyFilesDownloader import StreamDownloader
url = 'https://v16m-default.akamaized.net/e1d9304942ebc65508c9e50294e44e29/677bd662/video/tos/alisg/tos-alisg-ve-0051c001-sg/oUfbIGcZlzP1pj65fsCSE4BhARF9DOAYeqDgbE/?a=2011&bti=MzhALjBg&ch=0&cr=0&dr=0&net=5&cd=0%7C0%7C0%7C0&br=1128&bt=564&cs=0&ds=3&ft=XE5bCqq3mbuPD12imGcJ3wU1NmxdEeF~O5&mime_type=video_mp4&qs=0&rc=aTQ0PDRmPDdnODo7Ozc0OkBpank2aXM5cjZydzMzODYzNEBgLi4xMi0zXzAxLi1eLS1eYSNmXjVqMmRzYnBgLS1kMC1zcw%3D%3D&vvpl=1&l=20250106064655ECC206E262E86FE01FD4&btag=e000a8000'
save_path = 'download/不知为何我和尼特且宅的女忍者开始了同居生活'
save_name = '第一集.mp4'
downloader = StreamDownloader(url, save_path, save_name, is_overwrite=True)
downloader.run()
下载M3U8格式的视频
注意:M3U8格式的视频需要使用M3U8Downloader类进行下载,该类会自动解析M3U8文件并下载视频。
注意:M3U8格式的视频下载速度较慢,请耐心等待。
同步下载
from PyFilesDownloader import M3U8Downloader
url = 'https://v.cdnlz22.com/20250101/10507_73949974/index.m3u8'
save_path = './download/上班族转生异世界当上了四天王不是很正常吗'
file_name = '第一集.mp4'
loader = M3U8Downloader(url, save_path, file_name)
loader.run()
异步下载
from PyFilesDownloader.async_loader.async_m3u8 import AsyncM3U8Downloader
url = 'https://v.cdnlz22.com/20250101/10507_73949974/index.m3u8'
save_path = './download/上班族转生异世界当上了四天王不是很正常吗'
file_name = '第一集.mp4'
loader = AsyncM3U8Downloader(url, save_path, file_name)
loader.run()
Qt下载器
注意:Qt下载器需要安装
PyQt5\PyQt6\PySide2\PySide6库。
下载单个文件
# coding: utf-8
from PyFilesDownloader.Qt import StreamDownloaderThread
from PySide6.QtCore import QCoreApplication
import sys
app = QCoreApplication(sys.argv)
url = 'https://v16m-default.akamaized.net/e1d9304942ebc65508c9e50294e44e29/677bd662/video/tos/alisg/tos-alisg-ve-0051c001-sg/oUfbIGcZlzP1pj65fsCSE4BhARF9DOAYeqDgbE/?a=2011&bti=MzhALjBg&ch=0&cr=0&dr=0&net=5&cd=0%7C0%7C0%7C0&br=1128&bt=564&cs=0&ds=3&ft=XE5bCqq3mbuPD12imGcJ3wU1NmxdEeF~O5&mime_type=video_mp4&qs=0&rc=aTQ0PDRmPDdnODo7Ozc0OkBpank2aXM5cjZydzMzODYzNEBgLi4xMi0zXzAxLi1eLS1eYSNmXjVqMmRzYnBgLS1kMC1zcw%3D%3D&vvpl=1&l=20250106064655ECC206E262E86FE01FD4&btag=e000a8000'
save_path = 'download/不知为何我和尼特且宅的女忍者开始了同居生活'
save_name = '第一集.mp4'
downloader = StreamDownloaderThread(app)
downloader.setParams(url, save_path, save_name, is_overwrite=True)
downloader.start()
sys.exit(app.exec())
循环下载
# coding: utf-8
from PyFilesDownloader.Qt import QueueStreamDownloaderThread
from PySide6.QtCore import QCoreApplication
import sys
app = QCoreApplication(sys.argv)
url = 'https://v16m-default.akamaized.net/e1d9304942ebc65508c9e50294e44e29/677bd662/video/tos/alisg/tos-alisg-ve-0051c001-sg/oUfbIGcZlzP1pj65fsCSE4BhARF9DOAYeqDgbE/?a=2011&bti=MzhALjBg&ch=0&cr=0&dr=0&net=5&cd=0%7C0%7C0%7C0&br=1128&bt=564&cs=0&ds=3&ft=XE5bCqq3mbuPD12imGcJ3wU1NmxdEeF~O5&mime_type=video_mp4&qs=0&rc=aTQ0PDRmPDdnODo7Ozc0OkBpank2aXM5cjZydzMzODYzNEBgLi4xMi0zXzAxLi1eLS1eYSNmXjVqMmRzYnBgLS1kMC1zcw%3D%3D&vvpl=1&l=20250106064655ECC206E262E86FE01FD4&btag=e000a8000'
save_path = 'download/不知为何我和尼特且宅的女忍者开始了同居生活'
save_name = '第一集.mp4'
downloader = QueueStreamDownloaderThread(app)
downloader.setParams(url, save_path, save_name, is_overwrite=True)
downloader.setParams(url, save_path, save_name, is_overwrite=True)
downloader.setParams(url, save_path, save_name, is_overwrite=True)
downloader.start()
sys.exit(app.exec())
下载M3U8格式的视频
# coding: utf-8
from PyFilesDownloader.Qt import M3u8DownloaderThread
import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
class MainWindow(QWidget):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setWindowTitle("PyFilesDownloader")
self.verticalLayout = QVBoxLayout(self)
self.startButton = QPushButton(self)
self.stopButton = QPushButton(self)
self.downloadThread = M3u8DownloaderThread(self)
self.startButton.setText("开始下载")
self.stopButton.setText("停止下载")
self.verticalLayout.addWidget(self.startButton)
self.verticalLayout.addWidget(self.stopButton)
self.startButton.clicked.connect(self.startDownload)
self.stopButton.clicked.connect(self.stopDownload)
def startDownload(self):
self.downloadThread.setParams(
url='https://v.cdnlz22.com/20250101/10507_73949974/index.m3u8',
save_path='./download/上班族转生异世界当上了四天王不是很正常吗',
file_name='第一集.mp4',
semaphore=10
)
self.downloadThread.start()
def stopDownload(self):
self.downloadThread.stop()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.resize(400, 300)
window.show()
# 运行程序
sys.exit(app.exec())
参与贡献
- 赤鸢仙人创建本仓库
- 新建 master 分支
- 提交代码
- 新建 Pull Request
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyfilesdownloader-1.0.9.tar.gz
(26.9 kB
view details)
File details
Details for the file pyfilesdownloader-1.0.9.tar.gz.
File metadata
- Download URL: pyfilesdownloader-1.0.9.tar.gz
- Upload date:
- Size: 26.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4fa0efc892092d8c78f6d2be787ca20a71882fb0badc8d2d48d7acb59334400
|
|
| MD5 |
1ca7776190cc31eab43c7bd0f26cbeb4
|
|
| BLAKE2b-256 |
41708ed98a0134c23308626f5bbc7a9700cb6268afcaabdbbcc7a56949af79af
|