you-get的一点修改

一直用you-get这个python写的开源软件下载一些视频网站的视频(主要是太烦不断插入的广告),最近看了点python,就对于自己觉得不够方便的地方,尝试修改。因为感觉他的github上提交修改建议不方便,所以就自娱自乐算了。

主要改动是在extractor.py这个文件。一是p(self, stream_id=None):这个函数,我加了句,目的是显示视频所带的字幕数。因为我只懂中文和英语,如果是其他语言的视频,如果没有字幕,下载了也没法看。所有有必要在下载前,先看下有没有字幕。

改动很简单,就是在这个函数的末尾,加了句:

print("Number of subtitles: " + str(len(self.caption_tracks)))

另外一个改动,本来运行时,加上-i 参数,就只显示可用视频流,码率,大小等信息,但不下载。这本来很好,下载前先看下,选择最清晰的视频流下载。问题是加上-i 参数后,如果想下载,就又要运行一次,去掉-i 参数,才可以下载。每运行一次,就会重新解析一下网页,这没有必要。于是改了下download(self, **kwargs)函数(天蓝色部分是改动内容)

        isDownload = True
        stream_id = ''
        if 'json_output' in kwargs and kwargs['json_output']:
            json_output.output(self)
        elif 'info_only' in kwargs and kwargs['info_only']:
            if 'stream_id' in kwargs and kwargs['stream_id']:
                # Display the stream
                stream_id = kwargs['stream_id']
                if 'index' not in kwargs:
                    self.p(stream_id)
                else:
                    self.p_i(stream_id)
            else:
                # Display all available streams
                if 'index' not in kwargs:
                    self.p([])
                else:
                    stream_id = self.streams_sorted[0]['id'] if 'id' in self.streams_sorted[0] else self.streams_sorted[0]['itag']
                    self.p_i(stream_id)
            userInput = input("Choose stream id to download or ENTER to exit: ")
            if not userInput:
               isDownload = False
            else:
               stream_id = userInput

        if isDownload == True:
           if stream_id == '':

这样,下载前先加上 -i 参数,看下视频信息,然后输入视频的tag号就可以开始下载,否则直接回车退出。

 

posted @ 2019-08-19 09:24  平静寄居者  阅读(382)  评论(0编辑  收藏  举报