🎥 ⬇️ 📦 - Public Video URLs.

Overview

WatchVideoByLink logo left WatchVideoByLink

WatchVideoByLink is a web-app that allows you to watch, download and organize public video URLs.

Why WatchVideoByLink? | Installation | Contributing | License

Screenshots & Gifs

Demo

Home

/saved/videos

Edit Mode

Video Player

Trim Video

Why WatchVideoByLink?

WatchVideoByLink provides:

  • Support for MP4/WebM/HLS/MPEG-DASH video types
  • Custom video players for consuming streams and videos
  • Automatically detect video files from supported websites
  • Download, Trim or Record streams and videos
  • Uploading videos max 1GB per file
  • Keeping downloaded videos organised with folder creation and file renaming
  • Search functionality to find folders and videos by name (local to selected folder)
  • Restoring failed video downloads using untrunc and some luck

For more features check out the wiki

Installation

Extended documentation for WatchVideoByLink

Contributing

WatchVideoByLink is a free and open source project, and we appreciate any help you're willing to give - whether it's fixing bugs, improving documentation, or suggesting new features. Check out CONTRIBUTING.md to find resources around contributing.


Comments
  • What's the best way to implement a video compressor without sacrificing quality and download time?

    What's the best way to implement a video compressor without sacrificing quality and download time?

    As of now video/mp4 is being downloaded as a direct download which is maxed at 720p, its great for speed but not for video size (depending on video), application/x-mpegURL is recorded when an individual starts and stop the recoding, this can easily take huge amount of available space depending on the quality and length of the recorded video (can vary between 1gb to 5gb for 1 hour of content).

    This is a problem, it could help minimize storage cost and increase number of videos able to contribute for storage.

    The usage of FFMPEG is already utilize it could potentially be a great fit to use as video a tool for compression.

    enhancement 
    opened by MohamedBakoush 8
  • Test cases busted

    Test cases busted

    Test cases no longer make sense, due to neglect, need to be redone.

    Frontend

    • [ ] basics.js
    • [ ] currentVideoDownloads.js
    • [x] favicon.js
    • [ ] folder.js
    • [ ] folderPath.js
    • [ ] index.js
    • [x] navigationBar.js
    • [x] notify.js
    • [ ] optionMenu.js
    • [x] search.js
    • [ ] showAvailableVideos.js
    • [ ] videoPlayerButtons.js

    Backend

    • [x] available-videos.js
    • [x] check-path-validity.js
    • [x] current-download-videos.js
    • [x] data-videos.js
    • [x] delete-data.js
    • [x] ffmpeg-download-compression.js
    • [x] ffmpeg-download-image.js
    • [x] ffmpeg-download-response.js
    • [x] ffmpeg-download-stream.js
    • [x] ffmpeg-download-trimed-video.js
    • [x] ffmpeg-download-video.js
    • [x] ffmpeg-path.js
    • [x] ffmpeg-unfinished-videos.js
    • [x] ffmpeg-upload-video.js
    • [x] stream-video-image.js
    • [x] user-settings.js
    • [x] youtubedl-download-video.js
    enhancement 
    opened by MohamedBakoush 5
  • Readme redesign

    Readme redesign

    Descriptions are fairly technical jargon-heavy, simpler descriptions of what it is and how it can be used to achieve a typical goal with a real-world example.

    Landing page with two sentences that explains WatchVideoByLink to a grandma, followed by animation or a 20-second video.

    What is the difference between WatchVideoByLink and VLC?

    Readme is not quickly understandable for what WatchVideoByLink is.

    • [x] What is WatchVideoByLink
    • [x] Use case example
    • [x] Visual representation of what WatchVideoByLink can do.
    • [ ] Comparriosn between WatchVideoByLink and VLC (mabye other similar application also)
    • [x] Contributing.md

    Readme Feedback

    3 Tips For Making an Open Source Project in 2021 [Ultimate Guide]

    documentation good first issue 
    opened by MohamedBakoush 4
  • Install FFmpeg via npm

    Install FFmpeg via npm

    The days for manual FFmpeg downloads are gone

    ffmpeg-installer https://www.npmjs.com/package/@ffmpeg-installer/ffmpeg https://github.com/kribblo/node-ffmpeg-installer

    • Linux 32-bit: (20181210-g0e8eb07980): https://www.johnvansickle.com/ffmpeg/
    • Linux 64-bit: (20181210-g0e8eb07980): https://www.johnvansickle.com/ffmpeg/
    • Mac OS/X (92718-g092cb17983): https://www.osxexperts.net/
    • Mac OS/X (92718-g092cb17983): https://evermeet.cx/ffmpeg/
    • Windows 32-bit (20181217-f22fcd4): https://ffmpeg.zeranoe.com/builds/win32/static/
    • Windows 64-bit (20181217-f22fcd4): https://ffmpeg.zeranoe.com/builds/win64/static/

    ffprobe-installer https://www.npmjs.com/package/@ffprobe-installer/ffprobe https://github.com/SavageCore/node-ffprobe-installer

    • Linux (armhf, arm64, ia32, x64) (20210724-c253b18): https://www.johnvansickle.com/ffmpeg/
    • macOS (x64) (103117-g1f58503013): https://evermeet.cx/ffmpeg/
    • macOS (arm64) (4.4.1): https://formulae.brew.sh/formula/ffmpeg
    • Windows 32-bit (20210804-7ab0207): https://github.com/sudo-nautilus/FFmpeg-Builds-Win32/
    • Windows 64-bit (20210804-3b29864): https://www.gyan.dev/ffmpeg/builds/
    enhancement good first issue 
    opened by MohamedBakoush 3
  • Design: Folder Creation

    Design: Folder Creation

    Context: At /saved/videos a video can be moved/organized in anyway that the user want.

    Design Proposal Ex 1: Folders can be moved/organized in anyway that the user want.

    • If a user hovers folder1 over a folder2 and drops folder1, folder1 will be places inside folder2.
    • If a user hovers a folder over a video and drops the folder, the folder will take the videos spot on the list
    • If a user hovers a video above a folder and drops the video, the video will be places inside the folder.

    Design Proposal Ex 2: Folders are pinned to the top of the list.

    • A folder cant be moved expect If a user hovers folder1 over folder2 and drops folder1, folder1 will be placed inside folder2.
    • If a user hovers a video above a folder and drops the video, the video will be places inside the folder.

    Folder Ex

    enhancement 
    opened by MohamedBakoush 3
  • Folder - push history

    Folder - push history

    Push folder path to history isn't available making refresh page or pressing presses previous page unable to work properly when the user is accessing the desired folder.

    • [x] Push folder by id to history - pushNewFolderIDToFolderIDPath
    • [x] Reset history to /saved/videos if previous url path wasn't /saved/videos - resetInsideFolderID
    • [x] Push multiple folder ids to history - newfolderIDPath
    • [x] Invalid Folder path, display main (/saved/videos)
    • [x] if error return undefined - getAvailableVideoDetailsByFolderPath
    • [x] display main or specified folder path - eachAvailableVideoDetails
    • [x] Fix 2 click previous page limitation bug
    enhancement 
    opened by MohamedBakoush 2
  • Bump lodash from 4.17.15 to 4.17.19

    Bump lodash from 4.17.15 to 4.17.19

    ⚠️ Dependabot is rebasing this PR ⚠️

    If you make any changes to it yourself then they will take precedence over the rebase.


    Bumps lodash from 4.17.15 to 4.17.19.

    Release notes

    Sourced from lodash's releases.

    4.17.16

    Commits
    Maintainer changes

    This version was pushed to npm by mathias, a new releaser for lodash since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • build(deps-dev): bump electron from 19.0.11 to 19.1.8

    build(deps-dev): bump electron from 19.0.11 to 19.1.8

    Bumps electron from 19.0.11 to 19.1.8.

    Release notes

    Sourced from electron's releases.

    electron v19.1.8

    Release Notes for v19.1.8

    Other Changes

    • Security: backported fix for 1333333. #35053
    • Security: backported fix for CVE-2022-4135. #36447

    electron v19.1.7

    Release Notes for v19.1.7

    Fixes

    • Fixed crash in AXNodeObject::TextFromDescendants(). #36285

    Other Changes

    • Security: backported fix for 1376637. #36312
    • Security: backported fix for CVE-2022-3885. #36295
    • Security: backported fix for CVE-2022-3887. #36305
    • Security: backported fix for CVE-2022-3888. #36297
    • Security: backported fix for CVE-2022-3889. #36299
    • Security: backported fix for CVE-2022-3890. #36301

    electron v19.1.6

    Release Notes for v19.1.6

    Fixes

    • Fixed crash in AXNodeObject::TextFromDescendants(). #36285

    Other Changes

    • Security: backported fix for 1376637. #36312
    • Security: backported fix for CVE-2022-3885. #36295
    • Security: backported fix for CVE-2022-3887. #36305
    • Security: backported fix for CVE-2022-3888. #36297
    • Security: backported fix for CVE-2022-3889. #36299
    • Security: backported fix for CVE-2022-3890. #36301

    electron v19.1.5

    Release Notes for v19.1.5

    Other Changes

    • Security: backported fix for 1356234. #36221
    • Security: backported fix for 1361612. #36218
    • Security: backported fix for CVE-2022-3654. #36207
    • Security: backported fix for CVE-2022-3656. #36224
    • Security: backported fix for CVE-2022-3723. #36225

    Unknown

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump express from 4.17.2 to 4.17.3

    build(deps): bump express from 4.17.2 to 4.17.3

    Bumps express from 4.17.2 to 4.17.3.

    Release notes

    Sourced from express's releases.

    4.17.3

    Changelog

    Sourced from express's changelog.

    4.17.3 / 2022-02-16

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • videoLinkContainer width doesn't go smaller then 339px

    videoLinkContainer width doesn't go smaller then 339px

    Describe the bug

    videoLinkContainer width doesn't go smaller then 339px

    Messes up the navigation bar under 339px, as the navigation bar gets smaller due to webpage width, videoLinkContainer will not budge under 339px making any device under 339px annoying to use (Mobile S - 320px)

    To Reproduce

    1. Make the width of WatchVideoByLink homepage smaller than 339px on Inspect Element

    Expected behaviour The size of videoLinkContainer minimum width should be 320px

    Screenshots

    Chrome Screenshot 2022-02-12 at 22 56 14

    Additional context Screenshots are taken by a MacBook Pro 14”

    bug good first issue 
    opened by MohamedBakoush 1
  • videoLinkContainer inconsistencies between Firefox, Safari and Chrome

    videoLinkContainer inconsistencies between Firefox, Safari and Chrome

    Describe the bug

    videoLinkInput, videoTypeSelect, chooseVideoFile does not look the same between browsers videoLinkContainer has different sizes between browsers

    Expected behaviour

    To look like the chrome version

    Screenshots

    Safari Size: 670px x 445px Screenshot 2022-02-12 at 21 58 45

    Chrome Size: 682px x 434.31px Screenshot 2022-02-12 at 21 58 32

    Firefox Size: 719.7px x 431.984px Screenshot 2022-02-12 at 22 10 13

    Additional context Screenshots are taken on fullscreen browsers by a MacBook Pro 14” All the styling for the above content can be found at client/styles/index.css

    bug good first issue 
    opened by MohamedBakoush 1
  • Clunky Website

    Clunky Website

    While the app does everything one expects with the assurance of operating as expected, it doesn't feel intuitive.

    It feels slow clunky and unoptimised for mobile and non-mobile users, a weird middle ground and is clear that when the UI was developed the UX wasn't thought of carefully.

    All core features used daily should be an arm's length away and not tucked behind 2-3 button clicks.

    The user experience is lacklustre and needs a complete redesign going forward.

    enhancement 
    opened by MohamedBakoush 2
Owner
Mohamed Bakoush
mitt bästa arbete visas aldrig.
Mohamed Bakoush
Video.js - open source HTML5 & Flash video player

Video.js - HTML5 Video Player Video.js is a web video player built from the ground up for an HTML5 world. It supports HTML5 video and Media Source Ext

Video.js 34.8k Jan 5, 2023
A Node JS Express/Serverless demo application that creates a slideshow video using the Pexels image library and Shotstack video editing API.

Shotstack Pexels Slideshow Video Demo This project demonstrates how to use the Shotstack cloud video editing API to create a video using an HTML form

Shotstack 25 Dec 9, 2022
A Chrome extension to help you inspect Mp4 video content and find irregularities in video streams.

MP4Inspector A Chrome extension to help you inspect Mp4 video content and find irregularities in video streams. Installation In chrome navigate to chr

Bitmovin 48 Nov 28, 2022
Authentication module for Guild.xyz Public API

Authentication module for Guild.xyz Public API | WIP Background One of the most common problems with digital signature-based authentication systems is

Agora.xyz 37 Dec 21, 2022
2021 ekimde yaptığım ekip veya public botu az incele anlarsın

Richard Ekip Botu V2 Bot 2 Guard, Database, Moderation ve Register sistemlerinden oluşuyor. Ekip veya Public hiç hatırlamıyorum düzenle istediğin gibi

The Sarsılmaz 10 Apr 11, 2022
Mikasa Açkerman's source code, public repo.

I dont know how to fucking make bots, dont ask me! Ne bakıyorsun lan, simit var ekmek var poğaça var ne bakıyon? To use that source code you need to d

thumbsup 6 Dec 24, 2022
Whatsapp bot using Bailey multi device module, using nodejs and open source, I accept ideas from public

Allen Bot-Wa Keep copyright, Created by lolhuman | Please read carefully Content Description Example Highlights TODO Installation FAQ Contributing Con

Pais 35 Dec 3, 2022
Enables

HTML5 video made easy All it takes is a single line of code to make HTML5 video and audio tags work in all major browsers. How to enable video and aud

Dave Hall 1.3k Dec 17, 2022
The HTML5 video player for the web

Flowplayer website | demos | docs For the impatient Download Flowplayer Unzip Drop the folder under your server Minimal setup <!DOCTYPE html> <head>

Flowplayer 1.9k Dec 30, 2022
HTML5

One file. Any browser. Same UI. Author: John Dyer http://j.hn/ Website: http://mediaelementjs.com/ License: MIT Meaning: Use everywhere, keep copyrigh

MediaElement.js 8k Dec 27, 2022
A lightweight, easy-to-use jQuery plugin for fluid width video embeds.

Introducing FitVids.js A lightweight, easy-to-use jQuery plugin for fluid width video embeds. FitVids automates the Intrinsic Ratio Method by Thierry

Dave Rupert 4.8k Dec 24, 2022
HTML5

One file. Any browser. Same UI. Author: John Dyer http://j.hn/ Website: http://mediaelementjs.com/ License: MIT Meaning: Use everywhere, keep copyrigh

MediaElement.js 8k Jan 8, 2023
A web video player built for the HTML5 world using React library.

video-react Video.React is a web video player built from the ground up for an HTML5 world using React library. Installation Install video-react and pe

null 2.4k Jan 6, 2023
Tonton video tutorial di YouTube saya untuk cara penginstalan & apabila kurang mengerti bisa hubungi saya di WhatsApp 🐣Klik link di bawah untuk tutorial penginstalan di heroku

BOTZ10 LAST Termux • Heroku • Session Setting • Thanks TERMUX Git clone this repo > git clone https://github.com/zeeoneofc/BOTZ10a.git > cd BOTZ10a >

zeeone 17 Dec 23, 2021
Modern browsers already had a vivid player for video

Modern browsers already had a vivid player for video. However, web developers and designers still want to custom their own style player for different situations. Sounds like web component will do a lot favor for this purpose. With <msc-ez-video /> support, customize control panel will become a piece of cake. <msc-ez-video /> adopts CSS custom properties, developers could style them as they want.

Paul 1 Dec 29, 2021
An open source web3 decentralized video sharing 🎥 platform running on blockchain ⛓

DapTube ⚡️ A decentralized open source video sharing ?? platform on web3 ⛓ ✨ Share videos & movies without restrictions ?? Monetise your content ?? We

Langford Kwabena 4 Feb 19, 2022
360Site - A website for sharing 360 video experiences.

360Site A website for sharing 360 video experiences. Links Development links happybirthdaynick-f9c86.web.app happybirthdaynick-f9c86.firebaseapp.com P

null 1 Jan 2, 2022
Discord-Bot - You can use the discord bot codes that are updated in every video of the codes I use in the discord bot making series that I have published on my youtube channel.

Discord-Bot You can use the discord bot codes that are updated in every video of the codes I use in the discord bot making series that I have publishe

Umut Bayraktar 114 Jan 3, 2023
Custom full screen video player

Video Player Native video player in html View Demo · Report Bug · Request Feature About The Project This is a custom video player for the web built on

Oscar Castaneda ⬢ 5 Feb 3, 2022