1
0
mirror of https://github.com/spaam/svtplay-dl.git synced 2024-11-30 15:14:14 +01:00
Commit Graph

260 Commits

Author SHA1 Message Date
Johan Andersson
559e950e68 getmedia: in some cases after_case is None
fixed: #974
2018-09-24 00:27:24 +02:00
Harald Gustafsson
fd0171d257 New option to only download videos that are published on or after a certain date. Relies on the new metadata extraction. When metadata is missing defaults to download. Useful for channels that don't publish episodes in order e.g. barnkanalen. 2018-09-05 21:43:52 +02:00
Harald Gustafsson
073f26e618 Added broadcast/publishing datetime to metadata extraction and NFO file creation. 2018-09-05 21:43:52 +02:00
Harald Gustafsson
4388e57112 Move the new metadata based thumbnail download into a reusable class instead of directly in Svtplay (requires that the service extract thumbnail urls during parsing of the video info into the self.output variable and the keys 'showthumbnailurl' and 'episodethumbnailurl'). Change OpenGraphThumbMixin to use the new download_thumbnails which makes correct filenames. Removed the old download_thumbnail. 2018-09-05 21:43:52 +02:00
Harald Gustafsson
fc71a8d8e4 flake8 fixes. 2018-09-05 21:43:52 +02:00
Harald Gustafsson
c15d7607eb Create NFO files with the extracted metadata. TVshows get a tvshow.nfo file as well. 2018-09-05 21:43:52 +02:00
Harald Gustafsson
184f79a377 Option to automatically create a subfolder for tvshows, named as the show title. When not a series will use a subfolder titled movies. 2018-09-05 21:43:52 +02:00
Harald Gustafsson
bf0e38a6f9 Working thumbnail download. Used by svtplay and barnkanalen, downloads both episode and show thumbnails. 2018-09-05 21:43:52 +02:00
Harald Gustafsson
71b40f975a Fix bug that get_thumbnail could never be called, due to overwrite of the stream variable. 2018-09-05 21:43:52 +02:00
Johan Andersson
a6e2bae955 utils.stream: remove some debug prints 2018-09-05 16:40:56 +02:00
Johan Andersson
d693e16596 get_multiple_media: this should be config 2018-07-16 21:21:18 +02:00
Johan Andersson
e377ee7386 output: --force should work on subtitles too 2018-07-05 01:26:43 +02:00
Johan Andersson
a0ab26a939 utilis.http: move get_full_url from hls to http 2018-07-05 01:26:43 +02:00
Johan Andersson
d61e5793e6 use which from stdlib instead our own version 2018-07-05 01:26:43 +02:00
Johan Andersson
8b54c05ca8 getmedia: use logging instead of log 2018-06-24 16:14:57 +02:00
Johan Andersson
138995925e _formatname: check if we have season in output 2018-06-03 18:03:09 +02:00
Johan Andersson
2a94b927d0 _formatname: in some cases we dont have the episode and only season.
we want to have like "name.s01.new.stuff.service.id.ext"
its better than "name.new.stuff.service.id.ext"
2018-06-03 15:48:48 +02:00
Johan Andersson
fa3b16bfcd get_one_media: use logging instead of log. 2018-06-03 12:49:49 +02:00
Johan Andersson
276b55dc8c get_one_media: we get the config nowadays 2018-06-03 00:12:15 +02:00
Johan Andersson
12021ee355 get_one_media: dont try to run exclude on exceptions 2018-05-31 01:30:25 +02:00
Johan Andersson
d69244d39c merge: dont try to merge when new is None 2018-05-26 01:26:30 +02:00
Johan Andersson
526c6bbdbe get_one_media: always remux hls
fixes #903
2018-05-25 22:49:05 +02:00
Johan Andersson
bbf2f82b79 fetcher: make name a property 2018-05-25 22:47:26 +02:00
Johan Andersson
dea461c198 get_one_media: instead of using hardcoded name of fetcher check for audio 2018-05-24 21:18:14 +02:00
Johan Andersson
30f09b4bad output: we can have separate a/v stream in .ts but there is no extension to separate them
fixes: #902
2018-05-24 21:15:14 +02:00
Johan Andersson
b77b78b121 output: dont try to check empty values 2018-05-21 23:37:00 +02:00
Johan Andersson
8b340bb103 get_media: use config inside of stream 2018-05-20 21:09:49 +02:00
Johan Andersson
a8fa7a8aa3 get_media: we already have this code in parser 2018-05-20 21:05:24 +02:00
Johan Andersson
2605f4ff94 output.formatname: this should be path 2018-05-20 20:51:34 +02:00
Johan Andersson
600afef12b parser.setup_default: add missing default values 2018-05-20 20:29:16 +02:00
Johan Andersson
c41dba7077 parser.merge: rewrite and dont update items with std values 2018-05-20 20:28:49 +02:00
Johan Andersson
2e0bf58a3f parser: this can be on one line 2018-05-20 19:05:35 +02:00
Johan Andersson
e97b104573 unused imports 2018-05-20 19:05:17 +02:00
Johan Andersson
6dfdc8c6c0 Support for config files
this will search for config file in
unix: ~/.svtplay-dl.yaml
windows: %APPDATA%\svtplay-dl\svtplay-dl.yaml
2018-05-20 18:21:40 +02:00
Johan Andersson
2543ed7f46 move some special config values to parser 2018-05-20 13:16:00 +02:00
Johan Andersson
d2776c3b12 Remove some debug prints 2018-05-13 13:18:36 +02:00
Johan Andersson
8192fe025d getmedia: right import path to which 2018-05-13 13:18:36 +02:00
Johan Andersson
836084f1fb output: user should be able to set its own output name 2018-05-13 13:18:36 +02:00
Johan Andersson
9a2aafefda parser: set output to None 2018-05-13 13:18:36 +02:00
Johan Andersson
335ff16c8c output: fix detection of already downloaded files 2018-05-13 13:09:27 +02:00
Johan Andersson
bf21419afd output.formatname: this should be ints 2018-05-13 13:09:27 +02:00
Johan Andersson
850ec4612d getmedia: do exclude inside of the streams loop. 2018-05-13 13:09:25 +02:00
Johan Andersson
d3841e17da options to commit 2018-05-13 13:08:24 +02:00
Johan Andersson
f300e24ca3 more options to config replaces 2018-05-13 13:07:34 +02:00
Johan Andersson
ca49366002 Options to config 2018-05-13 13:06:45 +02:00
Johan Andersson
28dcc90d7e flake8 fixes 2018-05-13 12:10:19 +02:00
Johan Andersson
a051418dab utils: move functions out of init to its own files. 2018-05-13 12:10:19 +02:00
Johan Andersson
8f126c3d49 flake8 add new line end of file 2018-05-13 12:09:27 +02:00
Johan Andersson
5d1f86d8fc flake8 fixes 2018-05-13 12:09:27 +02:00
Johan Andersson
903a4ae71d No need for utils.io 2018-05-13 12:09:27 +02:00
Johan Andersson
7e351530e9 No need for utils.urllib anymore 2018-05-13 12:09:27 +02:00
Johan Andersson
a6c4de8d9d flake fix 2018-05-13 12:09:27 +02:00
Johan Andersson
b82831df03 Move services to its own file 2018-05-13 12:09:27 +02:00
Johan Andersson
d496955cb4 Move Options to parser? 2018-05-13 12:09:27 +02:00
Johan Andersson
03c8b68bb6 Move get_* to its own file 2018-05-13 12:09:27 +02:00
Johan Andersson
3da6728ae3 move mergeparseroption to parser.py 2018-05-13 12:08:11 +02:00
Johan Andersson
c135ed3593 move parser to its own file 2018-05-13 12:08:11 +02:00
Johan Andersson
b8c1163852 remove a bunch of is_py. time for py3. 2018-05-13 12:08:11 +02:00
Johan Andersson
fbb511981e select_quality: this should be get and not pop 2018-03-10 10:09:26 +01:00
Johan Andersson
aff4a0716a select_quality: Sometimes cookies is not present in the stream
fixes: #858
2018-03-10 09:56:32 +01:00
Johan Andersson
0eaf0ec8f8 don't hide import errors 2018-03-09 22:53:33 +01:00
Johan Andersson
24213562ad postprocess: try to detect the bad audio track and skip it
this will only work for files with one audio track.
i have never seen file with several
fixes #814
2018-03-04 11:41:22 +01:00
dalgr
848dc12a3a Fix for issue 833, not abble to download hds streams 2018-03-04 11:26:30 +01:00
dalgr
da5ec62241 Improve preformance of hls parser, skip checking all posible videos 2018-02-04 20:40:25 +01:00
Johan Andersson
7b6ceb4737 Flake8 fixes 2018-01-30 20:17:33 +01:00
dalgr
709618068e Add default value for 'hls_time_stamp', Add live protocol prio 2018-01-23 19:01:40 +01:00
Robert Foss
c26bb3ccc5 Add proxy support
This feature utilises the proxy support of the requests module, and
has been tested with SOCKS5 through a SSH tunnel, and has been
verified to be working.

Signed-off-by: Robert Foss <robert.foss@memcpy.io>
2017-11-26 18:11:41 +01:00
dalgr
328ad0cff9 Change 'subprocess.check_call' to 'subprocess.check_output' in ''utils.output' 2017-10-10 22:25:09 +02:00
dalgr
bbc8e50352 retries with requests, for all 'self.http.request' 2017-10-09 20:32:16 +02:00
Johan Andersson
f7e6d2e77c utils: remove the try except from request.
this might cause some other issue. we will see.
2017-09-17 19:43:14 +02:00
Johan Andersson
fa590117de fetcher: handle errors from parsing playlists 2016-10-16 19:35:38 +02:00
Johan Andersson
23814a9bf5 select_quality: fix crash while using range
fixes: #392
2016-05-14 11:17:34 +02:00
Johan Andersson
0fe57c52a2 select_quality: support for range to -q
this is similar to -Q  but instead its -q 2000,3000  . it will choose one in between
fixes: #372
2016-04-26 23:48:12 +02:00
Olof Johansson
5393dc1929 Fix various pylint warnings
None of these were any real problems, but easier to spot real issues if pylint
is a bit quieter. Apart from the pylint overrides being sprinkled over the code
base, this commit also fixes occurences of the following issues:

 - logging-not-lazy
 - logging-format-interpolation
 - unused-import
 - unused-variable
2016-04-03 19:06:45 +02:00
Olof Johansson
fa66beff9b select_quality: Simplify and add comments 2016-03-31 20:33:44 +02:00
Olof Johansson
f59207302d prio_streams: Rename to protocol_prio 2016-03-31 20:33:44 +02:00
Olof Johansson
84ca17a14c select_quality: Replace sys.exits with UIExceptions 2016-03-31 20:19:44 +02:00
Olof Johansson
dad2790d9e select_quality: Filter out unwanted protocols before bitrate
It was easily possible to end up in a state where the bitrate prioritization
wanted a bitrate only avaiable via protocols outside of our set of accepted
protocols, like trying to disable dash for svtplay. By doing the protocol
filtering first, we end up only considering "valid" bitrates.
2016-03-31 20:19:44 +02:00
Olof Johansson
9d2054b4bc select_quality: handle when no requested proto is available
Needs to widen the scope of the try: catch block in svtplay_dl/__init__.py
a little, since select_quality can now also fire away UIExceptions.
2016-03-31 20:19:44 +02:00
Olof Johansson
a6e05e4502 prio_streams: make protocol_prio param mandatory
Move the responsibility for extracting it to select_quality (prio_streams'
caller). This makes the prio_streams function simpler.

And at the same time, move the default protocol_prio list to global scope. This
can for instance be used for improved error reporting.
2016-03-31 20:19:44 +02:00
Olof Johansson
b6541100a3 select_quality: fix argument parsing
Instead of parsing the argument to --stream-prio as a comma separated listed, it
was accidentally handled as a space separated list.
2016-03-31 20:19:44 +02:00
Johan Andersson
e523141a04 support for dash streams 2016-03-26 21:38:31 +01:00
Johan Andersson
4c8cb7c5d2 which: detect if you have the app in your cwd 2016-03-22 23:31:07 +01:00
Johan Andersson
bb861a4062 utils: implement a function to find program in path 2016-03-22 22:28:07 +01:00
Johan Andersson
8da9cab05b filenamify: dont remove the char before and after - 2016-03-17 16:57:12 +01:00
Johan Andersson
05b245dfaa filenamify: replace .-. with only - 2016-03-16 22:51:19 +01:00
Olof Johansson
4740a42050 prio_streams: remove selected from parameters
Moving the responsibility for filtering out "unwanted" bitrates,
as opposed to just present a prioritized list, makes writing
unit tests easier.
2016-03-13 16:56:51 +01:00
Olof Johansson
fe23b971a5 prio_streams: remove options from parameters
Instead, pass the protocol prio list; this was the only reason
we used to pass options. Removing options makes it easier to
unit test.
2016-03-13 16:56:51 +01:00
Olof Johansson
af298e86d9 prio_streams: fix issues with prioritization
Previously, prio_streams didn't correctly account for the protocol,
and we ended up with HDS videos by default, instead of HLS as exected,
because HDS sorts before HLS alphabetically.

Fixes #349
2016-03-13 16:56:51 +01:00
Johan Andersson
f047331b8c pylint fixes 2016-02-29 23:19:01 +01:00
Johan Andersson
3f04ae2a56 swap place on py2 and py3 checks 2016-01-27 19:49:38 +01:00
Johan Andersson
f4b32cb1df Merge pull request #326 from olof/filenamify_improvements
filenamify: disallow shell metachars + improvements
2016-01-10 20:36:07 +01:00
Olof Johansson
7803472713 utils: specify utf-8 encoding in editor modelines 2016-01-10 15:03:45 +01:00
Olof Johansson
f4005505d9 filenamify: Simplify and add unittests 2016-01-10 15:03:45 +01:00
Olof Johansson
9689dc78b0 filenamify: Make title regexp stricter
The - character is a range operator when used in character classes
(e.g. [0-9]). In our case, we want it to match a literal - (which it
coindicentally does, since it's within the range [ -.]. But we don't
want it to match other characters within this range.
2016-01-10 14:33:22 +01:00
Johan Andersson
9dcf203923 option to select which type of streams you prefer
fixes #321
2016-01-03 16:15:27 +01:00
Johan Andersson
eb7bd48d5a utils.http: support for custom headers
fixes: #209
2015-12-26 13:38:36 +01:00
Johan Andersson
ff0ce41b72 utils: update the user-agent 2015-12-26 13:35:55 +01:00
Johan Andersson
ef74148003 Option to not verify ssl certificate 2015-12-26 12:14:14 +01:00
Olof Johansson
270a64c6af Fix docstring after the filenamify changes (f3aba4e59)
This caused the test suite to fail because of doctest.
2015-10-25 19:49:03 +01:00
Johan Andersson
c453f7c48b filenamify: remove “ and ‘
fix #289
2015-10-25 01:29:04 +02:00
Johan Andersson
43dd5f4b2d http.request: dont send headers twice 2015-10-24 21:18:23 +02:00
Johan Andersson
f3aba4e598 filenamify: replace with dot instead of dash 2015-10-19 10:37:15 +02:00
Johan Andersson
64b2ac0240 utils.request: send chrome user-agent instead of the default one 2015-10-04 14:33:08 +02:00
Johan Andersson
dc2cc0294c pip8. expected 2 lines found 1 2015-09-15 20:10:32 +02:00
Johan Andersson
29d00920ad utils: show an error message if requests is not found 2015-09-13 22:05:17 +02:00
Johan Andersson
80a55e2615 utils: unused import 2015-09-13 22:04:47 +02:00
Johan Andersson
1057f800b0 request: only show what request we are getting. 2015-09-07 20:13:36 +02:00
Johan Andersson
06472b5012 utils: remove unused imports 2015-08-31 20:35:23 +02:00
Johan Andersson
ea70ec30bf urllib: remove unused imports 2015-08-31 20:35:05 +02:00
Johan Andersson
331de0a70f replace self.http.get with our own function with debug info 2015-08-31 19:45:15 +02:00
Johan Andersson
a1e987348d download_thumbernail: use request instead 2015-08-30 12:04:49 +02:00
Johan Andersson
f416a17572 ensure_unicode: remove extra space 2015-08-30 00:08:24 +02:00
Johan Andersson
84ee181f5b adding request support.
still need some more work
2015-08-30 00:06:20 +02:00
Johan Andersson
679f40cf35 io: use StringIO instead of BytesIO 2015-04-28 22:58:02 +02:00
Anders Waldenborg
101354ed7e Add urljoin to svtplay_dl.utils.urllib 2015-03-07 10:42:48 +01:00
Johan Andersson
8f89b00c5e unused imports 2015-01-25 14:41:29 +01:00
Johan Andersson
6a374ffa06 Move hdcore check to utils/get_http_data 2015-01-18 18:01:41 +01:00
Johan Andersson
b09b4c17f5 main: --list-quality option 2015-01-05 22:40:40 +01:00
Johan Andersson
d152e02d06 filenamify: dont remove dot 2014-12-28 13:57:11 +01:00
Johan Andersson
d7d8297811 pylint fixes 2014-12-26 02:04:29 +01:00
Johan Andersson
e273fd0abc get_http_data: send postdata in the argument for Request 2014-12-15 12:33:49 +01:00
Johan Andersson
67b3c8bb54 Rewrite http request handling. 2014-12-08 23:07:02 +01:00
Johan Andersson
e1e56773cb get_http_data: remove try-except-clause 2014-11-25 19:03:23 +01:00
Johan Andersson
1ce469e4f0 select_quality: in some cases we don’t know quality and return 0.
because of the 0 we then fail and show and error message when we shouldn’t.
this fixes #133
2014-09-28 23:32:57 +02:00
Olof Johansson
ad98867700 utils: ignore pylint import-error warning
This is a python3 fallback.
2014-07-22 10:19:10 +02:00
Johan Andersson
a52fbe6985 select_quality: move preferred option to get_one_media 2014-07-13 16:03:03 +02:00
Johan Andersson
d9b945bf9e select_quality: print the fetcher name after bitrate. 2014-07-13 15:12:06 +02:00
Johan Andersson
4b9b40c9f4 output: better progress width handling 2014-06-26 22:55:54 +02:00
Johan Andersson
e87c236c51 option to choose which download method is preferred. 2014-06-02 21:27:51 +02:00
Johan Andersson
2eb9af443a select_qualtiy: it wants ints. 2014-06-02 21:27:50 +02:00
Johan Andersson
a857f1d906 get_one_media: select quality 2014-06-02 21:27:50 +02:00
Johan Andersson
4e69ebdf39 utils: forgot to remove the subtiles from the old file 2014-06-02 21:27:49 +02:00
Johan Andersson
3dc633df12 subtitle: When we only see the name without extension, add .srt to it. 2014-03-21 21:01:00 +01:00
Johan Andersson
2cece32246 subtitle_sami: this fixes #74 2014-03-11 16:05:32 +01:00
Johan Andersson
81f1f49301 subtitle_json: fixing #73 2014-03-11 16:04:38 +01:00
Olof Johansson
e8dc4781db urllib: export quote (url encoding) 2014-02-08 17:10:58 +01:00
Johan Andersson
7010adc6e6 utils: use FIREFOX_UA in check_redirect 2014-01-25 23:53:09 +01:00
Anders Waldenborg
b1871b3834 Add --thumbnail
Names thumbnails as $basename.tbn (Hi xbmc!)
2014-01-25 22:57:50 +01:00
Anders Waldenborg
dcf4c1bd23 Add doctests for new functions in utils
The print call is there to make it py2/3 compatible (py2 adds u'' where py3 just adds '')
2014-01-25 22:57:49 +01:00
Anders Waldenborg
9d3ffd07d8 Fix reverse logic in io 2014-01-25 22:57:49 +01:00
Anders Waldenborg
d6ab73679e Improve title to filename conversion.
Does unicode NFD decomposition on the string before stripping non ascii chars.

This means that chars like 'ü' is decomposed into 'u' and '¨', which mean that
when non-ascii chars are dropped we will still keep the 'u'.

Fixes #60
2014-01-25 22:57:37 +01:00
Anders Waldenborg
712901cc8e Decode html entities in title tag 2014-01-25 13:01:01 +01:00
Anders Waldenborg
0671b2418e Display http request urls and time with --verbose 2014-01-25 13:01:01 +01:00
Johan Andersson
9345284547 Make pylint bit happier 2013-12-30 01:43:59 +01:00
Johan Andersson
cceb60f8b3 get_http_data: use space instead of tab one line 2013-12-30 01:37:13 +01:00
Johan Andersson
33bb2c5c13 Replace sys.version_info with pyX 2013-12-30 01:35:08 +01:00
Johan Andersson
4348b93167 subtitle_tt: urplay changed from dur till duration 2013-10-28 20:16:12 +01:00
Johan Andersson
8a72d889b8 subtitle_tt: make up an end time when it does not exists.
In some streams end time does not exists.
so we make our own from beginning + duration.
2013-09-15 00:28:23 +02:00
Johan Andersson
2bf02d1a2b utils: remove old comment 2013-08-15 16:36:38 +02:00