From 18df054f6021d12af45f02934a188acb9dd0eb19 Mon Sep 17 00:00:00 2001 From: gongqijian Date: Mon, 11 Mar 2013 14:30:44 +0800 Subject: [PATCH 1/4] Xiami: fix album & showcollect download error --- src/you_get/downloader/xiami.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/you_get/downloader/xiami.py b/src/you_get/downloader/xiami.py index bfc4a0fb..4bccff06 100644 --- a/src/you_get/downloader/xiami.py +++ b/src/you_get/downloader/xiami.py @@ -42,7 +42,7 @@ def xiami_download_song(sid, output_dir = '.', merge = True, info_only = False): download_urls([url], "%s - %s - %s" % (song_title, artist, album_name), ext, size, output_dir, merge = merge, faker = True) def xiami_download_showcollect(sid, output_dir = '.', merge = True, info_only = False): - xml = get_html('http://www.xiami.com/song/playlist/id/%s/type/3' % sid) + xml = get_html('http://www.xiami.com/song/playlist/id/%s/type/3' % sid, faker = True) doc = parseString(xml) tracks = doc.getElementsByTagName("track") track_nr = 1 @@ -60,7 +60,7 @@ def xiami_download_showcollect(sid, output_dir = '.', merge = True, info_only = track_nr += 1 def xiami_download_album(sid, output_dir = '.', merge = True, info_only = False): - xml = get_html('http://www.xiami.com/song/playlist/id/%s/type/1' % sid) + xml = get_html('http://www.xiami.com/song/playlist/id/%s/type/1' % sid, faker = True) album_name = r1(r'', xml) doc = parseString(xml) tracks = doc.getElementsByTagName("track") From b8087a8ad442cf754eb9ac448f88658fd5b3afea Mon Sep 17 00:00:00 2001 From: Mort Yao Date: Wed, 13 Mar 2013 01:07:08 +0100 Subject: [PATCH 2/4] fix README.*: Travis images --- README.md | 4 +++- README.txt | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ef1e818..daf6c43c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# You-Get [![Build Status](https://api.travis-ci.org/soimort/you-get.png)](https://travis-ci.org/soimort/you-get) +# You-Get [You-Get](https://github.com/soimort/you-get) is a video downloader runs on Python 3. It aims at easing the download of videos on [YouTube](http://www.youtube.com), [Youku](http://www.youku.com)/[Tudou](http://www.tudou.com) (biggest online video providers in China), [ Niconico](http://www.nicovideo.jp), etc., in one script. @@ -6,6 +6,8 @@ See the project homepage for further documentat Fork me on GitHub: +[![Build Status](https://api.travis-ci.org/soimort/you-get.png)](https://travis-ci.org/soimort/you-get) + ## Features ### Supported Sites (As of Now) diff --git a/README.txt b/README.txt index 946493b6..c982c58c 100644 --- a/README.txt +++ b/README.txt @@ -7,6 +7,8 @@ See the project homepage http://www.soimort.org/you-get for further documentatio Fork me on GitHub: https://github.com/soimort/you-get +.. image:: https://api.travis-ci.org/soimort/you-get.png + Features -------- From 00cd5b1bbc2450ffbcae32230826930f11a2581f Mon Sep 17 00:00:00 2001 From: Mort Yao Date: Thu, 14 Mar 2013 23:17:06 +0100 Subject: [PATCH 3/4] quick & dirty fix #61, default to use FFmpeg for merging flv files --- src/you_get/common.py | 19 +++++++++++++++---- src/you_get/processor/ffmpeg.py | 25 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/you_get/common.py b/src/you_get/common.py index 7c13066f..1a846b86 100644 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -409,10 +409,20 @@ def download_urls(urls, title, ext, total_size, output_dir = '.', refer = None, print() return if ext == 'flv': - from .processor.join_flv import concat_flv - concat_flv(parts, os.path.join(output_dir, title + '.flv')) - for part in parts: - os.remove(part) + try: + from .processor.ffmpeg import has_ffmpeg_installed + if has_ffmpeg_installed(): + from .processor.ffmpeg import ffmpeg_concat_flv_to_mp4 + ffmpeg_concat_flv_to_mp4(parts, os.path.join(output_dir, title + '.mp4')) + else: + from .processor.join_flv import concat_flv + concat_flv(parts, os.path.join(output_dir, title + '.flv')) + except: + raise + else: + for part in parts: + os.remove(part) + elif ext == 'mp4': try: from .processor.join_mp4 import concat_mp4 @@ -428,6 +438,7 @@ def download_urls(urls, title, ext, total_size, output_dir = '.', refer = None, os.remove(part) else: print('No ffmpeg is found. Merging aborted.') + else: print("Can't merge %s files" % ext) diff --git a/src/you_get/processor/ffmpeg.py b/src/you_get/processor/ffmpeg.py index f785bf96..4b5d1db7 100644 --- a/src/you_get/processor/ffmpeg.py +++ b/src/you_get/processor/ffmpeg.py @@ -60,3 +60,28 @@ def ffmpeg_concat_ts_to_mkv(files, output = 'output.mkv'): return False except: return False + +def ffmpeg_concat_flv_to_mp4(files, output = 'output.mp4'): + for file in files: + if os.path.isfile(file): + params = ['ffmpeg', '-i'] + params.append(file) + params += ['-map', '0', '-c', 'copy', '-f', 'mpegts', '-bsf:v', 'h264_mp4toannexb'] + params.append(file + '.ts') + + subprocess.call(params) + + params = ['ffmpeg', '-i'] + params.append('concat:') + for file in files: + f = file + '.ts' + if os.path.isfile(f): + params[-1] += f + '|' + params += ['-c', 'copy', '-absf', 'aac_adtstoasc', output] + + if subprocess.call(params) == 0: + for file in files: + os.remove(file + '.ts') + return True + else: + raise From 0929e4265ee60b0a6eb45f4ff896f284a0bf1a5f Mon Sep 17 00:00:00 2001 From: Mort Yao Date: Thu, 14 Mar 2013 23:17:34 +0100 Subject: [PATCH 4/4] version 0.3.5 --- CHANGELOG.txt | 7 +++++++ README.md | 4 ++-- README.txt | 4 ++-- src/you_get/version.py | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index c24dc70e..3bc1adff 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,13 @@ Changelog ========= +0.3.5 +----- + +*Date: 2013-03-15* + +* Default to use FFmpeg for merging .flv files. + 0.3.4 ----- diff --git a/README.md b/README.md index daf6c43c..0daf0038 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # You-Get +[![Build Status](https://api.travis-ci.org/soimort/you-get.png)](https://travis-ci.org/soimort/you-get) + [You-Get](https://github.com/soimort/you-get) is a video downloader runs on Python 3. It aims at easing the download of videos on [YouTube](http://www.youtube.com), [Youku](http://www.youku.com)/[Tudou](http://www.tudou.com) (biggest online video providers in China), [ Niconico](http://www.nicovideo.jp), etc., in one script. See the project homepage for further documentation. Fork me on GitHub: -[![Build Status](https://api.travis-ci.org/soimort/you-get.png)](https://travis-ci.org/soimort/you-get) - ## Features ### Supported Sites (As of Now) diff --git a/README.txt b/README.txt index c982c58c..9b39133e 100644 --- a/README.txt +++ b/README.txt @@ -1,14 +1,14 @@ You-Get ======= +.. image:: https://api.travis-ci.org/soimort/you-get.png + `You-Get `_ is a video downloader runs on Python 3. It aims at easing the download of videos on `YouTube `_, `Youku `_/`Tudou `_ (biggest online video providers in China), `Niconico `_, etc., in one script. See the project homepage http://www.soimort.org/you-get for further documentation. Fork me on GitHub: https://github.com/soimort/you-get -.. image:: https://api.travis-ci.org/soimort/you-get.png - Features -------- diff --git a/src/you_get/version.py b/src/you_get/version.py index 94421e3d..0bef1d10 100644 --- a/src/you_get/version.py +++ b/src/you_get/version.py @@ -2,5 +2,5 @@ __all__ = ['__version__', '__date__'] -__version__ = '0.3.4' -__date__ = '2013-03-08' +__version__ = '0.3.5' +__date__ = '2013-03-15'