830 Commits

Author SHA1 Message Date
8e5b6dc831
[Design]: add 0.5rem for grid-gap (col and row) 2021-12-03 19:35:03 -05:00
66b2b20007
update public instance 2021-11-29 14:52:50 -05:00
James Taylor
2e5a1133e3
Work around video throttling using android user-agent
Temporary fix for #95

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-10-18 18:56:53 -05:00
ec5e995262
README.md: about public instances 2021-09-28 23:34:45 -05:00
2fe0b5e539
Improve input styles 2021-09-22 12:56:59 -05:00
896655ddbd
version 0.2.1 0.2.1 2021-09-14 16:36:00 -05:00
f3469b1ff4
Revert "Usage hqdefault thumbnail in related videos"
This reverts commit a0c3ca0159136d17eefa129176ae1904110238b8.
2021-09-14 16:35:04 -05:00
c5dce849f1
version 0.2.0 2021-09-14 16:02:40 -05:00
a0c3ca0159
Usage hqdefault thumbnail in related videos 2021-09-14 15:58:13 -05:00
d116351aed
README.md: update 2021-09-14 15:54:16 -05:00
8b745907cc
improve quality-select 2021-09-14 14:49:14 -05:00
ecb8d406f8
change tor port and app port 2021-09-14 13:07:04 -05:00
d2d6e4e56d
fix name app 2021-09-14 12:57:31 -05:00
82e82b1cb7
change path config 2021-09-14 12:51:05 -05:00
f129cfcc9a
playlist: add license to javascript code 2021-09-10 21:12:12 -05:00
Mageas
66f396ce32
Add a button to remove playlist
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-09-10 17:58:21 -05:00
88803ced44
version 0.1.1 0.1.1 2021-09-06 18:30:02 -05:00
James Taylor
3066f9a37e
watch.py: Support /shorts urls
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-09-06 17:46:25 -05:00
James Taylor
9c7e93ecf8
Redo av codec settings & selections to accomodate webm
Allows for ranked preferences for h264, av1, and vp9 codecs in
settings, along with equal preferences which are tiebroken using
smaller file size.

For each quality, gives av-merge a list of video sources
and audio sources sorted based on preference & file size. It
will pick the first one that the browser supports.

Closes #84

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-09-06 16:18:11 -05:00
James Taylor
854ab81b91
av-merge: Add webm support
But watch.py is not providing them yet. Deciding how to fix the
codec options/defaults is for a later commit

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-09-06 15:34:19 -05:00
James Taylor
2360958862
Subscriptions manager: Make file input required
This avoids an ugly error if the user forgets to select a file

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-09-01 22:31:28 -05:00
02480553b6
README.md: update 2021-09-01 22:28:25 -05:00
James Taylor
cd3383e6e3
Add NewPipe subscriptions import and export
Closes #82

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-09-01 22:01:05 -05:00
James Taylor
fc0fa9aaba
av-merge: Fix segments not properly reappended during QuotaExceeded
Two issues fixed:
1. The append was only retried if it was the result of a seek
event. But if the video is paused (such as if the video was
finished and the user seeks back to the beginning), the seek
won't happen because the MediaSource will not issue a sourceopen
until the user plays the video. A better strategy that solves
the true issue is to retry the append if it is for the segment
corresponding to the current time, since that is critical to get
immediately.
2. If the append was not retried, entry.requested was not getting
marked as false, so it would refuse to ever rerequest the segment,
so it would stall. Set it to false if we decide not to retry the
append, so it can be rerequested later.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-09-01 20:12:14 -05:00
06e091e020
watch.js: video variable as const and improve data.time_start syntax 2021-09-01 15:14:06 -05:00
7143e1b321
plyr: use strict and fix undefined quality variable 2021-09-01 12:42:44 -05:00
98d9b35765
plyr: minor fix 2021-09-01 12:25:46 -05:00
676536a294
embed: plyr shasum update 2021-08-31 21:07:39 -05:00
1632ab5cda
plyr: remove sourceMappingURL=plyr.min.js.map 2021-08-31 21:00:43 -05:00
James Taylor
12561c0ed3
av-merge: Specify which of MediaSource, audio, or video are unsupported
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-31 20:16:17 -05:00
James Taylor
5bf4c284a5
subscriptions: Support new subscriptions.csv format
According to
https://github.com/iv-org/invidious/issues/2319
Google Takeout changed the format from json to csv

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-31 18:36:10 -05:00
James Taylor
2ab5b96178
Fix videos added to playlist from channel missing author_id
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-31 18:29:37 -05:00
James Taylor
7c79f530a5
Support more audio and video qualities
Adds support for AV1-encoded videos, which includes any videos
above 1080p. These weren't getting included because they did
not have a quality entry in the format table at the top of
watch_extraction.py. So get the quality from the quality
labels of the format if it's not there.

Because YouTube often includes BOTH AV1 and H.264 (AVC) for each
quality, after these are included, there will be way too many
quality options and the code needs to choose which one to use.
The choice is somewhat hard: AV1 is encoded in fewer bytes than
H.264 and is patent-free, however, it has less hardware support,
so might be more difficult to play. For instance, on my system,
AV1 does not work on 1080p, but H.264 does. Adds a setting about
which to prefer, set to H.264 as the default.

Also adds support for the lower quality mp4 audio quality, which
now gets used at 144p to save network bandwidth. For similar
reasons, this was not getting included because it did not
have an audio_bitrate entry in the table. Prefer bitrate
instead for the quality.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-31 16:40:19 -05:00
James Taylor
30e59081b1
av-merge: Use .shift() instead of .pop() in appendQueue for FIFO
.pop() gives LIFO, but FIFO was the intention for appendQueue.
O(n) behavior is fine because appendQueue should be very small.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-31 11:38:24 -05:00
James Taylor
85cf943850
av-merge: Fix handling of QuotaExceededError
Many things fixed:
- Delete from end of video in addition to from beginning. Firefox
automatically deletes from the beginning already.
- Increment i in the while loop (oops)
- Calling .remove takes time for the sourceBuffer to perform, and
it will be in the updating=true state. Continuing to delete more
would give an error. Waits until the updateend event is fired
before deleting more segments.
- Retry appendBuffer if the quota was exceeded during a seek append

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-31 11:37:36 -05:00
4a45a699ae
fix "Security Error: Content, may not load data from blob" 2021-08-30 00:24:41 -05:00
7264bbeaed
licenses.html: update 2021-08-29 23:34:18 -05:00
James Taylor
a7527986c8
Fix embed page broken due to changes to jinja variables
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 23:24:32 -05:00
James Taylor
00c812ff4a
av-merge: Fix numDeleted not incremented during segment deletion
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 23:19:03 -05:00
James Taylor
2ae81f2a78
Add setting to prefer uni or pair sources and fix selection b/w them
pair_quality != uni_quality was the wrong condition to check,
since there are cases where the target_resolution is 360, and
there are no pair sources at 360, but there are some at other
resolutions, which would falsely select the pair sources.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 23:17:32 -05:00
James Taylor
99cb1c48ea
av-merge: Fix malformed mp4 fragments wrongly considered deleted
See comment within. They would be constantly rerequested and
av-merge would think it didn't have them, so it wouldn't
request subsequent segments

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:58:36 -05:00
James Taylor
c1dbc6c411
av-merge: print sourceBuffer.buffered in printDebuggingInfo
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:57:03 -05:00
James Taylor
92bdbf072e
av-merge: Fix error when switching qualities after endOfStream
After the video has been buffered to the end and
mediaSource.endOfStream() has been called, the close function
would perform some closing operations on the sourceBuffers
that gave InvalidStateError

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:55:41 -05:00
James Taylor
77fffee34f
av-merge: Add function to dump debugging info
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:54:27 -05:00
James Taylor
aacbf07ad7
av-merge: Use tickEnd+1 when calculating segment time ranges
tickEnd is inclusive, so two segments might have the following
ticks:

-- Segment 0 --
tickStart: 0
tickEnd: 44099

-- Segment 1 --
tickStart: 44100
tickEnd: 88199

When doing calculations in seconds about segment extent, there
were gaps between segment 0's end and segment 1's beginning. This
sometimes resulted in errors of not finding the corresponding
segment index inside these gaps.

Using (tickEnd+1)/this.sidx.timeScale is the correct method.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:50:10 -05:00
James Taylor
9d3ebca622
av-merge: End stream correctly when last segments do not overlap
In this video at 480p:
https://www.youtube.com/watch?v=6bnanI9jXps
There is an extremely tiny audio segment from
30.00018140589569 to 30.06981859410431
after the last video segment ends at 29.99998888888889. Call
end of stream when we have all segments until the end, instead
of calling it when we are playing the last segment.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:48:46 -05:00
James Taylor
ef867e3759
watch: Fix using_pair_sources being a list due to short-circuiting
In the case where pair_sources is empty due to a playability
error, using_pair_sources will be assigned to pair_sources
(empty list) because of short circuiting. Make it a bool

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:47:22 -05:00
309ff40943
watch.html: Move loose inline javascript into watch.js
The number of inline code blocks and the dependencies between them
became unmanageable.

From 9d96c07a3c2e68f1893634574c3be64e41a2c041 Mon Sep 17 00:00:00 2001
From: James Taylor <user234683@users.noreply.github.com>
2021-08-29 22:43:10 -05:00
James Taylor
56b17c634c
av-merge: Use console.warn and console.error
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:57:55 -05:00
James Taylor
dd01c8ca4c
av-merge: change QuotaExceeded messages to warnings
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:57:02 -05:00