Commit graph

164 commits

Author SHA1 Message Date
Pierre Rudloff
1a6ff90eac feat: Split Youtube downloads in smaller chunks
Fixes #217
2019-04-22 20:20:04 +02:00
Pierre Rudloff
bba2087a55 style(styleci): Lint 2019-04-22 17:04:59 +02:00
Pierre Rudloff
1387d836dc refactor: New Session class
So that session is shared between classes and does not get overwritten
2019-04-22 17:03:54 +02:00
Pierre Rudloff
25f33bba56 refactor: Split FrontController into multiple classes
Closes #177
2019-04-22 16:51:48 +02:00
Pierre Rudloff
1df06f7c22 refactor: Use route names that make more sense 2019-04-22 15:31:51 +02:00
Pierre Rudloff
1edd623c7f fix: Enforce convert mode
So it can't be used by adding "&audio=on" manually
2019-04-21 23:16:27 +02:00
Pierre Rudloff
70475f83d4 feat: Add a way to convert an entire playlist
Closes #194
2019-04-21 22:56:43 +02:00
Pierre Rudloff
97a7830196 refactor: Reuse Video::getHttpResponse() where possible 2019-04-21 22:38:27 +02:00
Pierre Rudloff
e93ab7ed13 feat: Use ZIP files for playlist archives
It is more widely supported and could be later used for #194
2019-04-21 22:34:45 +02:00
Pierre Rudloff
226f1b8380 fix: Don't use the $url property
It is not reliable
2019-04-21 22:20:05 +02:00
Pierre Rudloff
61cb73dc59 refactor: Fix some types and unused variables 2019-04-21 19:51:16 +02:00
Pierre Rudloff
4c9af8ad1d refactor: New Video class
The news class provides a cleaner object-oriented logic

BREAKING CHANGE: The VideoDownload class has been removed and the Config constructor is now private
2019-04-21 18:30:02 +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
ac3b768b50 refactor(phpstan): Various code improvements 2019-03-31 16:25:17 +02:00
Pierre Rudloff
80b44af772 style: Clarify long conditions 2019-03-30 18:33:05 +01:00
Pierre Rudloff
f315343798 refactor: Cleanup best format logic
Reuse $defaultFormat everywhere instead of duplicating conditions
2019-03-27 00:25:02 +01:00
Pierre Rudloff
506584ceee fix: Specify allowed protocols explicitely
"^=http" also catches http_dash_segments
2019-03-24 15:13:01 +01:00
Pierre Rudloff
e90b9e3439 fix: Missing Smarty variable in some routes 2019-01-15 11:16:21 +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
5b7b101a8a refactor(FrontController): We don't need to set the filename twice 2018-12-28 20:01:46 +01:00
Pierre Rudloff
ecd5bf306a fixup! feat: Add support for HTTP range requests when stream mode is enabled 2018-09-18 18:52:56 +02:00
Pierre Rudloff
4cbc21de46 feat: Add support for HTTP range requests when stream mode is enabled
Fixes #192
2018-09-18 18:49:43 +02:00
Pierre Rudloff
9a688e931a fix: Check if the url GET parameter is empty 2018-08-13 10:05:38 +02:00
Pierre Rudloff
b8b6180609 feat: Allow Youtube-like URLs
Fixes #184
2018-08-04 15:47:22 +02:00
Pierre Rudloff
298848a2f1 fix: Remux mode should fall back to best format if bestvideo+bestaudio is not available 2018-07-05 17:05:12 +02:00
Pierre Rudloff
159ea245a8 fix: Undefined variables 2018-07-03 19:52:24 +02:00
Pierre Rudloff
f1cf0a2cdc feat: Add a way to trim the audio 2018-07-03 19:47:35 +02:00
Pierre Rudloff
1e4e6b52be fix: Set default format to "bestvideo+bestaudio" when remux mode is enabled
This fixes an issue on websites like Reddit that only server separate video/audio files

See #173
2018-06-03 18:27:37 +02:00
Pierre Rudloff
d398f9101e docs: Typo 2018-05-26 14:48:15 +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
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
74505cea57 feat: JSON API 2018-03-20 12:02:21 +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
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
3f325ddaae Missing property 2017-11-12 16:39:56 +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
095c1a92f0 Some HLS streams have "m3u8_native" as protocol value (see #133) 2017-11-02 16:26:10 +01:00
Pierre Rudloff
0a2971399b Lint 2017-10-29 23:21:13 +01:00
Pierre Rudloff
2b9914f1db Fix test coverage 2017-09-29 01:11:19 +02:00
Pierre Rudloff
480271a45e Don't include credentials in URLs (fixes #118) 2017-07-05 21:55:58 +02:00
Pierre Rudloff
a2dc71753e Rename Smarty variable to avoid confusion 2017-05-31 09:32:11 +02:00
Pierre Rudloff
3ead8dd458 Undeclared properties 2017-05-30 23:49:38 +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
1b4e96f5ef Refactor FrontController::getStream() 2017-05-05 00:25:08 +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
2d872ce652 Lint 2017-05-04 23:07:07 +02:00
Pierre Rudloff
a681804126 Don't use variables when we can use a Config object directly 2017-05-04 20:26:42 +02:00