Commit graph

55 commits

Author SHA1 Message Date
rainbownapkin 3f653c4893 Added raw file youtube support as holdover until invidious embed is
viable. This does not help with region locking, but at least allows
age restricted videos with no sign in, doesnt run any google scripts,
and does not run ads.
2022-07-14 01:54:06 +00:00
rainbownapkin 5535917f08 uncommented some shit I commented that I should not have commented out. 2022-07-12 06:43:55 +00:00
rainbownapkin e171415b30 invidious backend finished. Queueing youtube videos no longer requires
API KEY, does not directly connect to or run any youtube code/servers.
Age Restricted videos are now fully queable.
2022-07-12 06:21:48 +00:00
rainbownapkin e7adec32d7 merge upstream 2022-06-26 20:38:05 +00:00
rainbownapkin 3f27bfdbdf Create 1.1-indev branch, list of updates in README 2022-06-26 00:53:30 +00:00
rainbow napkin 55a9fcf465 Added schedule airtimes, fixed layout issues, locked down fore,st(guest disable), contrast fixes (css) 2021-12-26 05:26:59 +00:00
rainbownapkin 7a491681cc init commit 2021-12-06 19:56:40 -05:00
Calvin Montgomery 394f03ee1c Remove some legacy cruft 2021-08-19 20:44:57 -07:00
Calvin Montgomery 1b7e7c74f5 Remove legacy counters 2021-08-19 20:36:04 -07:00
Calvin Montgomery 00e9acbe4d Revert "Remove channel reference counter"
This reverts commit d678fa56d1.  The
reference counter, flawed as it is, was masking far more issues than I
realized.  It would require a more significant rearchitecture of the
code to remove it.  Probably better to keep it and try to improve it for
now.
2021-01-09 13:03:38 -08:00
aleves64 a8d9781821 Small changes 2021-01-03 14:48:10 -09:00
aleves64 18fd611c91 Links to wiki now 2021-01-03 14:48:10 -09:00
aleves64 7c3d2f74ed Made get-info save if yt video is age-restricted and made playlist refuse to add age-restricted videos 2021-01-03 14:48:10 -09:00
Calvin Montgomery d678fa56d1 Remove channel reference counter
This was an old attempt at gracefully unloading channels that still had
pending callbacks.  Its implementation was always flawed, and the number
of places where it was used is small enough to replace with
straightforward checks for whether the channel has been unloaded after
an asynchronous operation.  Hopefully fixes the stuck 0 user channels
issue.
2020-11-11 22:05:05 -08:00
Calvin Montgomery f081bc782a RIP Mixer 2020-07-26 10:24:36 -07:00
Calvin Montgomery e3a9915b45 Clean up a few things that no longer work/are no longer used 2020-02-09 16:50:37 -08:00
Calvin Montgomery 1ec3eab0dc Preserve current playing item when shuffling (#812) 2019-08-01 19:57:32 -07:00
Calvin Montgomery 9c44488d8e Add sanity check to prevent null duration from corrupting playlist meta 2018-12-07 20:47:46 -08:00
Calvin Montgomery 24a13c12cf Minor fixes, logging, metrics 2018-09-30 21:03:09 -07:00
Calvin Montgomery d9e2a62f77 Add check for #766 2018-08-29 20:40:24 -07:00
Calvin Montgomery db48104b80 Initial mixer implementation 2018-08-26 22:04:14 -07:00
Calvin Montgomery 62417f7fb8
Add eslint (#741) 2018-04-07 15:30:30 -07:00
Calvin Montgomery fcfc45dd70 Save YouTube playlists to library in batch to avoid connection pool starvation 2018-03-05 22:19:51 -08:00
Calvin Montgomery 8399eab33f Fix error on invalid regex for /clean 2018-01-17 21:54:43 -08:00
Calvin Montgomery 46a738b7f4 Minor tweak to playlist dirty check 2018-01-14 15:08:55 -08:00
Calvin Montgomery b7bc93f194 Disable vid.me (RIP) 2017-12-24 11:19:30 -08:00
Calvin Montgomery 0c330a82ce Add dirty check to playlist for efficiency of channel saving 2017-12-16 10:34:04 -08:00
Calvin Montgomery d0c1e8cbd9 Change metric names to follow prometheus naming guide 2017-08-12 13:12:58 -07:00
Calvin Montgomery 04c9d48779 custom-media: implement queueing and playback changes 2017-08-08 20:35:17 -07:00
Calvin Montgomery 0b560f15a9 Add prometheus counter for changeMedia 2017-08-05 18:50:27 -07:00
Calvin Montgomery a8f1e48157 ffmpeg: remove bitrate and codec warning
Browsers which don't support CyTube's limited subset of
generally-supported codecs probably aren't worth warning about.

1Mbps is way too low of a threshold to warn about bandwidth, but even if
the threshold for warning were raised, it's probably still not that
useful.
2017-07-22 10:43:18 -07:00
Calvin Montgomery c152a19624 Ignore library cached metadata when queueing
The use of the channel library as a cache for metadata to avoid
re-requesting metadata for known media is an optimization that dates
back to 1.0.  However, it doesn't have any TTL, is prone to bugs, and is
of dubious value.

This commit ignores the results of the library check when queueing a new
video, opting to always re-request the metadata.  This fixes a few bugs:

  * Google Drive metadata being lost when storing in library
  * Streamable metadata being lost when storing in library
  * Videos in the channel library that are now unavailable on their
    source website being queueable and then failing to play (e.g. deleted
    YouTube videos).

In its place, a small fail-open check is left behind to emit metric
counters on how many queues would have been cache-hits, to provide
insight into whether a proper caching solution (i.e. one not tacked on
top of the library) would be worth pursuing or not.  This will be
removed eventually.
2017-07-15 14:41:37 -07:00
Calvin Montgomery b7ceee8ef4 Fix video sources being lost when playlist is saved 2017-07-15 14:12:32 -07:00
Calvin Montgomery 07179d6c83 Upgrade to jsli 2.0 2017-07-08 20:11:54 -07:00
Calvin Montgomery 53cee986c6 Resend userlist if rank changes meta visibility
Fixes #681.  Technically, resending the entire userlist is not
necessary; it would be sufficient to resent setUserMeta, but there's not
currently a bulk frame for that so sending the userlist is probably more
efficient.
2017-06-17 09:47:22 -07:00
Calvin Montgomery 8d40c87dda Deprecate jwplayer and googleplus videos 2017-04-11 21:55:31 -07:00
Calvin Montgomery 8306d2d1b6 Refactor logging 2017-04-04 23:02:31 -07:00
Calvin Montgomery b1a328d2e0 Implement max total video time per user 2017-04-03 21:18:40 -07:00
Calvin Montgomery 41a538c655 Fix playlist visibility: wait for U_HAS_CHANNEL_RANK instead of just login 2017-03-18 18:53:49 -07:00
Calvin Montgomery e8d39850c5 Fix null check for youtube livestream check 2016-11-30 09:24:28 -08:00
Calvin Montgomery aa06884bd6 Ignore cached metadata for youtube livestreams 2016-11-17 23:00:06 -08:00
calzoneman d9d385f85e Fix an age old log message missing whitespace 2016-08-10 23:10:44 -07:00
calzoneman 75245e4d98 Include video ID in the progress bar to prevent false clears 2016-05-19 21:31:10 -07:00
calzoneman 0ee7f05213 Make polls more efficient
Instead of emitting frames to each individual socket, group them into
socket.io rooms of people who can see hidden poll results and people who
can't, then just do 2 broadcasts.
2016-04-02 11:57:26 -07:00
calzoneman 9debebd4b9 /clean: error when no argument given 2016-03-28 22:31:35 -07:00
calzoneman 319c52911a Resolve #553 2016-03-23 23:04:58 -07:00
calzoneman b3c85e8534 Limit requestPlaylist to once per 60 seconds
If clients call it quickly in succession with large playlists, it can
cause node to get stuck stringifying socket.io frames and cause an out
of memory crash.
2016-02-06 19:40:50 -08:00
calzoneman be4011cda1 Replace old ActiveLock system with a slightly better one
CyTube has been crashing recently due to things attempting to release
the reference after the channel was already closed (apparently the
uncaughtException handler isn't called for this?).  This newer
implementation keeps track of what is ref'ing and unref'ing it, so it
can log an error if it detects a discrepancy.

Also changed the server to not delete the refCounter field from the
channel when it's unloaded, so that should reduce the number of errors
stemming from it being null/undefined.
2015-12-25 17:07:25 -08:00
calzoneman 5a2ef2d24d Minor fixes for queueWarn 2015-12-20 22:35:24 -08:00
calzoneman 59468ec77c Add safeguard to prevent #539 2015-12-02 20:59:46 -08:00