Commit Graph

174 Commits

Author SHA1 Message Date
Ivan Habunek
1fc5ef6bd1
Reorganize paging and limiting video list 2022-02-23 19:07:27 +01:00
Ivan Habunek
b73ab58432
Fix video output when creator is not set 2022-02-23 19:07:04 +01:00
Ivan Habunek
52651e62c8
Enable logging via --debug flag 2022-02-23 16:24:52 +01:00
Matt Calvert
4928188055
Add support for JSON output to videos command 2022-02-23 16:02:28 +01:00
Ivan Habunek
7ad574d103
Bump version 2022-02-05 15:08:51 +01:00
Ivan Habunek
2fddb0c6a4
Add support for downloading audio only 2022-02-05 14:37:52 +01:00
Ivan Habunek
fbc227017d
Bump version, add changelog 2022-02-05 09:52:06 +01:00
Ivan Habunek
b8aaa0c24c
Fix issue with downloading clips with no game set
issue #78
2022-02-05 09:50:17 +01:00
Ivan Habunek
0af472528d
Remove unused function 2022-02-05 09:50:17 +01:00
Ivan Habunek
fb73fe07c5
Add clip slug to formatting options 2022-02-05 09:36:50 +01:00
Ivan Habunek
7eb50a0fa1
Fix output formatting when game is not set
issue #87
2022-02-05 09:34:28 +01:00
Ivan Habunek
6ebe263f33
Fix issue with colons in file name
ffmpeg uses colons to define protocols, by prefixing the target with
file: this ambiguity is avoided.

issue #89
2022-02-05 09:26:10 +01:00
Ivan Habunek
310010363f
Bump version, add changelog 2022-01-25 08:22:35 +01:00
Ivan Habunek
4fd532f05d
Ask overwrite confirmation early
Ask whether to overwrite before starting download, this way once
download starts, there will be no more prompts.
2022-01-25 08:08:17 +01:00
Ivan Habunek
8156b18b37
Tweak colors 2022-01-25 07:59:54 +01:00
Ivan Habunek
b24bc0eb29
Add option to define target filename 2022-01-24 09:06:02 +01:00
Ivan Habunek
b67ccc9dde
Bump version, add changelog 2022-01-19 08:04:56 +01:00
Ivan Habunek
2f977be161
Bump version 2021-12-03 10:26:17 +01:00
Ivan Habunek
928c6d64cf
Add metadata to the encoded video file 2021-12-03 10:25:04 +01:00
David the Intrepid
dd1f4e0d26
Better computation of speed
Distinct VODs took from disk and freshly downloaded
2021-09-16 08:29:33 +02:00
Ivan Habunek
caabe3138c
Remove old kraken requests 2021-09-16 08:01:31 +02:00
Ivan Habunek
9c3cf11635
Dedupe clip fields 2021-09-16 07:59:07 +02:00
Ivan Habunek
2f51b3821b
Handle video not found gracefully 2021-09-16 07:58:43 +02:00
Ivan Habunek
6f86aea493
Bump version, changelog 2021-07-31 11:44:56 +02:00
Ivan Habunek
e3f66bda43
Fix compat with older versions of python
path.join doesn't handle PosixPath instances in older versions of python
which causes breakage.

fixes #71
2021-07-31 11:41:45 +02:00
Ivan Habunek
5c3cebd0f3
Bump version, changelog 2021-06-09 15:10:39 +02:00
Ivan Habunek
a49dcab419
Fix clips download by fetching access token
fixes #64
2021-06-09 15:08:40 +02:00
Ivan Habunek
0dd04a7e2d
Extract clips list method 2021-05-18 14:25:49 +02:00
Ivan Habunek
5bd0747dde
Respect --limit when downloading clips 2021-05-18 14:23:56 +02:00
Ivan Habunek
63c2aff334
Handle keyboard interrupt 2021-05-18 14:00:50 +02:00
Ivan Habunek
c0c5cbf2a8
Don't break if channel not found 2021-03-22 07:42:07 +01:00
Ivan Habunek
3f143b0c84
Fix file naming not to strip first digit of id
fixes #60
2021-03-22 07:42:07 +01:00
Ivan Habunek
2242af05fc
Add changelog, bump version 2021-02-15 14:35:20 +01:00
Ivan Habunek
9c901a21d9
Fix reference to invalid argument 2021-02-15 14:33:31 +01:00
Hegesippe Ëspace
e12dba26b4 Add dash as an allowed char, set length to 16. 2021-02-15 14:23:13 +01:00
Hegesippe Ëspace
3a61e61226 Add underscore as an allow char for clip extra ID 2021-02-15 14:23:13 +01:00
Hegesippe Ëspace
8ddfad51bc Update clip identifier patterns
New clips ID naming convention. ex: GloriousColdbloodedTortoiseRuleFive-E017utJ4DZmHVpfQ
2021-02-15 14:23:13 +01:00
Ivan Habunek
e0681ab53c
Bump version, changelog 2021-01-14 22:25:22 +01:00
Ivan Habunek
728e631623
Handle video not found in info 2021-01-14 22:23:40 +01:00
Ivan Habunek
9d19acbe6d
Re-apply fix lost to a merge conflict 2021-01-14 22:16:17 +01:00
Ivan Habunek
9e2bbd7e39
Bump version, changelog, readme 2021-01-14 22:14:53 +01:00
Ivan Habunek
dbee7cdc52
Use GraphQL to fetch access token
issue #53
2021-01-14 22:14:52 +01:00
Ivan Habunek
548a9350ba
Add twitch-dl info command 2021-01-14 22:14:52 +01:00
Ivan Habunek
2380dc5a35
Split up commands 2021-01-14 22:14:50 +01:00
Scotty Allen
a7340f178f Fix bug in videos command saying there are more videos when there aren’t
When listing videos, if --pager was not specified and all of the videos
for a channel were listed, a message would still print out saying
“There are more videos. Increase the --limit or use --pager to see the
rest."

This checks to see if there are actually more videos before printing
that error message.
2021-01-11 00:49:57 +01:00
Ivan Habunek
838611b834
Bump version 2020-11-23 16:08:15 +01:00
Ivan Habunek
cf8d13e80e
Fix clip download due to missing fields in query
fixes #45
2020-11-23 16:06:09 +01:00
Ivan Habunek
6108b15587
Handle channel not found in clips 2020-11-10 12:40:11 +01:00
Ivan Habunek
bb2de4af96
Bump version 2020-11-10 10:48:21 +01:00
Ivan Habunek
678bf11a8a
Fix print_clip when game is not set 2020-11-10 10:44:18 +01:00
Ivan Habunek
1cb4598a71
Add downloading clips 2020-11-10 09:22:07 +01:00
Ivan Habunek
02e4cdaff6
Add listing clips 2020-11-10 08:30:01 +01:00
Ivan Habunek
c2e9ab9382
Bump version 2020-09-29 12:22:24 +02:00
Ivan Habunek
739460bed1
Remove extraneous parameter 2020-09-29 12:21:13 +02:00
Ivan Habunek
c92ba5e183
Bump version 2020-09-29 11:28:35 +02:00
Ivan Habunek
f4ab045cdc
Add --pager option, don't page by default
issue #30
2020-09-29 11:28:35 +02:00
Ivan Habunek
c510d5aae4
Add --overwrite option
issue #37
2020-09-29 11:28:03 +02:00
Ivan Habunek
2abc56213e
Add --no-join option to skip ffmpeg join
issue #36
2020-09-29 11:27:49 +02:00
Ivan Habunek
bb16108572
Add source quality alias
issue #33
2020-09-29 08:26:40 +02:00
Ivan Habunek
b982cba566
Bump version, changelog 2020-09-03 12:56:57 +02:00
Ivan Habunek
eecd098f18
Add www before twitch.tv since that's what twitch uses 2020-09-03 12:55:45 +02:00
Ivan Habunek
041689bee9
Construct paths using path libs
Fixes issues with paths on windows.

issue #35
2020-09-03 12:26:28 +02:00
Ivan Habunek
a245ffb6a4
Fix issue with partial downloads
When using --start or --end, only keep the segments which have been
downloaded, and skip the rest.
2020-09-03 11:59:44 +02:00
Ivan Habunek
5b200a2cb7
Add a splash of color 2020-09-03 10:38:29 +02:00
Ivan Habunek
bf2a4558f4
Improve VOD joining logic
Instead of creating a file list, create a modified playlist which
references the downloaded files, and give this as input to ffmpeg. Since
ffmpeg handles M3U8 playlists, this means options such as
`EXT-X-BYTERANGE` are supported.

issue #35
2020-09-03 10:38:29 +02:00
Ivan Habunek
772faa5901
Log ffmpeg command and handle errors better 2020-09-03 10:38:28 +02:00
Ivan Habunek
04ddadef26
Add bundling with zipapp 2020-08-13 13:47:03 +02:00
Ivan Habunek
bbed398cf6
Fix version number in init file, bump version 2020-08-11 18:10:21 +02:00
Ivan Habunek
4edf299780
Handle more gracefully when video/clip not found 2020-08-09 11:55:40 +02:00
Ivan Habunek
78295a492c
Improve parsing inputs for download command
* Fix overzealous regex which caused video patterns to be identified as
  clips by testing for videos before clips.
* Allow URLs with or without `www.`.
* Add tests which verify this actually works.

fixes #28
2020-08-09 11:45:39 +02:00
Ivan Habunek
8222df3670
Allow numbers in clip slugs
issue #24
2020-08-07 16:35:56 +02:00
Ivan Habunek
65663d3505
Fix url to video shown when listing videos 2020-08-07 16:24:23 +02:00
Ivan Habunek
706e42d197
Make quality selectable for clip download 2020-08-07 16:23:08 +02:00
Ivan Habunek
3cfa05a3ee
Make quality selectable for video download 2020-08-07 16:23:00 +02:00
Ivan Habunek
4f62a26c30
Bump version, changelog 2020-06-10 12:07:59 +02:00
Ivan Habunek
2171a9e08e
Allow unicode values in slugs
Otherwise non-ascii characters get stripped which is not good for
e.g. titles in cyrillic script.
2020-06-10 10:54:28 +02:00
Ivan Habunek
15ca684286
Don't unpack options
This makes it more readable as option count increases.
2020-05-30 10:21:19 +02:00
Ivan Habunek
fd56a16c41
Fix option to use kebab case like the rest 2020-05-30 09:48:31 +02:00
Ivan Habunek
2cf66c022c
Don't break if game is None 2020-05-29 13:55:54 +02:00
Ivan Habunek
717f634dda
Remove unused code 2020-05-29 13:51:51 +02:00
Ivan Habunek
58458553bc
Bump version 2020-05-17 14:42:55 +02:00
Ivan Habunek
cabc8ff327
Improve paging 2020-05-17 14:41:11 +02:00
Ivan Habunek
d22fd74357
Add filtering videos by game 2020-05-17 14:35:33 +02:00
Ivan Habunek
4241ab5d67
Make less important messages dim 2020-05-17 14:32:37 +02:00
Ivan Habunek
94e9f6aa80
Extract graphql query function 2020-05-17 13:48:48 +02:00
Ivan Habunek
b014d94366
Blue is nicer than cyan 2020-05-17 13:48:16 +02:00
Ivan Habunek
ea01ef3d99
Add paging to videos command 2020-05-17 13:41:34 +02:00
Ivan Habunek
2118cd8825
Use graphql to fetch channel videos
The old helix endpoint returns HTTP 401

fixes #18
2020-05-17 11:57:16 +02:00
Ivan Habunek
6c28dd2f5e
Bump version 2020-04-25 20:06:02 +02:00
Ivan Habunek
e3dde90870
Specify broadcast type when listing videos
issue #13
2020-04-25 20:04:21 +02:00
Ivan Habunek
c628757ac0
Fix error message 2020-04-12 11:44:01 +02:00
Ivan Habunek
5e97b439a7
Bump version, changelog 2020-04-11 20:57:43 +02:00
Ivan Habunek
07f3a2fa48
Implement downloading clips
issue #15
2020-04-11 16:07:17 +02:00
Ivan Habunek
96f13e9cf7
Bump version, changelog 2020-04-11 14:07:14 +02:00
Ivan Habunek
c9547435df
Nicer otput while dowloading VODs, bright colors 2020-04-11 14:05:23 +02:00
Ivan Habunek
042d35ba1e
Override local file names for downloaded vods
Sometimes the playlists contain more than just file names which can
break the ffmpeg join, so just name downloaded vods sequentially.

fixes #12
2020-04-11 13:20:59 +02:00
Ivan Habunek
ebc754072d
Reorganise code 2020-04-11 13:08:42 +02:00
Ivan Habunek
64157c1ef6
Bump version 2020-04-10 16:34:37 +02:00
Ivan Habunek
6a8da3b01b
Don't print errors messages when retrying
Only die if all retries fail.
2020-04-10 16:22:15 +02:00
Ivan Habunek
e29d42e9ef
Use Twitch's client ID
Fetching access token with own client ID no longer works.

Everybody else in the world seems to be doing it:
https://github.com/search?p=2&q=kimne78kx3ncx6brgo4mv6wki5h1ko&type=Code
2020-04-10 16:21:10 +02:00