aboutsummaryrefslogtreecommitdiffstats
path: root/youtube
Commit message (Collapse)AuthorAgeFilesLines
* av-merge: Use .shift() instead of .pop() in appendQueue for FIFOJames Taylor2021-08-311-1/+1
| | | | | | | .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>
* av-merge: Fix handling of QuotaExceededErrorJames Taylor2021-08-311-15/+75
| | | | | | | | | | | | | | 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>
* fix "Security Error: Content, may not load data from blob"Jesús2021-08-301-1/+1
|
* licenses.html: updateJesús2021-08-291-6/+11
|
* Fix embed page broken due to changes to jinja variablesJames Taylor2021-08-292-4/+6
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* av-merge: Fix numDeleted not incremented during segment deletionJames Taylor2021-08-291-0/+1
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Add setting to prefer uni or pair sources and fix selection b/w themJames Taylor2021-08-291-4/+13
| | | | | | | | | 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>
* av-merge: Fix malformed mp4 fragments wrongly considered deletedJames Taylor2021-08-291-1/+32
| | | | | | | | 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>
* av-merge: print sourceBuffer.buffered in printDebuggingInfoJames Taylor2021-08-291-0/+7
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* av-merge: Fix error when switching qualities after endOfStreamJames Taylor2021-08-291-3/+5
| | | | | | | | | 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>
* av-merge: Add function to dump debugging infoJames Taylor2021-08-291-1/+12
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* av-merge: Use tickEnd+1 when calculating segment time rangesJames Taylor2021-08-291-4/+5
| | | | | | | | | | | | | | | | | | | | | | 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>
* av-merge: End stream correctly when last segments do not overlapJames Taylor2021-08-291-3/+2
| | | | | | | | | | | | 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>
* watch: Fix using_pair_sources being a list due to short-circuitingJames Taylor2021-08-291-1/+1
| | | | | | | | 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>
* watch.html: Move loose inline javascript into watch.jsJesús2021-08-295-236/+209
| | | | | | | | 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>
* av-merge: Use console.warn and console.errorJames Taylor2021-08-291-2/+2
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* av-merge: change QuotaExceeded messages to warningsJames Taylor2021-08-291-2/+2
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* av-merge: buffer same duration of audio and videoJames Taylor2021-08-291-4/+10
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* av-merge: Make segment fetching message more usefulJames Taylor2021-08-291-2/+7
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* av-merge: call mediaSource.endOfStream() so player pauses at endJames Taylor2021-08-291-4/+35
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Prevent Firefox from remembering quality select on page refreshJames Taylor2021-08-291-1/+1
| | | | | | | | | The video quality is only changed when the quality selector changes. If it was changed and the user refreshes, Firefox remembers the selected value, but since no change event is fired, the select will display the wrong quality. Signed-off-by: Jesús <heckyel@hyperbola.info>
* Integrate quality selection into PlyrJames Taylor2021-08-293-29/+117
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* fix missing data variableJesús2021-08-292-0/+15
|
* avmerge: Fix errors if close is called twiceJames Taylor2021-08-291-0/+4
| | | | | | | | | | | This can happen if the quality is changed from an avmerge source to an integrated source, and then changed back to an avmerge source Close is called the first change, but on the last change, it's called again because the avMerge object is still present, resulting in InvalidStateError Signed-off-by: Jesús <heckyel@hyperbola.info>
* avmerge: Remove obsolete shouldFetchNextSegment functionJames Taylor2021-08-291-9/+0
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* avmerge: Close streams to avoid errors while changing qualityJames Taylor2021-08-292-8/+41
| | | | | | | | | | | | | If a fetchRange network request finished after the quality was changed, there would be a "InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable" because appendSegment was trying to append to the sourceBuffer that was unusable after the video src was changed to a new mediaSource. Adds a close method to the AVMerge class to properly clean and close everything so these sorts of errors won't happen. Signed-off-by: Jesús <heckyel@hyperbola.info>
* avmerge: Buffer 50 mb ahead in videoJames Taylor2021-08-291-14/+43
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Add video quality selectorJames Taylor2021-08-293-66/+134
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Add support for more qualities, merging video+audio using MSEJames Taylor2021-08-295-31/+567
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Revert "Add support for more qualities, merging video+audio using MSE"Jesús2021-08-295-567/+31
| | | | This reverts commit d56df02e7b1eba86baf511289208295b1f6c5a50.
* Add support for more qualities, merging video+audio using MSEJames Taylor2021-08-295-31/+567
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* [frontend]: fix current versionJesús2021-08-271-2/+2
|
* [frontend]: improve current versionJesús2021-08-271-1/+1
|
* Fix comment reply url extraction due to youtube changes0.1.0James Taylor2021-08-231-3/+7
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Fix comments extraction due to new response continuation key nameJames Taylor2021-08-231-2/+6
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* [opensearch]: improveJesús2021-08-142-3/+9
|
* [embed]: minor fixJesús2021-08-141-1/+1
|
* [embed]: fix sha512sumJesús2021-08-141-38/+2
|
* [librejs]: add mising plyr-start.jsJesús2021-08-141-0/+5
|
* [Frontend]: fix macroJesús2021-08-141-7/+7
|
* [get_app_version]: check git commandJesús2021-08-111-21/+24
|
* [comments]: pep8Jesús2021-08-101-4/+1
|
* [comments_info]: relax traceback messageJesús2021-08-101-2/+2
|
* [plyr]: minor fix syntaxJesús2021-08-091-1/+0
|
* [plyr]: updateJesús2021-08-096-3885/+3210
|
* [plyr]: Remove unimportant filesJesús2021-08-0911-40844/+0
|
* Fix description extraction in search resultsJames Taylor2021-08-091-1/+5
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Prefix youtube URLs in video descriptions and channel about pageJames Taylor2021-08-093-0/+26
| | | | | | Closes #75 Signed-off-by: Jesús <heckyel@hyperbola.info>
* Fix (dis)like, music list extraction due to YouTube changes (again)James Taylor2021-08-092-9/+56
| | | | | | | | | | | | | | | YouTube reverted the changes they made that prompted f9f5d5ba. In case they change their minds again, this adds support for both formats. The liberal_update and conservative_update functions needed to be modified to handle the cases of empty lists, so that a successfully extracted 'music_list': [{'Author':...},...] will not be overwritten by 'music_list': [] in the calls to liberal_dict_update. Signed-off-by: Jesús <heckyel@hyperbola.info>
* Switch to new comments api now that old one is being disabledJames Taylor2021-08-094-31/+66
| | | | | | | | | | | watch_comment api periodically gives the error "Top level comments mweb servlet is turned down." The continuation items for the new api are in a different arrangement in the json, so changes were necessary to the extract_items function. Signed-off-by: Jesús <heckyel@hyperbola.info>