This project is a fork of PoliDown* that was originally based on destreamer v2.0 project.
PolimiUnical users autologin- *Multithreading download through aria2c
- *Possibility to choose the video resolution
- Ehanced stuff for unstable connection
- More accurate log console
- videoUrlsFile option added
- Double-clickable script launcher provided (Windows only)
- Make aria2 downloading procedure more consistent and reliable
- Code adjustments in order to a more lightweight execution
- Added a second double-clickable script launcher to temporarily suspend PC sleeping (Windows only)
- Provide a tracking of video URLs that took in error with download task
- Add a macOS/Linux easy-launcher
- README update
- Fix readFileSync function for Unix-like systems
- Notify natively terminated downloading process (see more following point 3 of important notes). Do a clean installation or execute
$ npm install
command
- Fix syntax error
- Prevent SnoreToast link adding in menu start programs list (Windows platform)
- Add
-t
option to disable native system notification toast - Delete wrong condition in readFileToArray function
- "Syntactic sugar"
- README update
- Fix npm installing error (semver warning)
- Handle all UnhandledPromiseRejections
- More accurate log console
- More readable log console
- README update: please follow disclaimer and important notes
- Updating and upgrading project dependencies. Do a clean installation or execute
$ npm install
command - README update: please follow EDIT paragraph of point 1 in important notes
- Fix and update dependencies installing. Do a clean installation or execute
$ npm install
command - Add noob checks with easy-launchers executing
- README update: please follow the prereqs section
- Dependencies update. Do a clean installation or execute
$ npm install
command - Check test bench
- Dependencies update. Do a clean installation or execute
$ npm install
command - Check test bench
Hopefully this doesn't break the end user agreement for Microsoft Stream. Since we're simply saving the HLS stream to disk as if we were a browser, this does not abuse the streaming endpoints. However I take no responsibility if either Microsoft or your Office 365 admins request a chat with you in a small white room.
- Script does not provided yet an effective way to refresh the access token i.e. cookies. So the execution stops on valid URLs also from a certain point onwards, if script runs for one hour or so (seems such a strict max-age session cookies. Damn Microsoft.). Any suggestions (especially) about are accepted. EDIT: Starting from destreamer v2.1, this problem seems resolved. At the same time, authors pushed an important code refactoring of all project logic. The fix could be introduced also in UnicalDown by rebasing only the access tokens managment. Howewer, it requires time to spend on it. This comment summerizes where the rebasing work must to focus on. Nothing else to say... I'm absolutely ready to merge your fork! ;)
- Script does not provided yet an effective and universal way to avoid PC autosleeping during the downloading process. This is the only reason for which I provide the Coffee version easy-launcher, that helps the reason in Windows at least but is clearly not the best way to go. Submit a new pull request or a new issue if you have something that could help the cause.
- Starting from v1.5, node-notifier module is added to enable (by default) a system of native notification for terminated downloading process. For this and to avoid any not expected bug, if you are upgrading, you need a clean installation or to just update dependencies by
$ npm install
command.
- Node.js: anything above v8.0 seems to work.
- aria2: this needs to be in your
$PATH
. Choose the latest release. - ffmpeg: a recent version (year 2019 or above), always in your
$PATH
. On Windows, the release-full version is recommended. - A stable connection is recommended. Video fragments acquiring is a timed procedure due to Stream m3u8 source.
Latest release v1.7.6 tested on Windows with:
Videoguide provided by original PoliDown project. Just intending "UnicalDown" or "unicaldown" instead of "PoliDown" or "polidown". After finishing the installation successfully, reboot to avoid any headless chromium booting issue.
Installation is pretty much the same.
Executable .sh and .bat file are provided for a simpler script usage. Before to go, it's necessary to configure them. In general, right-click on file and choose some Edit option.
An executable .bat file is provided. After properly settled it, just double-click on to automatically open cmd and start downloading.
Coffee is a portable .exe from https://sourceforge.net/projects/coffee-sc/ open source project. It provides to prevent PC standby when downloading. Coffee version just starts and also kills Coffee task after UnicalDown procedure is finished. In case of "illegal" killing problems (e.g. cmd was prematurely closed), you can exit from Coffee by right-clicking on its properly icon in notification area.
An executable .sh file is provided. It's necessary to make it runnable: execute chmod 777 this_launcher.sh
on terminal (obviously, you must navigate to project folder before). Next, always run the .sh script using terminal.
$ node unicaldown.js -u fiscalcode -v "https://web.microsoftstream.com/video/VIDEO-1"
$ node unicaldown.js -u fiscalcode -f urlsFile.txt
You can omit the password argument. UnicalDown will ask for it interactively and then save it securely in local system's keychain for the next use.
$ node unicaldown.js -h
Options:
--version Show version number [boolean]
-v, --videoUrls List of URLs [array]
-f, --videoUrlsFile Path to txt file containing the URLs [string]
-u, --username Fiscal code [string] [required]
-p, --password [string]
-o, --outputDirectory [string] [default: "videos"]
-q, --quality Video Quality [0-5] [number]
-k, --noKeyring Do not use system keyring [boolean] [default: false]
-t, --noToastNotification Disable system toast notification [boolean] [default: false]
-h, --help Show help [boolean]
$ node unicaldown.js -u fiscalcode
-v "https://web.microsoftstream.com/video/VIDEO-1"
"https://web.microsoftstream.com/video/VIDEO-2"
"https://web.microsoftstream.com/video/VIDEO-3"
$ node unicaldown.js -u fiscalcode -f path/to/video/urlsFile.txt
You can create a .txt file containing video URLs, one URL for each line. The text file can have any name, only be sure that it is followed by .txt extension. Absolute path is not necessary if the .txt file is located in the unicaldown.js directory.
$ node unicaldown.js -u fiscalcode -v "https://web.microsoftstream.com/video/VIDEO-1" -q 4
$ node unicaldown.js -u fiscalcode -v "https://web.microsoftstream.com/video/VIDEO-1" -o "/my/path/here"
$ node unicaldown.js -u fiscalcode -v "https://web.microsoftstream.com/video/VIDEO-1" -k
$ node unicaldown.js -u fiscalcode -v "https://web.microsoftstream.com/video/VIDEO-1" -t