分分钟搞定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的程序,所以这里博主也没有重新造轮子了,但是,如果有需要也可以私聊博主,帮你整一个,但是博主是需要一点点零花钱滴~🥴🥴🤑

相关推荐
莫生灬灬27 分钟前
VueMultiBrowser 5.0 开源 - 基于 Vue3 + CEF 的多浏览器管理器
chrome·开源·c#·自动化·多开·cef3
hsg7730 分钟前
本地部署开源数字人模型简介
人工智能·开源
GitCode官方2 小时前
openPangu-VL-7B:专为生产线而生的视觉语言多模态模型
ai·开源·atomgit
开源能源管理系统2 小时前
MyEMS开源能源管理系统:赋能石膏制品制造业绿色低碳转型与降本增效
大数据·开源·能源·能源管理系统·石膏
百***24372 小时前
DeepSeek-V3.2全解析:开源大模型的性能巅峰与落地实践指南
python·开源
信创天地3 小时前
从 “替代” 到 “超越”:信创系统架构师如何筑牢自主可控技术底座
运维·安全·系统架构·开源·dubbo·risc-v
柠檬叶子C4 小时前
解决 Keil MDK 编译报错:error: #5: cannot open source input file “xxx.h“
stm32·单片机·开源
老陈聊架构4 小时前
『AI工具』AIShort部署实战:一键部署专属AI提示词管理与共享平台
人工智能·开源·提示词·aishort
百***07455 小时前
小米MiMo-V2-Flash深度解析:国产开源大模型标杆+一步API接入全指南
java·大数据·开源·php
血色橄榄枝6 小时前
07 复盘一阶段掌握知识要点
flutter·开源·鸿蒙