Giter Site home page Giter Site logo

xiovv / golty Goto Github PK

View Code? Open in Web Editor NEW
247.0 247.0 18.0 120.9 MB

A selfhostable service for automatically downloading YouTube channels, playlists and videos. It's like Sonarr, but for YouTube.

License: GNU General Public License v3.0

Go 71.92% HTML 0.54% Vue 20.77% CSS 4.21% TypeScript 2.56%
archiving automation content selfhosted youtube

golty's Introduction

Hi there ๐Ÿ‘‹

  • ๐Ÿ”ญ Iโ€™m currently working on: Golty
  • ๐ŸŒฑ Iโ€™m currently learning: Vue
  • ๐Ÿ“ซ How to reach me: [email protected]
  • โšก Fun fact: I love homelabbing and motorsports!

๐Ÿš€ Languages and Tools:

๐Ÿ“Š GitHub Stats:

XiovV's streak




golty's People

Contributors

biodrone avatar ddwag1 avatar dependabot[bot] avatar glahera avatar gnur avatar mkolesnik avatar xiovv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

golty's Issues

As an admin, I want to be able to view and manage existing users, so I can delete accounts or change their information.

Acceptance criteria:

  • User management page (the "Users" nav item) should display all existing users, including the currently logged in admin
  • The user management page should not be accessible by non-admin users
  • Upon clicking on a user, the page for editing that user's settings should open
  • The top bar in the edit user settings page should have the trash button for deleting a user

Quality for Video and Audio is wrong on Channels tab

Describe the bug
The available quality is: best/worst/worst

To Reproduce
Open GoAutoYT, nagivate to Channels, change option to Audio and Video, select quality.

Expected behavior
It should be: best/medium/worst

Screenshots
image

Desktop (please complete the following information):

  • OS: Docker on QNAP TS-963x

Additional context
n/a

Issue downloading Playlists

Hi,
I try downloading a playlist and get the following error:

There was an error downloading the target Download: DownloadVideo: ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube

I get this on every playlist I tried.
Does anyone have an Idea whats going on?

Add sleep interval option to avoid HTTP Error 429

When checking channels, youtube-dl process dies with exit code 1
Further debugging inside of the container I see this when trying to get channel contents:

ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
[download] Downloading video 24 of 718
[youtube] TOcGSwJBPMQ: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
[download] Downloading video 25 of 718
[youtube] ws694xrKopA: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
[download] Downloading video 26 of 718
[youtube] UtnsWzaoRtg: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
[download] Downloading video 27 of 718
[youtube] 6wsFjjhZPJI: Downloading webpage

Seems related to this post:

ytdl-org/youtube-dl#22839

Would be nice if we could add --sleep-interval option to the get channels calls, or throttle subsequent youtube-dl processes by a similar interval.

Running check on Channel fails

When running Check on YT Channel, process fails with exit code 1
For this example, I used Linus Tech Tips channel. I add his channel, but do not mark to do initial download (only want new episodes for example). Log fails with this:

{"level":"info","msg":"DOWNLOAD: {https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw  Video And Audio   any [] 12-06-2019 21:04:42 30 Channel /channels/%(uploader)s/video/%(title)s.%(ext)s}","time":"2019-12-06T21:15:56Z"}
{"level":"info","msg":"downloading video","time":"2019-12-06T21:15:56Z"}
{"level":"info","msg":"executing youtube-dl command: /usr/local/bin/youtube-dl --playlist-end 1 -o downloads/channels/%(uploader)s/video/%(title)s.%(ext)s https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw","time":"2019-12-06T21:15:56Z"}
{"level":"error","msg":"exit status 1/usr/local/bin/youtube-dl --playlist-end 1 -o downloads/channels/%(uploader)s/video/%(title)s.%(ext)s https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw","time":"2019-12-06T21:16:08Z"}
{"level":"info","msg":"returning response: {Error ERROR_CHECKING_PLAYLIST There was an error while checking the channel: v.Download: exit status 1}","time":"2019-12-06T21:16:08Z"}
{"level":"error","msg":"exit status 1/usr/local/bin/youtube-dl -o downloads/videos/%(uploader)s/audio/%(title)s.%(ext)s https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw","time":"2019-12-06T21:17:33Z"}

To get more information, I try to run the youtube-dl command directly from sh session inside the container:

/app # /usr/local/bin/youtube-dl --playlist-end 1 -o downloads/channels/%\(uploader\)s/video/%\(title\)s.%\(ext\)s https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw
[youtube:channel] UCXuqSBlHAE6Xw-yeJA0Tunw: Downloading channel page
[youtube:playlist] UUXuqSBlHAE6Xw-yeJA0Tunw: Downloading webpage
[download] Downloading playlist: Uploads from Linus Tech Tips
[youtube:playlist] playlist Uploads from Linus Tech Tips: Downloading 1 videos
[download] Downloading video 1 of 1
[youtube] mpxBmxj5mP0: Downloading webpage
[youtube] mpxBmxj5mP0: Downloading video info webpage
[download] downloads/channels/Linus Tech Tips/video/Backing Up Your Life is THIS Easy.f313.webm has already been downloaded
[download] 100% of 969.74MiB
[download] downloads/channels/Linus Tech Tips/video/Backing Up Your Life is THIS Easy.f251.webm has already been downloaded
[download] 100% of 13.69MiB
[ffmpeg] Merging formats into "downloads/channels/Linus Tech Tips/video/Backing Up Your Life is THIS Easy.webm"
ERROR: Conversion failed!

I did some Googling, and it appears that if I add a -x flag, it will work:

/app # /usr/local/bin/youtube-dl --playlist-end 1 -x -o downloads/channels/%\(uploader\)s/video/%\(title\)s.%\(ext\)s https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw
[youtube:channel] UCXuqSBlHAE6Xw-yeJA0Tunw: Downloading channel page
[youtube:playlist] UUXuqSBlHAE6Xw-yeJA0Tunw: Downloading webpage
[download] Downloading playlist: Uploads from Linus Tech Tips
[youtube:playlist] playlist Uploads from Linus Tech Tips: Downloading 1 videos
[download] Downloading video 1 of 1
[youtube] mpxBmxj5mP0: Downloading webpage
[youtube] mpxBmxj5mP0: Downloading video info webpage
[download] Destination: downloads/channels/Linus Tech Tips/video/Backing Up Your Life is THIS Easy.webm
[download] 100% of 13.69MiB in 00:04
[ffmpeg] Destination: downloads/channels/Linus Tech Tips/video/Backing Up Your Life is THIS Easy.opus
Deleting original file downloads/channels/Linus Tech Tips/video/Backing Up Your Life is THIS Easy.webm (pass -k to keep)
[download] Finished downloading playlist: Uploads from Linus Tech Tips

Docker ARM support

Is your feature request related to a problem? Please describe.
The Docker image unfortunately does not support the ARM architecture which means that the image does not work on a Raspberry Pi.

Describe the solution you'd like
A Dockerfile.armhf :)

Not downloading full channel.

Describe the bug
Channel has 500+ videos, I have set it up to watch for new uploads and checked download full channel. Downloaded about 75 videos and then decided to stop, unsure how to trigger it to continue.

To Reproduce
Maybe try pulling large channel?

Expected behavior
Download all channel and maybe add force download button?

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Ubuntu 18.04 headless remote server

Additional context
Add any other context about the problem here.

A few useful features

Project looks good, but a few useful things could make it great.

Naming Convention field, for path / file format.
Single Playlist support, for monitoring a single playlist.
Detect Playlists on a Channel, and allow selecting which ones to monitor.
Simple database (SQLite) just to track video download history (could be used to prevent redownloads, keep history and other useful features)

Maybe allow exposing a few YouTube-dl options.

Sort downloaded video into youtube channel and playlist folder

I would like GoAutoYT to be able to listen to specific youtube channels and download any new video and put them in the corresponding playlist folder that the video was published to.

For example:
/channels/"Channel name"/"Name of playlist"/"Name of video"

And videos not part of a playlist to be stored directly in the root "Channel name" folder.

Downloading playlist with "mp4" option doesn't download audio

Describe the bug
The downloaded files have no audio tracks.

To Reproduce
Download a playlist with the options "Video and audio", "mp4" and "best".

Expected behavior
The audio track is downloaded.

Tested running the docker image on Docker Desktop for Windows, using Linux containers.

Additional context
The run command, from the app log:
/usr/local/bin/youtube-dl --ignore-errors -f bestvideo[ext=mp4] -o downloads/playlists/%(playlist)s/%(title)s.%(ext)s https://www.youtube.com/playlist?list=XXXXXXX (Playlist ID redacted)

Also, a suggestion: since most people will want to customize their youtube-dl command, why not provide an option to specify a custom command?

Is the app still working?

Describe the bug
Cannot download or add any channels or playlists.

To Reproduce
Install docker image
Open webinterface
None of the options work, even stuff like saving the interval

Expected behavior
A success message when adding the channel :)

LOGS

{"level":"info","msg":"Initiating db","time":"2021-01-10T21:36:20Z"}
{"level":"info","msg":"server running on port 8080","time":"2021-01-10T21:36:20Z"}
{"level":"error","msg":"uploadCheckerChannels: GetCheckingInterval: empty target list","time":"2021-01-10T21:36:20Z"}
{"level":"error","msg":"uploadCheckerPlaylists: GetCheckingInterval: empty target list","time":"2021-01-10T21:36:20Z"}
{"level":"info","msg":"getting all channels from channels.json","time":"2021-01-10T21:36:25Z"}
{"level":"info","msg":"successfully read all channels","time":"2021-01-10T21:36:25Z"}
{"level":"info","msg":"[]","time":"2021-01-10T21:36:25Z"}
{"level":"info","msg":"received a request to get the checking interval","time":"2021-01-10T21:36:25Z"}
{"level":"info","msg":"returning response: {Error ERROR_GETTING_CHECKING_INTERVAL There was an error while getting the checking interval: GetCheckingInterval: empty target list}","time":"2021-01-10T21:36:25Z"}
{"level":"info","msg":"received a request to add a target","time":"2021-01-10T21:36:31Z"}
{"level":"info","msg":"executing youtube-dl command: /usr/local/bin/youtube-dl -j --playlist-end 1 https://www.youtube.com/user/Qdancedotnl","time":"2021-01-10T21:36:31Z"}
{"level":"error","msg":"From GetMetadata(): unexpected end of JSON input","time":"2021-01-10T21:36:34Z"}
{"level":"info","msg":"returning response: {Error ERROR_GETTING_METADATA There was an error getting channel metadata: From c.GetMetadata(): }","time":"2021-01-10T21:36:34Z"}
{"level":"info","msg":"getting all channels from channels.json","time":"2021-01-10T21:36:34Z"}
{"level":"info","msg":"successfully read all channels","time":"2021-01-10T21:36:34Z"}
{"level":"info","msg":"[]","time":"2021-01-10T21:36:34Z"}
{"level":"info","msg":"received a request to update the checking interval","time":"2021-01-10T21:38:34Z"}
{"level":"info","msg":"update checking interval","time":"2021-01-10T21:38:34Z"}
{"level":"info","msg":"returning response: {Error ERROR_UPDATING_CHECKING_INTERVAL There was an updating the checking interval: UpdateCheckingInterval: empty config list}","time":"2021-01-10T21:38:34Z"}
{"level":"info","msg":"received a request to add a target","time":"2021-01-10T21:39:08Z"}
{"level":"info","msg":"executing youtube-dl command: /usr/local/bin/youtube-dl -j --playlist-end 1 https://www.youtube.com/user/Qdancedotnl","time":"2021-01-10T21:39:08Z"}
{"level":"error","msg":"From GetMetadata(): unexpected end of JSON input","time":"2021-01-10T21:39:11Z"}
{"level":"info","msg":"returning response: {Error ERROR_GETTING_METADATA There was an error getting channel metadata: From c.GetMetadata(): }","time":"2021-01-10T21:39:11Z"}
{"level":"info","msg":"getting all channels from channels.json","time":"2021-01-10T21:39:11Z"}
{"level":"info","msg":"successfully read all channels","time":"2021-01-10T21:39:11Z"}
{"level":"info","msg":"[]","time":"2021-01-10T21:39:11Z"}
{"level":"info","msg":"getting all channels from channels.json","time":"2021-01-10T21:40:32Z"}
{"level":"info","msg":"successfully read all channels","time":"2021-01-10T21:40:32Z"}
{"level":"info","msg":"[]","time":"2021-01-10T21:40:32Z"}
{"level":"info","msg":"received a request to get the checking interval","time":"2021-01-10T21:40:32Z"}
{"level":"info","msg":"returning response: {Error ERROR_GETTING_CHECKING_INTERVAL There was an error while getting the checking interval: GetCheckingInterval: empty target list}","time":"2021-01-10T21:40:32Z"}
{"level":"info","msg":"received a request to get all videos","time":"2021-01-10T21:40:33Z"}
{"level":"info","msg":"getting all videos from videos.json","time":"2021-01-10T21:40:33Z"}
{"level":"info","msg":"successfully read all channels","time":"2021-01-10T21:40:33Z"}
{"level":"info","msg":"getting all channels from channels.json","time":"2021-01-10T21:40:35Z"}
{"level":"info","msg":"successfully read all channels","time":"2021-01-10T21:40:35Z"}
{"level":"info","msg":"[]","time":"2021-01-10T21:40:35Z"}
{"level":"info","msg":"received a request to get the checking interval","time":"2021-01-10T21:40:35Z"}
{"level":"info","msg":"returning response: {Error ERROR_GETTING_CHECKING_INTERVAL There was an error while getting the checking interval: GetCheckingInterval: empty target list}","time":"2021-01-10T21:40:35Z"}

Environment
latest stable image off the docker image: https://hub.docker.com/r/xiovv/go-auto-yt

Also if the app should still work what could be going wrong?

And a last question:
What are the different options we can enter in the output path?
We can get some options ( e.g. %(uploader)s ) from the default example but are there other options? Maybe the quality of the video?

Support custom youtube-dl command entry

I think you could add a lot of utility to this tool if you supported a way for the user to compose their own youtube-dl command, with whatever switches/additions they desired.
This would allow the user to configure whether to download thumbnails, subtitles, formats, etc.

(This would also instantly fill the following current feature requests: 67, 66, 42)

I think your goal with this may be to make a super simple tool for folks who just want the basics, and adding a bunch of UI buttons and toggles to expose youtube-dl's huge swath of options is not really in line with that.
But having a single 'advanced' toggle that allows direct access to the youtube-dl command allows you to support the full range of youtube-dl's functionality with minimal effort, for the power users who want to use it.

Thanks for your work on this! I've enjoyed playing around with it, and would definitely use it full time if this feature is added.

Edit: If you allowed a custom command per 'channel' this could also allow support of any site youtube-dl supports.

Error updating check interval

Describe the bug
Logs show error, and UI doesn't allow updating check interval.

{"level":"error","msg":"uploadCheckerChannels: GetCheckingInterval: empty target list","time":"2019-12-23T09:54:23Z"}

{"level":"error","msg":"uploadCheckerPlaylists: GetCheckingInterval: empty target list","time":"2019-12-23T09:54:23Z"}

There was an error downloading the target.

Describe the bug
I'm getting an error which states There was an error downloading the target Download: DownloadVideo: ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube

To Reproduce
On the playlist tab and using the enter custom youtube-dl output use %(uploader)s [%(channel_id)s]/%(playlist_title)s [%(playlist_id)s]/%(playlist_index)s - %(title)s [%(id)s].%(ext)s and wait for the playlist to download.

Expected behavior
The playlist should download and enter into the completed download history so it can be automatically monitored.

Desktop (please complete the following information):

  • OS: Unraid Docker Image.

Screenshots
firefox_7YMIWvMN5v
firefox_tNwtdnRwDQ

Additional context
Although the error appears which prevents go-auto-yt from seeing the download as "completed" everything downloads correctly with the correct file/folder names.

Sometimes instead of showing the error directly, it will also just be stuck spinning even after all downloads are also complete.

As a user, I want to be able to sign in to my account.

Acceptance criteria:

  • A sign in page is shown with a sign in form
  • The input is validated and potential errors are shown properly
  • In case the username or password is wrong, show an error
  • Upon successful login, user is redirected to the dashboard
  • The default username is admin
  • The default password is admin

As a user, I want to be able to see all of the videos that have been downloaded from a channel/playlist.

Acceptance criteria:

  • In the Channels page, the user should be able to click on the channel's avatar or name to open that channel's page
  • In the Playlists page, the user should be able to click on the playlist's thumbnail or name to open that playlist's page
  • The channel's page should display the channel's card at the top
  • The channel's video cards should be listed out (without displaying the avatar)
  • The playlist's page should display the playlist's name at the top
  • The playlist's video cards should be listed out (with the uploader's avatar)

As a user, I want to be able to add a channel/playlist.

Acceptance criteria:

  • The top bar in the Channels/Playlists page should have the "+" button which will open the dialog for adding a new channel
  • Validate the input and display any potential errors
  • If the channel/playlist has already been added, display an error
  • Start downloading the channel/playlist
  • Store video metadata:
    • Title
    • Thumbnail
    • Size
    • Download date
    • Upload date

Add channel form:

  • Channel/Playlist URL
  • Disable all of the inputs below
  • Upon entering the Channel URL/Playlist, display a channel/playlist card skeleton while the backend is fetching the channel's/playlist's information
  • After receiving the channel's/playlist's information, display it instead of the skeleton
  • After receiving the channel's/playlist's information, enable the inputs below
  • Video checkbox (checked by default)
  • Audio checkbox (checked by default)
  • Format dropdown (Auto by default)
  • Resolution dropdown (2160p be default)
  • "Automatically download new uploads" switch (enabled by default)
  • "Download the entire channel/playlist" switch (enabled by default)
  • "Add [Channel/Playlist Name]" button

playlist refresh time in hours

Using the docker version of the app when i try and update the playlist refresh time to 6 hours (well hours in general) i am getting the following error:

"There was an error parsing json: json: cannot unmarshal number into Go struct field CheckingIntervalPayload.CheckingInterval of type string"

Entering time in minutes seems fine though.

Note. I did create a xml template for the docker version and added it to Unraid store app. I will add issues/bugs that the users of Unraid find.

No New Videos - Ever

I have this running in UnRaid docker and it downloaded the full channels fine. However, it never finds any new videos in the watched channels. I have changed the check interval and it is the same behavior each time. I did have to manually set the interval in the json file because it only saved for the first channel and all others had a blank check interval. i have included screenshots of setup and log. I am newer to unraid but willing to try anything.

image
image
image

[question] control over where audio/video is saved?

I haven;t been able to run your program yet, sry. Can I adjust the download path for each channel? That would be great! It would greatly benefit media solutions like Plex that depend on the directory structure to sort/present their content in a structure way

Docker image no longer starts

A fresh install of the docker image is no longer starting without manual creation of the config files.
The error given by docker logs:

time="2019-12-18T04:25:17Z" level=error msg="database.load: could not read file: open config/playlists.json: no such file or directory"

time="2019-12-18T04:25:17Z" level=fatal msg="<nil>"

In order to start the docker image I have to recreate all 3 config json files manually.

directory creation error

By adding a playlist to the playlist download section - no costum path entered, downloaded videos will be stored as followed:
/app/downloadsYTUSERNAME/PLAYLIST/[...]
Instead of /app/downloads/YTUSERNAME/PLAYLIST/[...]

Running as Docker Container xiovv/go-auto-yt:stable

Cannot play anything downloaded

I am new here and having an issue with this application. I am running it in a docker in Unraid. Most things appear to work well including downloading of full channels. I unfortunately am unable to play the files that are being downloaded on any platform. I have moved the files into folders that are accessible and tried opening in VLC with CCCP installed as well as other players with no success.

Let me know if you require further information to help me.

Docker

Describe the bug

  • Switching to the Videos tab throws an error:
    Uncaught (in promise) SyntaxError: Unexpected token { in JSON at position 170 (videos:1)
  • Changing from Audio to Video And Audio
    Uncaught ReferenceError: changeExtension is not defined at HTMLSelectElement.onchange (videos:48)
  • Checking Enter custom youtube-dl output
    Uncaught ReferenceError: customYtdl is not defined at HTMLInputElement.onclick (videos:67)
  • Clicking Download Video
    Uncaught ReferenceError: startSpinner is not defined at downloadVideo (videos.js:2) at HTMLButtonElement.onclick (videos:72)

To Reproduce
docker-compose.yml:

  yt:
    image: xiovv/go-auto-yt:stable
    container_name: yt
    restart: always
    environment:
      - PUID=1000
      - PGID=1000
      - UMASK_SET=022
    volumes:
      - /srv/docker/yt/config:/app/config
      - /mnt/user/media/yt:/app/downloads

/etc/nginx/sites-enabled/yt:

server {
  listen 443 ssl;
  server_name yt.domain.com;

  ssl_certificate           /etc/letsencrypt/live/domain.com/fullchain.pem;
  ssl_certificate_key       /etc/letsencrypt/live/domain.com/privkey.pem;

  ssl_session_cache  builtin:1000  shared:SSL:10m;
  ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
  ssl_prefer_server_ciphers on;
  proxy_ssl_session_reuse off;

  location / {
    proxy_pass http://yt:8080/;
    proxy_ssl_verify off;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 900s;
    proxy_ssl_session_reuse off;
  }
}

Expected behavior
The video downloads

Logs

{"level":"info","msg":"initiated channels.json: 2","time":"2019-12-06T00:37:05Z"}
{"level":"info","msg":"server running on port 8080","time":"2019-12-06T00:37:05Z"}
{"level":"info","msg":"getting checking interval","time":"2019-12-06T00:37:05Z"}
{"level":"info","msg":"checking interval not yet specified","time":"2019-12-06T00:37:05Z"}
{"level":"info","msg":"got this data: {channels}","time":"2019-12-06T00:38:43Z"}
{"level":"info","msg":"getting all channels from channels.json","time":"2019-12-06T00:38:43Z"}
{"level":"info","msg":"successfully read all channels","time":"2019-12-06T00:38:43Z"}
{"level":"info","msg":"[]","time":"2019-12-06T00:38:43Z"}
{"level":"info","msg":"returning version number","time":"2019-12-06T00:38:43Z"}
{"level":"info","msg":"received a request to get all videos","time":"2019-12-06T00:39:11Z"}
{"level":"info","msg":"getting all videos from videos.json","time":"2019-12-06T00:39:11Z"}
{"level":"error","msg":"From GetChannels()open ./config/videos.json: no such file or directory","time":"2019-12-06T00:39:11Z"}
{"level":"info","msg":"returning response: {Error ERROR_GETTING_CHANNELS There was an error while getting channels: From GetVideos(): open ./config/videos.json: no such file or directory}","time":"2019-12-06T00:39:11Z"}
{"level":"info","msg":"got this data: {channels}","time":"2019-12-06T00:40:51Z"}
{"level":"info","msg":"getting all channels from channels.json","time":"2019-12-06T00:40:51Z"}
{"level":"info","msg":"successfully read all channels","time":"2019-12-06T00:40:51Z"}
{"level":"info","msg":"[]","time":"2019-12-06T00:40:51Z"}
{"level":"info","msg":"returning version number","time":"2019-12-06T00:40:51Z"}
{"level":"info","msg":"received a request to get all videos","time":"2019-12-06T00:41:48Z"}
{"level":"info","msg":"getting all videos from videos.json","time":"2019-12-06T00:41:48Z"}
{"level":"error","msg":"From GetChannels()open ./config/videos.json: no such file or directory","time":"2019-12-06T00:41:48Z"}
{"level":"info","msg":"returning response: {Error ERROR_GETTING_CHANNELS There was an error while getting channels: From GetVideos(): open ./config/videos.json: no such file or directory}","time":"2019-12-06T00:41:48Z"}
{"level":"info","msg":"getting checking interval","time":"2019-12-06T00:42:05Z"}
{"level":"info","msg":"checking interval not yet specified","time":"2019-12-06T00:42:05Z"}

Desktop

  • GoAutoYT Version: 0.4.2
  • Docker Version: 18.09.5, build e8ff056dbc
  • Docker Compose Version: 1.23.2, build 1110ad01
  • Docker Image: e947002f58aa (stable)
  • Server CPU: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz
  • Browser: Version 78.0.3904.108 (Official Build) (64-bit, Windows 10)

Additional context
On page load I get a console.log of an empty Array from index.js:238

[improvement] Have the ability to specify UID, GID and UMASK while in docker environment

Is your feature request related to a problem? Please describe.
When running docker container the files/directories created have always root:root as owner (or whiever else). It would be nice to have a way to specify it.

Describe the solution you'd like
Have the ability to specify UID, GID and UMASK for files. Linuxserver's docker images have a this functionality and I did found it great.

Example docker-compose.yml entries

    environment:
      - PUID=1234
      - PGID=5678
      - UMASK_SET=022

Describe alternatives you've considered
n/a

Additional context
n/a

soundcloud, mixcloud, etc support

Is your feature request related to a problem? Please describe.
youtube-dl supports downloading from lots of other websites.

Describe the solution you'd like
support for other websites, mainly soundcloud and mixcloud

Describe alternatives you've considered
my own bash scripts, support in go-auto-yt would be good :-)

Additional context
the first question is probably; would the current UI support this or would significant changes be needed?

[improvement] add support for auth + reverse proxy support

Especially for docker containers, it would be useful to have some basic authentication support (to protect from abuse) as well as supporting reverse proxy headers.

edit: I just saw on roadmap 'login screen', as this could be form-based login,

Channel downloads

Are channel downloads currently supported?

Describe the bug

There was an error while checking playlists: CheckAll: CheckNow: From c.GetMetadata(): ERROR: vP0ZfcuiR2c: YouTube said: Unable to extract video data

To Reproduce
When I try to download channels.

Desktop (please complete the following information):

  • Docker using Unraid

Addition of Floatplane

Describe the solution you'd like
I just started using Floatplane Downloader (https://github.com/Inrixia/Floatplane-Downloader) and while this software is working there are some improvements I would like to see. For one, a web GUI would be a great addition. Also, at the moment it creates episode numbers for compatibility with Plex which is great. However, the numbering of episodes is not chronological. My idea was to create a complete database of all video files and their metadata, and then using this to lookup information when downloading the video. Similar to the grabbing of metadata from TMDB by Radarr. To create this database I was looking at potential databases available from youtube uploads.

This is, of course, a completely different project but I thought it might be an interesting idea to add this to go-auto-yt. Especially if more youtubers join the Floatplane platform.

Additional context
Add any other context or screenshots about the feature request here.

spaces in commands

If I use "Enter custom youtube-dl output" and I use spaces like in the examples is not going to work.

/videos/%(release_date)s %(title)s [%(id)s].%(ext)s
or
/videos/%(uploader)s - %(title)s.%(ext)s

If I replace the spaces with underscores, it works.

Multiple video links, parrallel downloads

In the video tab, it would be nice to have a text box instead of a text input, so we can paste multiple lines of video links.

If these videos would be downloaded simultaneously (maybe 3-5 at a time) would be a huge plus.

I have seen other webgui and yours looks very good. Congrats!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.