Commit Graph

627 Commits

Author SHA1 Message Date
Sean Norwood
cfffa8bd38 chore: just render api data for now 2022-04-04 19:57:27 +00:00
a8b62e5cdc better error message on sponsorblock fail 2022-04-04 23:28:32 +07:00
730d12212f implement basic sponsblock indexing, #119 2022-04-04 23:28:32 +07:00
29f8e148da bump libraries 2022-04-04 23:28:32 +07:00
Sean Norwood
97c01a2f3a chore: type info for api 2022-04-04 02:52:23 +00:00
Sean Norwood
9284b93f2a chore: start laying out the home page
* Use the layout component
* Use SSR to get videos from API
2022-04-04 02:52:03 +00:00
Sean Norwood
4fa8cd89e2 chore: external script work and comments 2022-04-04 02:51:16 +00:00
Sean Norwood
a129e737d2 chore: add static images 2022-04-04 02:50:54 +00:00
Sean Norwood
8b10fd9302 chore: add various components
* Footer
* Head
* Layout
* Nav
* VideoList
2022-04-04 02:50:43 +00:00
Sean Norwood
7ac6e6c26b chore: use correct typescript version for eslint 2022-04-03 20:04:53 +00:00
Sean Norwood
2c4ab1bb42 chore: use new components 2022-04-03 20:04:28 +00:00
Sean Norwood
73106fc74a chore: add external scripts 2022-04-03 20:04:17 +00:00
Sean Norwood
3c4c15a8e3 chore: move dynamic header component to header file 2022-04-03 20:03:47 +00:00
Sean Norwood
62c219c2de chore: add custom head element 2022-04-03 20:03:30 +00:00
Sean Norwood
734078c5d7 Merge branch 'master' of https://github.com/bbilly1/tubearchivist into feat/react-frontend 2022-04-03 18:33:10 +00:00
Sean Norwood
3870a54d2e chore: enable streaming ssr 2022-04-03 00:28:12 +00:00
Sean Norwood
cf9181919a chore: initial suspense setup 2022-04-03 00:27:33 +00:00
Sean Norwood
ad67cb00e2 chore: remove console log 2022-04-03 00:27:00 +00:00
Sean Norwood
eec288af5f chore: add external js files 2022-04-03 00:26:53 +00:00
Sean Norwood
d880f95c44 chore: header component 2022-04-03 00:26:42 +00:00
Sean Norwood
1e3087c245 chore: update to react 18 2022-04-03 00:26:30 +00:00
cae00b032b return better data for ping api, add to readme 2022-04-01 16:24:40 +07:00
9ab6955125
add connection test api view 2022-03-31 21:13:21 +07:00
46622d9ab2
bump redis lib 2022-03-31 21:13:04 +07:00
Sean Norwood
1b5534b6d4 Initial React frontend work
Uses NextJS as a React framework
Initial import of assets in `public/`:
* css/
* favicon/
* img/

Initial authentication work
* Use next-auth CredentialsProvider to pull user information from TA
* Add sign in and sign out functionality using default next-auth
login page

TODO
* Custom login page
2022-03-29 17:19:24 +00:00
6f5969f520
add video list api view 2022-03-29 17:05:22 +07:00
0c8fa8f49e
clean up prints 2022-03-29 17:03:34 +07:00
80af255f25
reinvent SearchProcess class for API endpoints 2022-03-29 16:48:04 +07:00
cdc617c382
add datestr generator 2022-03-29 16:47:21 +07:00
f1fb504874
fix spacing 2022-03-29 10:33:43 +07:00
5dce2441fa
add API login view 2022-03-29 10:17:47 +07:00
5d8e314983
be more explicit what you are searching now 2022-03-28 12:43:57 +07:00
358194468e
increase version to v0.1.3 2022-03-26 19:47:50 +07:00
f15bb50cfe
fix playlist reindex after PendingList refactor 2022-03-26 18:31:00 +07:00
fcadb5ead8
add random headers for requests outside of yt-dlp 2022-03-26 11:49:53 +07:00
a0ed88580f
fix index validate_mappings for new nested object 2022-03-26 10:52:57 +07:00
40d7e6da37
add secondary sort for channel and title, #193 2022-03-25 17:28:17 +07:00
bcf9185bd3
implement es version check at startup 2022-03-25 15:33:09 +07:00
337b373628
improve build to install debug tools in testing 2022-03-24 19:54:47 +07:00
59d58f8866
bump redis version 2022-03-24 19:51:45 +07:00
d0f826485f
move and rename configure button 2022-03-24 16:10:40 +07:00
d5cd90eb34
style and toggle hide overwrite form 2022-03-24 15:43:15 +07:00
8d1d09e698
extend IndexPaginate to optionally return _source key 2022-03-23 17:17:42 +07:00
fb4c11bd38
refactor ElasticIndex and ElasticBackup to use ElasticWrap and IndexPaginate 2022-03-23 17:17:17 +07:00
bfcc538ed1
fix concurrency issue with subtitle indexing 2022-03-23 16:20:33 +07:00
912c19f6cf
use ElasticWrap in FilesystemScanner 2022-03-23 15:56:53 +07:00
fda520ad44
refactor and consolidate Reindex class 2022-03-23 15:48:38 +07:00
1f7d6871cf
use ElasticWrap to delete item from pending 2022-03-23 11:09:21 +07:00
5b1c9c64de
cleanup, use ElasticWrap 2022-03-23 09:44:31 +07:00
f802c4d596
remove logging 2022-03-22 18:43:29 +07:00
192d379a3e
refacter api views to use ElasticWrap 2022-03-22 18:43:16 +07:00
9f5c9b17a5
refactor redis connection, fix sync_redis_state task setup issue 2022-03-22 17:50:54 +07:00
fa25a56126
fail open for in continue watching videos building 2022-03-22 13:07:22 +07:00
75cd9d382d
fix duration builder on reindex by ignoring vtt files 2022-03-22 12:59:39 +07:00
fd4f15ab66
refactor StartupCheck into class, lock if already run for multithreading 2022-03-22 10:35:36 +07:00
1f1dfcb54f
better playlist scan message, private methods in YoutubeChannel class 2022-03-22 10:07:33 +07:00
3d451e47e5
full playlist refresh and index for channel overwrites 2022-03-22 09:42:41 +07:00
fc10fa62e8
remove now redundant find playlist botton 2022-03-21 19:07:58 +07:00
875c601f4e
implement index channel playlist from form 2022-03-21 18:27:00 +07:00
91a9477bba
refactor index_channel_playlists task, move to YoutubeChannel class 2022-03-21 17:59:21 +07:00
fc311a7b7e
refactor validate_playlists and move into DownloadPostProcess class 2022-03-21 11:14:44 +07:00
f803c5298b
fix missing update_status method call in ignore video 2022-03-21 11:09:16 +07:00
e67d576d79
fix missing video list in index_channel_playlists 2022-03-21 10:47:15 +07:00
7c6041d686
refactor VideoDownloader and implement per channel delete older than 2022-03-19 17:37:28 +07:00
1411262793
remember channel overwrites on rescan, remove unused rescape_all_channels method 2022-03-19 15:12:29 +07:00
9fd7e2b11a
rename channel_overwrites attribute 2022-03-19 15:03:38 +07:00
3ba6e0478d
fix filesysem rescan function 2022-03-19 14:36:46 +07:00
b68a00073f
fix thumbnail validation with new PendingList class 2022-03-19 14:27:37 +07:00
89428297c9
add download format channel overwrite per video 2022-03-18 22:22:41 +07:00
a7945e30e3
fix building missing vid ids list 2022-03-18 22:11:41 +07:00
ac9df4e082
map channel overwrite to video id for later efficient mapping 2022-03-18 21:39:33 +07:00
a6937db5fd
use the refactored PendingList class 2022-03-18 18:27:25 +07:00
05b8dbc02f
refacor PendingList class into subclasses 2022-03-18 17:19:21 +07:00
1498fadf27
implement channel playlist index overwrite 2022-03-16 12:32:42 +07:00
f0e82caebb
add bool true to channel overwrite form parser 2022-03-16 12:32:02 +07:00
2ef8823c2d
better channel overwrite update form 2022-03-16 12:09:50 +07:00
dc67293052
add fallback channel overwrite fallback to frontend 2022-03-15 17:45:43 +07:00
544d842a4a
rename channel format overwrite field 2022-03-15 17:45:15 +07:00
774220ab1f
add channel overwrite form to frontend, store in es 2022-03-15 12:00:48 +07:00
105d5bf3f7
add auto label to subtitle track 2022-03-13 22:56:20 +07:00
026cc378fe
add get_overwrites and set_overwrites methods for channel 2022-03-12 22:19:42 +07:00
8170d4913b
add fallback total video length if ffmpeg extraction failes 2022-03-12 21:53:03 +07:00
7595e7501f
sort continue watching videos 2022-03-12 20:29:26 +07:00
f6950a2ca5
list all in progress videos 2022-03-12 17:29:34 +07:00
aff0cfb794
fix retiming issue for auto subtitles 2022-03-11 17:47:04 +07:00
d3e9646fb6
private methods for YoutubeSubtitle and SubtitleParser 2022-03-10 20:45:13 +07:00
Nathan DeTar
6e3df21f8c
Continue Watching Section (#188)
* Replaced isWatched() function.

* Switched to `updateVideoWatchStatus()` function

* Updated Onclick to `updateVideoWatchStatus(this)`

* Handle `this` input in `updateVideoWatchStatus()`
2022-03-10 20:20:23 +07:00
1ce832b846
fix autocaption extraction, flatten words, #180 2022-03-10 19:58:13 +07:00
6a6c8fa5d8
bump yt-dlp version 2022-03-10 17:39:35 +07:00
c186798e78
rewrite SubtitleParser, #180 2022-03-09 00:25:44 +07:00
40c8e6d146
standardize template jinja indentation 2022-03-07 20:58:17 +07:00
fb12a32d4f
use generic data-id and data-status attributes for watched checkbox 2022-03-07 20:48:45 +07:00
437e83b2ae
add continue watching section to home page 2022-03-07 20:26:37 +07:00
25bc66ae80
bump django version 2022-03-07 20:23:23 +07:00
Nathan DeTar
ad5e74cb27
Prevent setting progress bar on player close if video is watched. (#182)
* Prevent setting progress bar on close if watched.
2022-02-26 18:11:09 +07:00
b28905bbae
bump footer version v0.1.2 2022-02-25 12:27:16 +07:00
36a2996cda
clean exit of progress builder when no videos in channel 2022-02-25 12:20:22 +07:00
b98ccd9dab
handle error if subscribed channel not available anymore, #175 2022-02-25 11:21:29 +07:00
060f0d575e
change color of progress bar to dark 2022-02-25 10:51:37 +07:00
Nathan DeTar
99c97a703f
Reduce API Calls (#181)
* Reduce API calls

* Fix video id

* Updated `createVideoTag()` description.

* Fixed URL used for cast integration

* Check video duration

* Updates progress bar on watched and close.

* Set progress bar width to 0% by default

* Cleanup, function descriptions

* Cleanup console logging

* Update progress bar on cast progress every 10s

* Catch short <30s videos and mark as watched
2022-02-25 10:39:33 +07:00
806448624d
return if no in progress videos 2022-02-24 21:25:12 +07:00
df777104af
add video progress bar to channel_id and playlist_id views 2022-02-24 19:30:12 +07:00
d88d6d6a61
add video progress bar 2022-02-24 18:58:26 +07:00
6078d8d276
add youtube_id to progress api key 2022-02-24 18:55:52 +07:00
c4d6bb35a3
add list_items for wildcard matching 2022-02-24 18:55:18 +07:00
e0db73543e Merge branch 'master' into testing 2022-02-24 09:39:56 +07:00
Nathan DeTar
4812b8da55
Save Video Progress (#179)
* Added cast integration docs.

* Changed header sizes.

* Added more space above Requirements

* Added cast integration docs.

* Removed separate cast integration docs

* Further indented quote from Google

* Switch to HTML based video position.

* Ground work for API changes and video progress

* Added onpause attribute to video.

* Added save video progress feature.

* Added API check for subtitle status.

* Switch method to DELETE if position is 0

* Added `createVideoTag()` function

* Added `InsertVideoTag()` function

* Switch to JS generated video tag, add on page load

* Removed extra data from DELETE request

* Removed unused code

* Reduced duplicate code

* Cleanup & groundwork cast pull metadata from API

* Minor bug fix

* Fix saving video progress on player close.

* Only send video progress when unwatched

* Cleanup

* Added `getURL()` function

* Cast use API & save progress/mark as watched

* Added cast progress checks

* Changed thresholds for marking videos as watched

* Added `watchedThreshold()` function
2022-02-24 09:36:31 +07:00
b8b95f9d79
inheirt VideoProgressView from base class to get auth 2022-02-21 20:59:04 +07:00
ec00568008
fix auto reset of playlist_subscribed 2022-02-20 19:22:11 +07:00
241d8326f7
add video progress API endpoints 2022-02-17 18:20:30 +07:00
4d83af7c14
bump redis client 2022-02-17 18:19:52 +07:00
265795f4a9
add config key to api response 2022-02-17 16:59:59 +07:00
047fc1f3f1
bump release version 2022-02-13 10:58:58 +07:00
8fce31b983
fix reindex and deactivate error 2022-02-13 10:05:08 +07:00
fef866bf0b
indicate max page size on downloads page, add note to wiki, #156 2022-02-12 19:42:07 +07:00
428cc315e4
Subtitle improvements, #build
Changes:
- merges subtitle suport for JS video player
- merges hint what to do when no videos found
- merges better indexing and error handeling of subtitles
2022-02-12 19:11:47 +07:00
Nathan DeTar
385d6bace8
Fix cast support to handle new video tag format. (#169)
* Added subtitle support to JS player.

* Move `video-item` id to source tag.

* Move `video-item` id to source tag.

* Fix cast support to handle new video tag format

* Add subtitle support to cast integration, WIP

* Replace `&amp` with `&` in video titles.

* Check if the video is already marked as watched

* Switch to HTML watched check.
2022-02-12 19:08:19 +07:00
78720b33b7
clean exit when auto subtitle extract fails 2022-02-12 18:52:03 +07:00
ce4fa8ee61
delete existing before of reindexing subtitles 2022-02-12 18:22:01 +07:00
a5f6be16e1
switch subtitle source order 2022-02-12 17:09:05 +07:00
b494fc10af
cover edge cases where end timestamp is after start timestamp of new cue 2022-02-12 16:03:04 +07:00
09500557c8
open fail on subtitle line parse error 2022-02-11 18:47:29 +07:00
7524691b79
implement API token revoke 2022-02-11 18:19:10 +07:00
f1de8db4f3
hide API token by default 2022-02-11 17:18:37 +07:00
08f5248e7a
make subtitle index optional 2022-02-11 13:36:36 +07:00
Stephen Herbein
4467e97f3c
When no videos are found, add a hint to start a search/download (#167) 2022-02-11 12:52:26 +07:00
af8e01cd8c
fix clean exit if no subtitles selected 2022-02-11 09:03:56 +07:00
Nathan DeTar
656a0c7327
Added subtitle support to JS player. (#168) 2022-02-11 08:53:09 +07:00
16f33feda0
process subtitle media url paths 2022-02-10 19:45:22 +07:00
3ea5e9c537
bump dependencies 2022-02-10 19:27:05 +07:00
4d30bed3cc
extend delete video to also delete subtitles 2022-02-10 19:09:07 +07:00
0e56efc428
limit filesystem scan to mp4 files only 2022-02-10 18:48:35 +07:00
077692987b
fix multi language subtitle extractor, and better regex for timestamp matching 2022-02-10 18:32:23 +07:00
b071612038
better error raising for add player info 2022-02-10 17:34:21 +07:00
0414df0de0
fix key error for subtitle source 2022-02-10 17:10:30 +07:00
a2cae51f48
bulk import subtitle lines into es 2022-02-10 17:02:19 +07:00
9f652802ae
add new mapping for subtitle index 2022-02-10 11:47:14 +07:00
4e4cfe3334
pass whole video object into YoutubeSubtitle class 2022-02-09 23:40:15 +07:00
6cb892a811
integrate auto generated subtitle cleaner 2022-02-09 21:33:41 +07:00
5f6158243e
auto generated subtitle parser and cleaner 2022-02-07 21:18:52 +07:00
1664b0d4fc
restructure video tag to add subtitle tracks 2022-02-06 00:08:24 +07:00
e98ffc0050
add subtitles mapping to video index 2022-02-05 23:50:47 +07:00
52013aff3f
fix subtitle download of first video of channel without folder 2022-02-05 23:42:42 +07:00
44af78b7e3
handle NA in ffprobe duration extractor 2022-02-05 23:09:05 +07:00
2bf9e9683b
error handeling in _normalize_lang to skip livechat and ignore missing 2022-02-05 22:51:38 +07:00
f5f46349b2
handle rescan name change 2022-02-05 22:38:59 +07:00
851fbae900
fix video template dislike icon and add watched icon 2022-02-05 18:42:09 +07:00
91452b5114
remove redundant video player api endpoint 2022-02-05 18:35:02 +07:00
5b37bd059c Merge branch 'testing'
combine new api endpoints from #151
2022-02-05 18:27:24 +07:00
Nathan DeTar
9079a2a78b
Get Video Player Data Using New API (#151)
* Get  video player data using new API

* Spelling

* Removed extra data from play button

* Reworked createPlayer, switched functions to API

* Add theme to scrollbar

* Removed extra metadata from playlist page

* Removed extra metadat from channel page

* Reworked createPlayer, switched functions to API

* Update style.css

* Changed watched indicator to match createVideo()

* Fixed createPlayer() watched button

* Fix watched indicator duplication

* Minor clean up

* Removed player-wrapper background

* Added video/channel info to generated player

* Removed description due to textReveal() conflict

* Mark video as played at 90% playback

* Groundwork for saving video playback

* Add half and empty stars to getStarRating()

* Check videoProgress input.

* Added last refresh and date published

* Switched date in create functions to API

* Fomatted dates to match the old format

* Remove console log from formatDates()

* Cleaned up error on video player close

* Added check for ryd dislikes/rating

* Refined ryd check

* Simplified player

* Added player stats css formatting

* Formatting for playlist name/link

* Add playlist title/link to player

* Commented out no longer used code

* Fix missing end `"` on video-player class

* Additional playlist error checking

* Change setting video progress to html method

* center thumbs icon, add eye icon for watched

* add playerStats builder example, change some spacing

* Removed `-` before playlist, reordered cast button

* Minor cleanup of unused code.

* Corrected POST data formating

* consolidate video api calls into one

* remove redundant api calls for search result population

* do some jshint

* shorten unit and add K to formatNumbers

Co-authored-by: simon <simobilleter@gmail.com>
2022-02-05 18:26:31 +07:00