Giter VIP home page Giter VIP logo

brisk's People

Contributors

aliml111 avatar aminbhst avatar norman-w avatar zorinfoss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

brisk's Issues

Grabbing videos/audio

Thank you for developing this application. I would like to suggest adding a feature to download videos from popular browsers.
I believe it would be easier to do this once you have browser integration enabled.

Implement notifications for macOS

Brisk uses flutter_local_notifications for handling its notifications on Linux. This package also supports macOS, but since I don't own a mac, I refrained from implementing it for this platform as I had no way of testing it.
The implementation is relatively straightforward as explained in the package's docs.
The file containing the notification logic is /lib/util/notification_util.dart.
Contribution to this feature and any macOS-related features or bugs is greatly appreciated!

Dynamic Segmentation

To maximize download speed at all times, the ultimate solution is to reuse connections that have received their designated bytes and dynamically segment the bytes of other connections.

e.g. Connection 2 and 3 have finished downloading and connection 1 is still receiving bytes. In this case, connections 2 and 3 each should be assigned to receive 1/3 of the remaining bytes of connection 1. By doing so, all connections will remain active at all times and the download speed will be boosted in cases with slow download speed on single connections.

The algorithm will most likely be complicated to implement and requires extremely rigorous testing to ensure stability and prevent file corruption.

Add support for multiple windows

Brisk should be able to create new windows when capturing requests from the browser extension. e.g. When the user adds a chunk of download links to brisk, instead of showing a dialog in the app, a new window should be opened.

Prerequisite: flutter/30701

Check for disk space before adding a download item

Before either adding a download to the list or starting it, Brisk has to check whether or not there is enough free space on the disk and use ConfirmationDialog to notify the user and ask to proceed.
Note: disk space validation logic has to be added to DownloadAdditionUiUtil#handleDownloadAddition

Managing macOS releases

Need a collaborator to manage Brisk releases for macOS. If you're interested, I can add you as a project collaborator to have access to github releases in order to upload the macOS binaries for each new release. This could probably also be achieved by using github actions as well, however I'm not aware of how the process is.
Your help is very much appreciated!

White windows on new instance

Hi
I have this problem when Brisk is open on my tray, and I try to reopen it from my apps it gets stucked in white window.
Looks like a problem in opening new instance to me.
My OS is Fedora version 40.
Screenshot from 2024-06-07 18-38-35

Build failure on Windows. Any thoughts on how to resolve?

Thanks for the code. Great to have some real application examples.

With a fresh clone onto a Windows 10x64 22H2 machine I get the error shown below. Flutter/Dart are, I believe, the most recent releases.

Not sure if the referenced packages should be updated or not. Any advice appreciated.

R:\src\flutter\brisk>flutter --version
Flutter 3.22.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision a14f74ff3a (13 days ago) • 2024-05-22 11:08:21 -0500
Engine • revision 55eae6864b
Tools • Dart 3.4.1 • DevTools 2.34.3

Build spew:

R:\src\flutter\brisk>flutter run
Resolving dependencies...
Downloading packages...
  _fe_analyzer_shared 67.0.0 (70.0.0 available)
  analyzer 6.4.1 (6.5.2 available)
  csv 5.1.1 (6.0.0 available)
  file_picker 6.2.1 (8.0.3 available)
  flutter_local_notifications 16.3.3 (17.1.2 available)
  hotkey_manager 0.1.8 (0.2.3 available)
  http 1.2.0 (1.2.1 available)
  intl 0.18.1 (0.19.0 available)
  launch_at_startup 0.2.2 (0.3.0 available)
  leak_tracker 10.0.4 (10.0.5 available)
  leak_tracker_flutter_testing 3.0.3 (3.0.5 available)
  material_color_utilities 0.8.0 (0.11.1 available)
  meta 1.12.0 (1.15.0 available)
  package_info_plus 5.0.1 (8.0.0 available)
  package_info_plus_platform_interface 2.0.1 (3.0.0 available)
  pluto_grid 7.0.2 (8.0.0 available)
  test_api 0.7.0 (0.7.2 available)
  url_launcher_web 2.2.3 (2.3.1 available)
  uuid 3.0.7 (4.4.0 available)
  vm_service 14.2.1 (14.2.3 available)
  web 0.4.2 (0.5.1 available)
  web_socket_channel 2.4.3 (3.0.0 available)
Got dependencies!
22 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Launching lib\main.dart on Windows in debug mode...
/C:/Users/moi/AppData/Local/Pub/Cache/hosted/pub.dev/pluto_grid-7.0.2/lib/src/manager/shortcut/pluto_grid_shortcut.dart(33,39): error GC2F972A8: The argument type 'RawKeyEvent' can't be assigned to the parameter type 'KeyEvent'. [R:\src\flutter\brisk\build\windows\x64\flutter\flutter_assemble.vcxproj]
/C:/Users/moi/AppData/Local/Pub/Cache/hosted/pub.dev/pluto_grid-7.0.2/lib/src/manager/shortcut/pluto_grid_shortcut.dart(33,46): error GC2F972A8: The argument type 'RawKeyboard' can't be assigned to the parameter type 'HardwareKeyboard'. [R:\src\flutter\brisk\build\windows\x64\flutter\flutter_assemble.vcxproj]
r:\vs2022\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5): error MSB8066: Custom build for 'R:\src\flutter\brisk\build\windows\x64\CMakeFiles\a82e6a928630805541b481720c052ab0\flutter_windows.dll.rule;R:\src\flutter\brisk\build\windows\x64\CMakeFiles\37bba2b750860eb356cc77762b01f89c\flutter_assemble.rule;R:\src\flutter\brisk\windows\flutter\CMakeLists.txt' exited with code 1. [R:\src\flutter\brisk\build\windows\x64\flutter\flutter_assemble.vcxproj]
Building Windows application...                                    20.1s
Error: Build process failed.

Upgrade flutter SDK to v3.16

Hi,

Please upgrade flutter SDK to v3.16.x

This version has a significant graphics features specially on linux. (The app start much faster now)

Error on Linux

/home/user/Brisk/brisk: error while loading shared libraries: libkeybinder-3.0.so.0: cannot open shared object file: No such file or directory

Background service enhancement

It would be cool to make a a service that will work in the background, to be able to unload the UI because the UI consumes a lot of RAM.

Add launch on startup support

Brisk should optionally be able to launch at startup since the browser extension is always active by default. The possibility of starting up in the system tray must also be investigated.

Package needed: launch_at_startup

Reset slower connections automatically

Sometimes, some connections might slow down the download speed. This is especially true when most download connections have been completed and the download might slow down significantly due to the state of the remaining connections. It has been seen that a manual pause/resume helps a lot in those cases and the download speed goes back to what is expected for the most part.
In the future, a dynamic segmentation feature might be added to maximize download speed at all times but in the meantime, this minor change can significantly boost the download speed in special cases.

The download speed must be compared to the average expected speed in regular intervals. If the speed is significantly lower, a connection reset will be initiated by the multi connection coordinator. This, however, should only be attempted once or twice and if it didn't yield any benefits, download connections must continue.

Suggestions of best open source extensions and cli downloaders engines to support downloading embedded video streams

Hello, thank you so much for this new great awesome fantastic download manager ! 💯 🥇

I have request please : add support for downloading videos from embed streaming videos sites
and may be integrating some of these great rare open-source regulary updated extensions and tools may help to detect embed complex videos from streaming videos and make our beloved Brisk Download manager more stronger and more efficient to detect and download all kind of embed videos, thank you !

Best of open source video downloader extensions :

https://github.com/chandler-stimson/live-stream-downloader

https://github.com/puemos/hls-downloader

https://github.com/ray-lothian/Easy-Video-Downloader
https://webextension.org/listing/easy-video-downloader.html

https://github.com/54ac/stream-detector

https://github.com/inbasic/bulk-media-downloader
https://github.com/inbasic/turbo-download-manager-v2

https://github.com/iawia002/lux

https://github.com/soimort/you-get

https://github.com/AminBhst/brisk-browser-extension

https://github.com/zaidka/cliget

https://github.com/kanishka-linux/hlspy

https://github.com/selsta/hlsdl

https://github.com/aclap-dev/vdhcoapp

https://github.com/CoolnsX/hls_downloader

https://sites.google.com/site/linkgopher/

https://github.com/emarsden/dash-mpd-cli

https://github.com/nilaoda/N_m3u8DL-CLI
https://github.com/nilaoda/N_m3u8DL-RE
https://github.com/globocom/m3u8

EDIT : and also

https://github.com/mhogomchungu/media-downloader
https://github.com/mhogomchungu/media-downloader/wiki/Extensions

https://github.com/giantpinkrobots/varia

https://github.com/filecxx/FileCentipede
https://filecxx.com/en_US/index.html#features

edit : and :
https://github.com/aandrew-me/ytDownloader
https://ytdn.netlify.app/

https://github.com/kannagi0303/yt-dlp-gui

https://github.com/ytdl-official/unlock

https://github.com/setvisible/ArrowDL
https://www.arrow-dl.com/

https://github.com/giantpinkrobots/varia
https://giantpinkrobots.github.io/varia/

https://github.com/ErrorFlynn/ytdlp-interface

https://github.com/database64128/youtube-dl-wpf
https://cube64128.xyz/

https://github.com/Maxstupo/ydl-ui

https://github.com/jeanslack/Videomass
https://jeanslack.github.io/Videomass/

https://oleksis.github.io/youtube-dl-gui/
https://github.com/oleksis/youtube-dl-gui

https://github.com/KurtBestor/Hitomi-Downloader

https://github.com/KikoPlayProject/KikoPlay
https://kikoplay.fun/

https://curl.se/

https://nodejs.org/en

https://www.electronjs.org/

https://github.com/SeaHOH/ykdl

https://github.com/CoolnsX/dra-cla

https://github.com/nilaoda/BBDown

Video m3u8 Sniffer - Find HLS Streaming URLs
M3U8 finder and HLS player
http://sigmafxdx.com/m3u8Sniffer/

https://github.com/CoolnsX/hls_downloader
https://coolnsx.github.io/

scripts and tools :

https://github.com/Momo707577045/m3u8-downloader
https://github.com/Momo707577045/media-source-extract
https://github.com/Momo707577045/tinypng-script-with-cache
http://blog.luckly-mjw.cn/tool-show/m3u8-downloader/index-en.html
https://segmentfault.com/a/1190000025182822

Native HLS playback
by Gaetan Hervouet
https://github.com/ghouet/chrome-hls
Native MPEG-Dash + HLS Playback
by David Cavar
https://github.com/Palethorn/native-adaptive-streaming
https://cavar.net/

https://github.com/pystardust/ani-cli
https://github.com/justfoolingaround/animdl

https://github.com/spencerwooo/onedrive-vercel-index
https://github.com/alist-org/alist

https://github.com/helloxz/ccaa

edit : integration with web browsers :

https://github.com/AminBhst/brisk-browser-extension

https://github.com/ugetdm/uget-integrator

and :

https://github.com/persepolisdm/Persepolis-WebExtension

https://github.com/filecxx/FileCentipede

https://github.com/subhra74/xdm-integration-module
https://github.com/subhra74/xdm-browser-monitor
https://github.com/subhra74/xdm-helper-chrome
https://github.com/subhra74/xdm-firefox-old

https://github.com/ginuerzh/gost/blob/master/README_en.md
https://github.com/kanishka-linux/hlspy
https://curl.se/
https://nodejs.org/en
https://www.electronjs.org/
https://github.com/SeaHOH/ykdl
https://github.com/selsta/hlsdl


https://github.com/iamtalhaasghar/yewtube
mps-youtube/yewtube#1191
https://iamtalhaasghar.github.io/yewtube/

https://github.com/otisdog8/termitube

https://erickutcher.github.io/#HTTP_Downloader

https://github.com/nilaoda/BBDown

https://github.com/the1812/Bilibili-Evolved

https://github.com/kengwang/BiliDuang

https://github.com/MotooriKashin/Bilibili-Old

https://github.com/sodaling/FastestBilibiliDownloader

https://github.com/pystardust/ytfzf
https://github.com/justfoolingaround/fast-yt-search

https://github.com/anasty17/mirror-leech-telegram-bot
https://github.com/junedkh/jmdkh-mltb

Add video streaming capability

Hello, thank you so much for this awesome great fantastic new download manager !! 💯 🥇

I discovered while downloading from streaming sites that in some streaming video players, like in this site :

https://v5.voiranime.com/anime/boku-dake-ga-inai-machi/

and even if I choose "1" for the number of threads, the downloaded video is divided into very small parts which prevents us from watching the video while it is downloading and I have to wait for the download to finish to watch the donwloaded video, so please we hope our beloved Brisk Download Manager will add an option to preview/watch the video while downloading, I tried with coc coc browser which can download streamig videos and thus we can play file while it's still downloading and preview/watch while downloading the video, thank you !

EDIT :

Yes we can think this option request is a niche feature 👍 but personnaly i think it is an important and the most important feature of a donwload manager, already it allows us to avoid the possible banning of our IP address by setting the number of threads to "1" if for example when downloading episodes of anime which have 700 episodes!

in addition the wifi can become unstable very weak when a lot of family members connect, and if we watch streaming, the viewing will be jerky lag interrupted if the video is in HD if our internet connection is weak, in addition the downloaded video can be very long and waiting for the download to finish can be annoying...plus I have done tests and downloading videos from streaming sites with number of threads "1" is very fast, stable and it is more ecological and saves our battery resources!

Coc coc browser says that its internal downloader has 8 threads to speed up the downloads however we can preview the downloaded video so I think coc coc browser downloads first part of the video first then increase the number of threads to increase the speed....

Thank you very much :)

EDIT :

Hello, I talked to the developer of FileCentipede about this probleme and this is his answer....maybe it cOULD help to add the great video streaming capability :

"For streaming media, the use of a single thread or multiple threads for downloading makes no difference. During the download process, the downloader creates independent files for each segment locally, which are then merged into a single file after downloading. This is why the file cannot be played. To resolve this, I can add an option in the future to enable sequential downloading using only one connection and creating a single file, allowing the player to function properly. However, the player's fast-forward and rewind functions may not be available. While many players support direct playback of m3u8 files, they may not bypass certain download restrictions or decrypt content like FileCentipede does, unless I make a new video player. In the absence of a perfect solution, I will work on addressing this issue in the future.

Thank you for your feedback, and I will strive to resolve this problem in subsequent updates."

and this was my response :

"Mr Filecxx , you explained to us : "unless I make a new video player.", oh we thank you very much ! we know it's a very difficult and complicated and complex task and we don't want to tire you out, so if potplayer or vlc player doesn't cannot "bypass certain download restrictions or decrypt content", perhaps the source code of these open source and powerful video players could help to find a solution or add patches or fix evental bugs with playback.....:

https://github.com/KikoPlayProject/KikoPlay

https://github.com/zaps166/QMPlay2

https://github.com/coslyk/moonplayer

https://github.com/vzhd1701/gridplayer

https://github.com/tsl0922/ImPlay

https://github.com/mpc-qt/mpc-qt

https://github.com/mpvnet-player/mpv.net

https://github.com/smplayer-dev/smplayer

https://github.com/422658476/MPV-EASY-Player

Duplicated download finish signal

When downloading a smaller file. It will get progress like below
flutter: Received progress update: 0.0
flutter: Received progress update: 0.0
flutter: Received progress update: 0.0
flutter: Received progress update: 0.0
flutter: Received progress update: 0.0
flutter: Received progress update: 0.0
flutter: Received progress update: 0.0
flutter: Received progress update: 1.0
flutter: Received progress update: 1.0

we got 2 or more 1.0(finish signal)
so we can't show a notification correctly

Refreshing download links

For links that expires after adding it to the queues, I would suggest adding a feature to be able to refresh and resume download of expired links.

Refresh download link address

A feature which gives ability to make changes in link address of downloads. Very useful when the links get expired.

Existing task checking mistake

image

  1. Create a task and download it.
  2. Remove the downloaded file when it is finished.
  3. Re-create a new task with the same URL, then we will see this notice.

Ignore failing or invalid URLs in browser extension server

When the selected links on a webpage (see the demo in the README) contain URLs other than valid download links, Brisk fails to retrieve their information and therefore, shows an error dialog. Instead, all failing links should be ignored so that the valid links can be added without issues. To do that, a simple try,catch in BrowserExtensionServer#requestFileInfoBatch might do the trick.

Add system tray support

Package needed: system_tray or tray_manager

  • It is important to check whether or not a minimized to tray window can be brought to front upon receiving download requests from the browser extension. If that is not possible, multiple window support could solve this problem. In the meantime, as a workaround we can send a system notification when a download request has been captured from the browser
  • Ask the user whether or not the app should be moved to tray when the close button is clicked. A 'remember this decision' option also has to be added which requires a new app setting entry.

Responsiveness Enhancement

There are a couple of widgets that are not responsive enough. For instance, the download progress window (the window that appears when you click show progress window on a download row) is only responsive enough vertically. If the size of the window is reduced a lot horizontally, the buttons will move out of their container. It's best to first reduce the space between the buttons and if the width is reduced even further, move two buttons to a second row. The same thing is the case with the settings dialog.

Uncheck selected rows after clicking on download or stop button

This is merely a minor UX improvement. Since It's kind of a hassle for the user to check rows and click download/stop button and then uncheck the rows again, It's better to automatically uncheck the selected rows when these buttons are pressed.

For any potential contributors, check the pluto_grid_util file to get an idea on how to uncheck rows. The buttons are also in the top_menu file.

Contributions are welcome and appreciated.

Add torrent download support

This will most likely take a lot of time to implement and this issue merely exists as a reminder to investigate into the implementation details of this feature. It is therefore unclear whether or not this feature will be implemented in the future.

Optional downloaded file deletion

Currently, deleting a download item from the list only deletes its downloaded temp files. A checkbox has to be added to download item deletion confirmation dialog (TopMenu#onRemovePressed) so that when it's checked, the downloaded file is deleted from the disk.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.