Giter Club home page Giter Club logo

Comments (2)

xueli12 avatar xueli12 commented on September 27, 2024 1

楼主你好,下面是我的个人想法和建议:

部分twitch的视频可能需要订阅才能看,而上面的代码中并没有考虑将授权参数加到这里with yt_dlp.YoutubeDL({'download_archive': 'archive.txt'}) as ydl,这会导致一个后果是如果某个用户已经订阅了某个主播但它填了cookie信息也无法下载视频。

with yt_dlp.YoutubeDL({'download_archive': 'archive.txt'}) as ydl:info = ydl.extract_info(self.url, download=False, process=False) 这一部份会获取到所有vod的url(包含需要订阅的那一部分vod),

但是到下面这一步 download_info = ydl.extract_info(entry['url'], download=False) ,如果没有传递授权参数,不能获取到任何信息,会报403错误。

我猜测可能需要cookies FILE参数,因此在执行ydl.extract_info(entry['url'], download=False)这一步时最好是传递cookies FILE参数给ydl,如果cookies FILE存在的话。

上述论断可能有不到位的地方,今天才看的yt-dlp的官方文档,如有错误请指正

from biliup.

laomu61996 avatar laomu61996 commented on September 27, 2024

不想安装ffmpeg-python的话可以直接调用系统的ffmpeg使用,只需要修改def _split_video(self, filepath, segment_duration):部分就可以

import subprocess

def _split_video(self, filepath, segment_duration):
    """使用系统的ffmpeg命令分割视频"""
    filename, ext = os.path.splitext(filepath)
    segment_filename = f"{filename}_%03d{ext}"
    
    # 构建ffmpeg命令
    ffmpeg_cmd = [
        'ffmpeg', '-i', filepath, 
        '-f', 'segment', '-segment_time', str(segment_duration), 
        '-c', 'copy', '-reset_timestamps', '1', 
        segment_filename
    ]

    try:
        # 执行ffmpeg命令
        subprocess.run(ffmpeg_cmd, check=True)
        logger.warning(f"{self.url}:分段完成: {filepath}")
    except subprocess.CalledProcessError as e:
        logger.warning(f"{self.url}:ffmpeg 分段错误: {e}")

    os.remove(filepath)  # 删除原文件
    logger.warning(f"{self.url}:原文件已删除: {filepath}")

from biliup.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.