Commit graph

318 commits

Author SHA1 Message Date
Pierre Rudloff
ddc27a8a2c refactor: New PlaylistArchiveVideo class
Cleaner way to handle PlaylistArchiveStream info about videos
2019-04-21 00:56:12 +02:00
Pierre Rudloff
f9bf3b8d47 refactor: Use a StreamInterface for PlaylistArchiveStream
It is much cleaner
2019-04-21 00:35:43 +02:00
Pierre Rudloff
07261db27b fix: Don't call PlaylistArchiveStream parent constructor
Because it messes with the output buffer

Fixes #215
2019-04-20 11:27:13 +02:00
Pierre Rudloff
7ab4c55550 docs: Add comments to some tricky parts 2019-04-20 01:19:55 +02:00
Pierre Rudloff
4537b661e1 fix: Close playlist streams correctly 2019-04-20 00:37:49 +02:00
Pierre Rudloff
ac3b768b50 refactor(phpstan): Various code improvements 2019-03-31 16:25:17 +02:00
Pierre Rudloff
5835bd67a5 refactor(phpstan): Various code improvements 2019-03-30 18:21:45 +01:00
Pierre Rudloff
0ed788560c refactor: PlaylistArchiveStream should call parent constructor 2019-03-30 18:10:51 +01:00
Pierre Rudloff
9322bd5f14 style(StyleCI): Lint PHP 2019-01-06 17:00:12 +01:00
Pierre Rudloff
c6cf05f8ec refactor: Move app name to a config variable
See #205
2019-01-06 16:59:16 +01:00
Pierre Rudloff
59aeb753ed feat: Add support for Arabic locale 2018-12-07 18:19:00 +01:00
dadosch
dcd0237262 add german translation files to Grunt, LocaleManager 2018-10-01 13:55:17 +02:00
Pierre Rudloff
fb90545d92 feat: Add STREAM environment variable so stream mode can be enabled on Heroku
See #178
2018-07-06 10:36:53 +02:00
Pierre Rudloff
cb7c21164b refactor: Simplify getAvconvProcess() 2018-07-03 20:09:45 +02:00
Pierre Rudloff
f1cf0a2cdc feat: Add a way to trim the audio 2018-07-03 19:47:35 +02:00
Pierre Rudloff
26a5380f45 fix: Always load the UTF-8 locale variant when possible 2018-05-28 12:00:27 +02:00
Pierre Rudloff
edf4d4644d fix: Fix downloading a playlist as a TAR archive
This is the only time where youtube-dl returning an empty URL is not a problem.
2018-05-23 22:38:45 +02:00
Pierre Rudloff
17b9185e53 fix: Throw an error when trying to convert a playlist 2018-05-23 21:50:07 +02:00
Pierre Rudloff
647eed9db0 fix: Run youtube-dl with --no-playlist
Fixes #172
2018-05-23 21:43:34 +02:00
Pierre Rudloff
2b316d4e8d fix: Throw an exception when trying to download DASH with ffmpeg
Fallback to default format when we can't download bestaudio

Fixes #165
2018-05-01 16:33:44 +02:00
Pierre Rudloff
003452909a feat: Add path to "Can't find avconv" error
See #109
2018-02-21 18:55:12 +01:00
Pierre Rudloff
b27fa518c9 feat: Add youtube-dl exit code to the exceptions 2018-02-06 19:20:56 +01:00
Pierre Rudloff
5a527373bd style: throw is not a function 2018-02-06 19:11:57 +01:00
Pierre Rudloff
04fe43a1ca style: Declare imported classes at the top of the file 2018-02-05 17:16:41 +01:00
Pierre Rudloff
986dad5100 feat: Make strings in PHP files translatable
Meaningful strings are now parsed through the getext() function and the "composer update-locales"
script now parses PHP files.

Fixes #143
2018-01-26 11:37:56 +01:00
Pierre Rudloff
9ec3194c5e fix: Don't set QT_QPA_PLATFORM
It looks like it not needed with the static build and it causes troubles on Windows
2018-01-25 16:08:00 +01:00
Pierre Rudloff
397bbf96ff style: Lint
Changes suggested by StyleCI
2018-01-25 15:13:13 +01:00
Pierre Rudloff
e36e98e47a feat: New phantomjsDir option
This is used by the openload extractor

We also add to update youtube-dl to 2018.01.21 in order for the extractor to work correctly.
Fixes #146
2018-01-25 15:10:16 +01:00
Pierre Rudloff
4972c8ab8e feat: Add a new convertAdvanced option
It allows user to convert videos to several other audio/video formats

Fixes #148
2018-01-24 23:31:21 +01:00
Pierre Rudloff
ed533da6d4 New environment variable: AUDIO_BITRATE
Refactor environment variables code
2018-01-06 18:07:24 +01:00
Pierre Rudloff
9a7ab89286 Remove outdated list of options 2018-01-06 17:46:49 +01:00
Pierre Rudloff
e7c5037fa9 New (empty) portuguese translation 2018-01-02 16:47:48 +01:00
Pierre Rudloff
fd8e6255ef Add missing doc 2017-12-24 01:13:48 +01:00
Pierre Rudloff
c53f5c0b31 youtube-dl process needs to inherit environment variables (fixes #145) 2017-12-23 17:54:14 +01:00
Pierre Rudloff
0c53a95d30 Undefined variable 2017-12-23 16:04:55 +01:00
Pierre Rudloff
3b7cc9e64b We don't need process-builder-chain anymore 2017-12-23 15:17:47 +01:00
Pierre Rudloff
f8c8935b4c Use ffmpeg instead of rtmpdump 2017-12-23 15:14:43 +01:00
Pierre Rudloff
7940446af3 Lint 2017-12-23 14:37:29 +01:00
Pierre Rudloff
4c33c309a0 ProcessBuilder is deprecated (fixes #144) 2017-12-23 14:35:14 +01:00
Pierre Rudloff
17df0b63cb Document exceptions in VideoDownload 2017-12-19 15:22:24 +01:00
Pierre Rudloff
8c9c35b673 Lint 2017-12-09 23:57:21 +01:00
Pierre Rudloff
8c0ed9d9f4 Don't set ffmpeg user agent when it is reading from a pipe 2017-12-09 23:56:34 +01:00
Pierre Rudloff
959b141282 Add a setting that controls ffmpeg verbosity
Don't display ffmpeg errors in tests
2017-12-09 23:16:48 +01:00
Pierre Rudloff
4ae585eef1 Output ffmpeg errors to STDERR (fixes #140) 2017-12-09 22:22:07 +01:00
Pierre Rudloff
0bc5120751 Cleaner way to add a pipe 2017-12-05 21:12:59 +01:00
Pierre Rudloff
47789f8f8d Check that PlaylistArchiveStream::stream_read returns a string 2017-12-05 19:42:52 +01:00
Pierre Rudloff
d35b43dc17 popen can also return false 2017-12-05 15:56:34 +01:00
Pierre Rudloff
c3719f68e5 Add type checks in PlaylistArchiveStream 2017-12-05 15:49:13 +01:00
Pierre Rudloff
6b73026194 Fix cookie settings in tests 2017-12-05 15:43:35 +01:00
Pierre Rudloff
31576056c7 Fix types in docblock 2017-11-12 16:37:33 +01:00
Pierre Rudloff
21aedb08f0 Remove useless argument 2017-11-12 16:34:14 +01:00
Pierre Rudloff
dcec7115bc Check that Python can be executed 2017-11-12 15:14:59 +01:00
Pierre Rudloff
383ffca6d4 -user-agent has been replaced by -user_agent in ffmpeg 2017-11-12 15:05:47 +01:00
Pierre Rudloff
2432a06c1b Make tests run on Windows (fixes #137)
Use AppVeyor to run tests
2017-11-11 17:48:05 +01:00
Pierre Rudloff
600c8757e9 Lint 2017-11-10 23:52:04 +01:00
Pierre Rudloff
fd2a4d8745 Add an option to set the MP3 bitrate when converting (fixes #113) 2017-11-10 23:50:17 +01:00
Pierre Rudloff
8848a8dbf3 Improve LocaleMiddlewareTest
Add a way to unset the current locale
2017-11-10 12:18:20 +01:00
Pierre Rudloff
d3988503d5 Fix PhantomJS crash with the openload extractor (see #132) 2017-11-01 23:02:19 +01:00
Pierre Rudloff
0a2971399b Lint 2017-10-29 23:21:13 +01:00
Pierre Rudloff
09a1aa1422 It seems country() can return an array too 2017-10-26 11:03:30 +02:00
Pierre Rudloff
a665422e53 Merge branch 'master' into develop 2017-10-12 23:49:51 +02:00
Pierre Rudloff
e315d602f2 Hotfix: detect installed UTF-8 locales 2017-10-12 23:28:54 +02:00
Pierre Rudloff
b0c4963ac8 Don't use anonymous functions
Added some missing doc
2017-10-02 20:31:56 +02:00
Pierre Rudloff
092f139d96 New Spanish translation 2017-09-24 12:44:04 +02:00
Pierre Rudloff
480271a45e Don't include credentials in URLs (fixes #118) 2017-07-05 21:55:58 +02:00
Pierre Rudloff
4343edcdbb Merge branch 'master' into develop 2017-07-03 10:40:13 +02:00
Pierre Rudloff
b4f0cf7a38 Use HttpOnly session cookies 2017-07-03 10:35:28 +02:00
Pierre Rudloff
b14df412c1 Only display locales that are installed on the system 2017-06-01 23:40:36 +02:00
Pierre Rudloff
2add291023 Use emoji instead of SVG flags 2017-05-31 16:26:00 +02:00
Pierre Rudloff
68525c9dd8 We don't need to call sessionSegment->get() twice 2017-05-31 00:51:11 +02:00
Pierre Rudloff
0a66dce2b8 More test coverage
Run youtube-dl with --restrict-filenames in order to avoid issues when testing against different locales
2017-05-31 00:48:50 +02:00
Pierre Rudloff
dcface7775 Lint 2017-05-30 23:50:42 +02:00
Pierre Rudloff
90dc6f4478 Display each locale in its own language 2017-05-30 23:49:49 +02:00
Pierre Rudloff
3ead8dd458 Undeclared properties 2017-05-30 23:49:38 +02:00
Pierre Rudloff
433a580d64 Fix LocaleMiddleware tests 2017-05-30 23:41:26 +02:00
Pierre Rudloff
0f80cbd333 Improve locale handling 2017-05-30 23:31:12 +02:00
Pierre Rudloff
b4dd0aeb29 Basic locale switcher 2017-05-30 22:21:27 +02:00
Pierre Rudloff
ac4bca35a3 Lint 2017-05-29 21:13:10 +02:00
Pierre Rudloff
68b2cca899 Detect user locale 2017-05-29 21:11:59 +02:00
Pierre Rudloff
e8ea411089 Don't lint PlaylistArchiveStream (see https://github.com/squizlabs/PHP_CodeSniffer/issues/1003) 2017-05-19 14:30:00 +02:00
Pierre Rudloff
f9203706f7 Cleanup root folder (fixes #110) 2017-05-15 07:25:14 +02:00
Pierre Rudloff
c1c6c2dd97 Merge branch 'master' into develop 2017-05-14 23:06:31 +02:00
Pierre Rudloff
fed425fce3 Use middleware instead of the noscheme workaround in order to make HTTPS work behind a reverse-proxy 2017-05-14 22:24:39 +02:00
Pierre Rudloff
4810c045a4 Lint 2017-05-14 00:54:47 +02:00
Pierre Rudloff
a89b338060 Improve the way we test if a command can be ran (see #109) 2017-05-14 00:52:59 +02:00
Pierre Rudloff
82a1d96c3e Add missing class hints 2017-05-05 01:51:28 +02:00
Pierre Rudloff
631f09529f Fix docblocks 2017-05-05 00:07:56 +02:00
Pierre Rudloff
d7927fc442 Download Tar archives from playlists 2017-05-04 23:52:30 +02:00
Pierre Rudloff
00d2f0e199 getAvconvMp3Process should return a Process 2017-05-02 11:20:36 +02:00
Pierre Rudloff
6651b45545 Use --flat-playlist to get playlists more efficiently 2017-04-28 14:43:20 +02:00
Pierre Rudloff
df2de166cb Accept any PSR container in ViewFactory 2017-04-26 01:08:42 +02:00
Pierre Rudloff
00407a2f60 Lint 2017-04-26 00:52:05 +02:00
Pierre Rudloff
0e7aaea9fc Move Smarty view creation to ViewFactory class 2017-04-26 00:50:19 +02:00
Pierre Rudloff
453bf6e4c5 More precise doc for getURL() 2017-04-25 14:55:21 +02:00
Pierre Rudloff
5180577b99 Ignore errors in playlists
(see https://github.com/rg3/youtube-dl/issues/12835)
2017-04-25 14:08:29 +02:00
Pierre Rudloff
e9e0f6ca81 Remove useless comment 2017-04-25 11:08:34 +02:00
Pierre Rudloff
43cbd4f6fe Cleanup playlists 2017-04-25 02:20:15 +02:00
Pierre Rudloff
3f053d9eed Merge branch 'develop' of https://github.com/hukoeth/alltube into feature/playlist
Conflicts:
	templates/video.tpl
2017-04-25 01:16:20 +02:00
Pierre Rudloff
b4be0ead6a Lint 2017-04-25 00:41:49 +02:00
Pierre Rudloff
e6bbe54474 New remux feature (fixes #103) 2017-04-25 00:40:24 +02:00
Pierre Rudloff
b80b9c7b2e Remove dependency on curl (fixes #105)
avconv/ffmpeg now downloads the video directly when converting
2017-04-24 19:16:38 +02:00
Pierre Rudloff
fb3834296a Make RTMP videos work in stream mode (fixes #104) 2017-04-24 18:31:14 +02:00
Pierre Rudloff
e4f061e6c3 Allow empty config filename (= default) 2017-04-24 17:56:07 +02:00
Uli Koeth
03cf506132 Handle download lists part 1 2017-03-07 17:24:34 +01:00
Pierre Rudloff
f309fc7033 Lint 2017-01-16 12:11:37 +01:00
Pierre Rudloff
4e1c1ca953 Add a stream parameter in config (fixes #24 and #39) 2017-01-16 12:02:21 +01:00
Pierre Rudloff
8e6c33c260 Merge branch 'develop' into feature/stream
Conflicts:
	composer.lock
2017-01-16 11:06:39 +01:00
Pierre Rudloff
3a1d0c4bc7 Lint 2017-01-10 23:39:58 +01:00
Pierre Rudloff
9f112c15b9 Add an uglyUrls option that disables URL rewriting (fixes #88) 2017-01-10 23:37:29 +01:00
Pierre Rudloff
f27bb3bbb9 Merge branch 'develop' into feature/stream 2016-12-27 00:02:27 +01:00
Pierre Rudloff
5aad3abc5d Display error when trying to convert a M3U8 file (fixes #83) 2016-12-27 00:01:42 +01:00
Pierre Rudloff
20820d90f0 Missing doc 2016-12-26 15:58:07 +01:00
Pierre Rudloff
3f96adb255 Lint 2016-12-26 15:53:03 +01:00
Pierre Rudloff
28a8addbf1 Experimental support for M3U streams 2016-12-26 15:50:26 +01:00
Pierre Rudloff
02e58c239f Allow Python to be set from environment variable 2016-12-22 13:46:31 +01:00
Pierre Rudloff
d4f5f93c2d Lint 2016-12-05 13:12:27 +01:00
Pierre Rudloff
e8a8622131 Undefined variable 2016-10-27 01:27:55 +02:00
Pierre Rudloff
d74ec5d1c4 Refactor listExtractors() 2016-10-27 01:22:30 +02:00
Pierre Rudloff
efe0b97d7f Support audio conversion of password protected videos 2016-10-20 23:13:37 +02:00
Pierre Rudloff
57a0424b6f Applied fixes from StyleCI 2016-10-20 21:03:13 +00:00
Pierre Rudloff
e34b01f2c4 Add support for password protected videos 2016-10-20 23:01:31 +02:00
Pierre Rudloff
cb7dad19dc Throw exception is Python is missing 2016-10-18 10:15:09 +02:00
Pierre Rudloff
b6f8e585be Add a way to pass a Config object to VideoDownload 2016-10-18 10:03:50 +02:00
Pierre Rudloff
a3dee17b2a Move YAML parsing to Config::getInstance()
Make Config::__construct() public
2016-10-18 09:54:08 +02:00
Pierre Rudloff
13be997ddb Throw exception if youtube-dl can't be found 2016-10-18 09:27:28 +02:00
Pierre Rudloff
21967b77fb Applied fixes from StyleCI 2016-10-15 14:20:54 +00:00
Pierre Rudloff
7d930d5083 Code refactoring 2016-10-15 16:18:04 +02:00
Pierre Rudloff
b4d3b9d88b Duplicate code 2016-10-14 19:16:52 +02:00
Pierre Rudloff
fdc746a69d Applied fixes from StyleCI 2016-10-14 17:02:14 +00:00
Pierre Rudloff
b0cdbd41ed Refactor code 2016-10-14 19:01:51 +02:00
Pierre Rudloff
5d9a6873b6 Applied fixes from StyleCI 2016-10-14 00:40:57 +00:00
Pierre Rudloff
2b0f0a6740 Missing doc comments 2016-10-14 02:40:33 +02:00
Pierre Rudloff
9ad024888a Refactor getter classes 2016-10-13 16:40:19 +02:00
Pierre Rudloff
6db29d325e Undeclared class properties 2016-10-10 21:32:19 +02:00
Pierre Rudloff
1b5054159c Cast bool because getenv always returns string 2016-10-10 21:30:07 +02:00
Pierre Rudloff
13c3366e9d Applied fixes from StyleCI 2016-09-07 22:28:28 +00:00
Pierre Rudloff
6df1eccb9e Missing docs 2016-09-06 00:36:47 +02:00
Pierre Rudloff
96a98ae846 Don't concatenate in function declaration 2016-08-19 01:13:51 +02:00
Pierre Rudloff
1400f3e86a Use separate config file for tests 2016-08-19 01:07:51 +02:00
Pierre Rudloff
fe6ce8409a Remove empty list item in extractors lists 2016-08-06 01:46:29 +02:00
Pierre Rudloff
d414e67d31 Cleanup doc 2016-08-01 13:29:13 +02:00
Pierre Rudloff
8c8c36acee Add PHPCS as a dependency 2016-08-01 03:16:33 +02:00
Pierre Rudloff
37c223638d Add rtmp tests 2016-07-30 14:01:00 +02:00
Pierre Rudloff
782d4e124e Destroy Config instance after each test 2016-07-30 12:40:49 +02:00
Pierre Rudloff
e3cec201ee New tests 2016-07-30 00:47:46 +02:00
Pierre Rudloff
26388ea1b4 Move all logic to the VideoDownload class 2016-07-30 00:15:17 +02:00
Pierre Rudloff
ae241a9812 curl_params should never be null (fixes #62) 2016-07-27 13:11:38 +02:00
Pierre Rudloff
57a1674f4b Use local rtmpdump 2016-04-12 21:13:43 +02:00
Pierre Rudloff
b787b6d3a2 Use ProcessBuilder to create commands
Fix rtmp audio
2016-04-12 11:49:50 +02:00
Pierre Rudloff
724f3bb31a Download only one file 2016-04-11 22:41:25 +02:00
Pierre Rudloff
c6c2214567 Remove unused functions 2016-04-10 23:57:19 +02:00
Pierre Rudloff
f14bec35ea getURL() should not return an array 2016-04-08 20:08:04 +02:00
Pierre Rudloff
f7f0a7b7f4 Use ProcessBuilder to build commands (fixes #51) 2016-04-08 19:37:59 +02:00
Pierre Rudloff
11e8243443 Don't use static functions 2016-04-08 19:06:41 +02:00
Pierre Rudloff
1d83c5c0b3 Use symfony/process (fixes #50) 2016-04-01 00:42:28 +02:00
Pierre Rudloff
46032e1ee1 Use PSR-2 2016-03-30 01:49:08 +02:00
Pierre Rudloff
cf9e90ce0d Lint 2016-02-28 23:04:53 +01:00
Pierre Rudloff
c73be59a52 Always use custom arguments (fixes #45)
Custom arguments for curl
2016-02-28 23:00:33 +01:00
Pierre Rudloff
4e0f61f3f3 Escape shell commands 2016-01-13 19:06:33 +01:00
Pierre Rudloff
6bb36a3212 Check if config file exists 2015-12-19 00:58:14 +01:00
Pierre Rudloff
73da787f77 Compatibility with symfony/yaml 3 2015-12-19 00:53:05 +01:00
Pierre Rudloff
c74623a9dd Declare ffmpeg binary in composer.json 2015-11-21 20:54:38 +01:00
Pierre Rudloff
cafb75a9c1 Use Composer to download ffmpeg (fixes #38) 2015-11-21 20:44:32 +01:00
Pierre Rudloff
bfb99370d7 Undefined array 2015-10-31 15:57:36 +01:00
Pierre Rudloff
7da7fcbbe4 No concatenation in class properties 2015-10-31 15:56:00 +01:00
Pierre Rudloff
0974bf360c Lint 2015-10-31 15:50:32 +01:00
Pierre Rudloff
5249df52e6 YAML config file 2015-10-31 15:42:36 +01:00
Pierre Rudloff
f85f07a77b PSR4 autoload (fixes #32) 2015-10-29 20:43:43 +01:00