rget 4.6.0 → 4.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +22 -21
  3. data/lib/freshlive.rb +28 -10
  4. data/rget.gemspec +2 -2
  5. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cbb60902a3e7e94cdde04a6e9fcaba67520f77691ed758954f1fc6a85ff36573
4
- data.tar.gz: 5bec01d8399e3a213dad6f6809af72a69b2bc480be0fd8be4683a6098ca5db05
3
+ metadata.gz: 8724d5e9d9cc41ac88e02daadf6beea6ddca2040b676f09a9d1a9be06792bed8
4
+ data.tar.gz: 6ec002e98c4eef4010c5e7d2d3e30e05bc253db6e3b5b8a9f8bbc68b8a0c42a3
5
5
  SHA512:
6
- metadata.gz: 49af824ae83d968115f0ae2b7b52a41f0b37fad355516a248ca4c4d61aa378bbfabef7e4848ef585d00e7172d1f3c9b0e3d63e840990e2db80fb9a8afdc3455b
7
- data.tar.gz: c14371d3ee3fa7167279aca481a4534f17db04fdb75b056aafad9e4e2fdfa8ca519e33fb840ee856e06a17945b7b6e82ab56dcda94d354d7e18673b6dceb280f
6
+ metadata.gz: '059523e19ca5bfc9dbd2e17498c7c44d82de8cd0570415061d96f51d928b6a773df1ccf976995597b3eb9916f11808a562a4f3c4dfd0b3bc2b1d9d10153ba33b'
7
+ data.tar.gz: 749be7f67700bd1e885b4e92675c6d677018e63f7e1431667ee59d6ae8e6bc82105349c3e0047efaebd9894b339fd0fe8433d4f79c253fa33bf88dce6b77278f
data/README.md CHANGED
@@ -18,33 +18,34 @@ For customize radio programs, copy `rget.yaml` to `~/.rget` or current work dire
18
18
  * <command path>/../rget.yaml (for gem)
19
19
 
20
20
  ## Installation
21
-
21
+ ```
22
22
  $ gem install rget
23
-
23
+ ```
24
24
  ## Usage
25
25
  ### rget command
26
+ ```
27
+ # save a template of the radio program configration
28
+ rget yaml http://example.com/radio >> ~/.rget
26
29
 
27
- # save a template of the radio program configration
28
- rget yaml http://example.com/radio >> ~/.rget
29
-
30
- # download and convert to mp3 THE iDOLM@STER Cinderella Girls Radio
31
- rget imas_cg
32
-
33
- # download takamori only (saved movie file)
34
- rget takamori --no-mp3
30
+ # download and convert to mp3 THE iDOLM@STER Cinderella Girls Radio
31
+ rget imas_cg
35
32
 
36
- # srore mp3 file to specified directory
37
- rget suzakinishi --path=/home/hoge/radio
33
+ # download takamori only (saved movie file)
34
+ rget takamori --no-mp3
38
35
 
39
- # store mp3 file to radio folder of Dropbox
40
- rget matsui --path=dropbpx://radio
36
+ # srore mp3 file to specified directory
37
+ rget suzakinishi --path=/home/hoge/radio
41
38
 
39
+ # store mp3 file to radio folder of Dropbox
40
+ rget matsui --path=dropbpx://radio
41
+ ```
42
42
  ### nicodl command
43
-
44
- # download nicovideo live program
45
- nicodl http://live.nicovideo.jp/watch/lv999999999
46
-
43
+ ```
44
+ # download nicovideo live program
45
+ nicodl http://live.nicovideo.jp/watch/lv999999999
46
+ ```
47
47
  ### add\_mp3info
48
-
49
- # set cover photo into mp3 file
50
- add_mp3info sample.mp3 cover.jpg
48
+ ```
49
+ # set cover photo into mp3 file
50
+ add_mp3info sample.mp3 cover.jpg
51
+ ```
data/lib/freshlive.rb CHANGED
@@ -14,19 +14,25 @@ class FreshLive < WebRadio
14
14
  begin
15
15
  serial = meta['data']['title'].scan(/\d+$/).first.to_i
16
16
  src = "#{@label}##{'%02d' % serial}.ts"
17
- dst = src.sub(/\.ts$/, '.mp4')
17
+ dst = src.sub(/\.ts$/, @options.mp3 ? '.mp3' : '.mp4')
18
18
  if exist?(dst)
19
19
  puts "#{dst} is existent, skipped."
20
20
  return
21
21
  end
22
- open(src, 'wb') do |w|
23
- print "getting #{src}..."
24
- ts_list(meta['data']['archiveStreamUrl']).each do |u|
25
- print '.'
26
- w.write(open(u, 'rb').read)
22
+ unless exist?(src)
23
+ open(src, 'wb') do |w|
24
+ print "getting #{src}..."
25
+ ts_list(meta['data']['archiveStreamUrl']).each_with_index do |u, i|
26
+ print '.' if i % 50 == 0
27
+ w.write(open(u, 'rb').read)
28
+ end
27
29
  end
28
30
  end
29
- dst = mp4nize(src)
31
+ if @options.mp3
32
+ dst = to_mp3(src)
33
+ else
34
+ dst = to_mp4(src)
35
+ end
30
36
  puts 'done.'
31
37
  move(dst)
32
38
  return
@@ -69,7 +75,7 @@ class FreshLive < WebRadio
69
75
 
70
76
  private
71
77
  def each_programs(html)
72
- x = "//section[h1[contains(text(),'アーカイブ')]]//*[contains(@class,'ProgramTitle')]/a/@href"
78
+ x = "//section[descendant::h1[contains(text(),'アーカイブ')]]//*[contains(@class,'ProgramTitle')]/a/@href"
73
79
  html.xpath(x).each do |href|
74
80
  id = Pathname(href.value).basename.to_s
75
81
  yield JSON.parse(open("https://freshlive.tv/proxy/Programs;id=#{id}", &:read))
@@ -81,9 +87,21 @@ private
81
87
  open(URI(rate_m3u8) + ts_m3u8).read.each_line.grep_v(/^#/).map{|u|URI(rate_m3u8) + u.chomp}
82
88
  end
83
89
 
84
- def mp4nize(src)
90
+ def to_mp3(src)
91
+ dst = src.sub(/ts$/, 'mp3')
92
+ command = "ffmpeg -i '#{src}' -vn -ab 64k '#{dst}'"
93
+ result = Open3.capture3(command)
94
+ if result[2].to_i == 0
95
+ File.delete(src)
96
+ else
97
+ File.delete(dst) if File.exist?(dst)
98
+ end
99
+ return dst
100
+ end
101
+
102
+ def to_mp4(src)
85
103
  dst = src.sub(/ts$/, 'mp4')
86
- command = "ffmpeg -i #{src} -vcodec copy -strict -2 #{dst}"
104
+ command = "ffmpeg -i '#{src}' -vcodec copy -strict -2 '#{dst}'"
87
105
  result = Open3.capture3(command)
88
106
  if result[2].to_i == 0
89
107
  File.delete(src)
data/rget.gemspec CHANGED
@@ -4,12 +4,12 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "rget"
7
- spec.version = "4.6.0"
7
+ spec.version = "4.6.1"
8
8
  spec.authors = ["TADA Tadashi"]
9
9
  spec.email = ["t@tdtds.jp"]
10
10
  spec.description = %q{Downloading newest radio programs on the web. Supported radio stations are hibiki, onsen, niconico, freshlive and himalaya.}
11
11
  spec.summary = %q{Downloading newest radio programs on the web.}
12
- spec.homepage = "https://bitbucket.org/tdtds/rget"
12
+ spec.homepage = "https://github.com/wasamas/rget"
13
13
  spec.license = "GPL"
14
14
 
15
15
  spec.files = `git ls-files`.split($/)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rget
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.0
4
+ version: 4.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - TADA Tadashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-04 00:00:00.000000000 Z
11
+ date: 2018-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -168,7 +168,7 @@ files:
168
168
  - lib/webradio.rb
169
169
  - rget.gemspec
170
170
  - rget.yaml
171
- homepage: https://bitbucket.org/tdtds/rget
171
+ homepage: https://github.com/wasamas/rget
172
172
  licenses:
173
173
  - GPL
174
174
  metadata: {}
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  version: '0'
189
189
  requirements: []
190
190
  rubyforge_project:
191
- rubygems_version: 2.7.6
191
+ rubygems_version: 2.7.7
192
192
  signing_key:
193
193
  specification_version: 4
194
194
  summary: Downloading newest radio programs on the web.