分分钟搞定Youtube视频下载

前言

本篇文章绝对是有手就行的操作,适合纯小白操作。并且提供两者方式供各位使用,此两种方式针对不同人群,当然有特殊需求的话,可以私聊博主考虑单独封装一个新的GUI程序。

当然这里也就不卖关子了,直接走起,当然这里声明一下,本文章在CSDN将发布至《突发奇想》专栏,该专栏为付费专栏,当然你也可以移步至掘金平台,这里的文章与掘金几乎同步,且不收费,至于关于博主为啥要选择在CSDN付费,原因也简单,赚点零花钱,当然你也可以选择不给,那就移步嘛,不强求。

基础环境

首先,这里我们需要明确一下我们的基础环境,这里默认各位可以进行科学上网,当然,如果你使用第二种方式的话,你能够保证你的github可以正常访问也可以(因为Github其实只是CDN污染,其实还是可以访问的,你可以访问这个仓库:gitee.com/if-the-wind... 该仓库提供了hosts,可以解决这个问题,可以不使用科学上网的方式来实现我们的视频下载)

使用下载器

okey,先来我们的第一种方式,那就是直接使用到我们的下载器,当然这个下载器其实就是 youtube-dl 但是呢,因为这个软件没有GUI界面,所以操作起来就比较麻烦,那么这里为了简化操作自然就有了对应的GUI程序。youtube-dl-gui 但是的话,你直接下载还是有一些坑的,软件无法运行,至于原因的话,也就是依赖软件的一些问题,所以这里我直接给出绿色免安装版本: 下载之后直接解压运行这个软件就行:

运行界面长这样: 这里面的坑都是我踩完了的。

链接:pan.baidu.com/s/10pv__QhU... 提取码:6666

使用Github工作流

这个的话也是可以直接做到批量下载的,原理的话,也是通过dl,进行下载,我们创建工作流,然后的话执行指令,然后将下载内容直接保存在仓库里面就好了。当然这里要注意LFS的限制,这个没有办法,要么就花点银子。

当然这个项目也是基于这个:github.com/justjavac/g... 改造过来的,为啥要改造,原因很简单,这个项目用不了呗。所以没有办法只能自己重新搞一个喽,于是就有了下面这个项目:

这里直接fork,或者自己创建仓库都是可以的:github.com/Huterox/git...

那么为啥,原来那个项目不行了呢,原因很简单太老了,Github不支持了,所以这里更新了一下工作流。

python 复制代码
name: ci

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    permissions:
      contents: write

    steps:
      - name: Clone repository
        uses: actions/checkout@v4

      - name: Make youtube-dl executable
        run: chmod +x ./bin/youtube-dl

      - name: Install Git LFS
        run: |
          curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
          sudo apt-get install git-lfs
          git lfs install

      - name: Track large video files
        run: git lfs track "*.mp4"

      - name: Configure Git user
        run: |
          git config --local user.email "3139541502@qq.com"
          git config --local user.name "Huterox"

      - name: Set Git remote URL
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          git remote set-url origin https://x-access-token:$GITHUB_TOKEN@github.com/${{ github.repository }}

      - name: Check for unstaged changes
        id: check_changes
        run: |
          if git diff --quiet; then
            echo "::set-output name=unstaged::false"
          else
            echo "::set-output name=unstaged::true"
          fi

      - name: Commit unstaged changes
        if: steps.check_changes.outputs.unstaged == 'true'
        run: |
          git add .
          git commit -m "Commit unstaged changes before rebase"

      - name: Pull latest changes
        run: git pull --rebase

      - name: Download video with retry
        run: |
          max_retries=3
          retry_count=0
          download_success=false
          while [ $retry_count -lt $max_retries ] && [ "$download_success" == "false" ]; do
            ./bin/youtube-dl --config-location config.txt
            if [ $? -eq 0 ]; then
              download_success=true
            else
              retry_count=$((retry_count+1))
              echo "Download attempt $retry_count failed. Retrying in 5 seconds..."
              sleep 5
            fi
          done
          if [ "$download_success" == "false" ]; then
            echo "Failed to download video after $max_retries attempts."
            exit 1
          fi

      - name: Commit and push changes
        run: |
          git add .
          git commit -m "Downloaded youtube video"
          git push

      - name: Error handling
        if: failure()
        run: |
          echo "An error occurred. Check the logs for details."

之后的话,就可以继续happy了。那么怎么使用呢: 编辑这个文件,然后提交就好了,触发 pull 执行工作流 工作流执行完毕之后,在这里就可以看到你想要的视频:

ETC...(总结)

那么到这里还有啥其他方法嘛?这里的话其实还有一些谷歌插件,但是插件这个玩意不是很稳定,所以就这些方法也够用了。当然此外 python 也支持 dl 的API,所以的话,可以基于它在封装一个GUI程序,但是这个也是不可避免地需要科学上网,而且开头就给了一个有UI的程序,所以这里博主也没有重新造轮子了,但是,如果有需要也可以私聊博主,帮你整一个,但是博主是需要一点点零花钱滴~🥴🥴🤑

相关推荐
修己xj2 小时前
Anki:让记忆更高效、更智能的开源力量
开源
冬奇Lab8 小时前
一天一个开源项目(第17篇):ViMax - 多智能体视频生成框架,导演、编剧、制片人全包
开源·音视频开发
一个处女座的程序猿10 小时前
AI之Agent之VibeCoding:《Vibe Coding Kills Open Source》翻译与解读
人工智能·开源·vibecoding·氛围编程
一只大侠的侠11 小时前
React Native开源鸿蒙跨平台训练营 Day16自定义 useForm 高性能验证
flutter·开源·harmonyos
IvorySQL11 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
一只大侠的侠12 小时前
Flutter开源鸿蒙跨平台训练营 Day11从零开发商品详情页面
flutter·开源·harmonyos
一只大侠的侠12 小时前
React Native开源鸿蒙跨平台训练营 Day18自定义useForm表单管理实战实现
flutter·开源·harmonyos
一只大侠的侠12 小时前
React Native开源鸿蒙跨平台训练营 Day20自定义 useValidator 实现高性能表单验证
flutter·开源·harmonyos
晚霞的不甘13 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
晚霞的不甘14 小时前
Flutter for OpenHarmony 实现计算几何:Graham Scan 凸包算法的可视化演示
人工智能·算法·flutter·架构·开源·音视频