#download #youtube #twitter #internet #utilities #medias

rusty_dl

一个用于从YouTube视频、Twitter媒体(如视频、图片、gif)和网页上的文件下载内容的crate。

10个版本 (6个稳定版)

1.0.8 2024年4月21日
1.0.2 2024年4月20日
0.2.1 2024年4月8日
0.1.0 2024年4月7日
0.0.1 2024年4月7日

#92 in 视频


用于 rusty_dl_cli

MIT/Apache

105KB
2K SLoC

rusty_dl

LICENSE crates.io Version Minimum rustc version

Rusty_dl是一个功能丰富的crate,旨在轻松获取各种内容类型,包括YouTube视频、推文媒体(如视频、图片和gif),以及最终从网络直接获取各种其他媒体。

功能

  • 下载YouTube视频
  • 下载推文媒体(视频、图片、gif)
  • 从网络下载其他媒体(通过URL获取)

待办事项

在库中

  • 添加将内容下载到特定目录的功能
  • 实现检索下载媒体元数据的功能
  • 允许用户指定是否用下划线替换文件名中的空格
  • 添加从推文中下载仅图片或仅视频的支持
  • 添加从YouTube下载播放列表的支持(仅前100个视频)
  • 添加示例

其他

  • 创建一个用于从终端轻松下载的CLI
  • 开发一个桌面应用程序(使用Tauri ?)
  • 构建一个用于从浏览器下载媒体的Web应用程序

开始使用

  • 将crate添加到您的项目中
cargo add rusty_dl
  • 在同步环境中使用crate
use rusty_dl::prelude::{Downloader, YoutubeDownloader, DownloadError};

const URL: &str = "my_yt_video_link";

fn main() -> Result<(), DownloadError>  {
    let downloader = YoutubeDownloader::new(URL);

    downloader.blocking_download()
}
  • 在tokio环境中使用crate
use rusty_dl::prelude::{Downloader, YoutubeDownloader, DownloadError};

const URL: &str = "my_yt_video_link";

#[tokio::main]
async fn main() -> Result<(), DownloadError> {
    let downloader = YoutubeDownloader::new(URL);

    downloader.download().await
}

此crate还导出了一个TwitterDownloader和一个ResourceDownloader,它们的工作方式与上面展示的相同。

更多内容请查看示例目录

贡献

欢迎贡献!请随意打开问题或提交拉取请求,以帮助改进此库。

许可证

本项目采用MIT许可证

依赖项

~28–42MB
~696K SLoC