I hope I didn't keep you guys waiting for too long :) Here's the 4.0 release, so much has been added thanks to everyone's great suggestions and even a couple contributions which I always love to see. The docker image now has 160k pulls! Crazy stuff, thank you all for your support.
Without further adieu, here's everything that's been added for v4.0:
New features
- Multi-user mode! Enable in the Main tab in the settings
- You can now create users with passwords to protect your instance and keep your downloaded files nice and separate
- Users of course have their own videos, subscriptions, playlists, etc.
- Permissions system with 'user' and 'admin' roles which have their own permissions. In addition, per-user permissions can override the role's permission
- Users and permissions are managed through the user management tab in settings
- Passwords are protected using bcrypt, so no need to worry about your passwords getting leaked
- Downloads manager!
- Use the hamburger menu to access the new downloads manager. Here you will see all your downloads, their progress, and additional info/errors if available
- Downloads are categorized per-device - Props to @nebula-it for this idea!
- Download progress for each video is now visible, even on the home page - Thanks @mjpmme for the suggestion!
- Arg modifier improvements
- Args in the arg modifier now appear as chips which are removable
- Args are under the hood delimited by a double comma
,,
to avoid parsing errors, but the arg modifier takes care of this under the hood - Descriptions for args also appear as a tooltip for the chips
- You can now skip using the adder and type your args in directly. You still get the useful autocomplete with arg descriptions to help you along the way
Minor additions
- Frontend has been refactored to improve performance. Namely, the config is now centralized in one place so pages will load quicker without needing to retrieve the config again
- You can now set a timestamp for shared videos so you can show your friends the best part of the videos you download
- Logging level for the server can now be set through the settings
- Docker file improvements including smaller image sizes and faster pulling due to caching - Thanks @SuperSandro2000 for these improvements!
- Added new environment variable
YTDL_UMASK
for setting the process umask value using a decimal value (only applicable to Linux/Docker) - Thanks @chimlm for the suggestion! - Periscope and tiktok are now supported
Bug fixes
- Fixed bug that caused the database to reset when subscribing to a channel or playlist - @Mattyfaz was instrumental in helping debug this!
- JSON files for videos now carry the same permissions as the video itself (it used to be more restrictive) - Props to @GlassedSilver for finding this one!
- Added AtomicParsley to dependencies on Docker container to fix errors related to
--embed-thumbnail
- Thanks @GlassedSilver for the help figuring this one out! - Fixed bug that prevented locally saving files from occurring
- Fixed bug that prevented the video player from appearing when multi-download mode was enabled. Thanks @chimlm for pointing this out!
Beyond 4.0
On a more personal note, I am starting an internship next week for this upcoming summer. If I'm slow to respond to issues during the day or updates take longer to come out, that's why. I also want to shift the focus of these next few updates to be less about features, and more usability and stability improvements. I think we've added quite a bit over the last few months, so it's time to clear up any kinks before moving forward.
Since I'll be a bit busier, if anyone wants to get more involved coding-wise on the project, I'll be glad to get you started. Any help is always appreciated, even just suggestions and bug fixes make a huge difference (as the wall of text demonstrates above).
Short-term, I'll be keeping a close-eye on any bug reports, and when they do come up, I'll make smaller bug fix releases (4.0.1, 4.0.2, etc.) to keep things running smooth. That's all I got for you, hope you guys enjoy this update.