meeb / tubesync

Syncs YouTube channels and playlists to a locally hosted media server
GNU Affero General Public License v3.0
1.75k stars 117 forks source link

The "video" directory should be an option not the default #107

Open subasically opened 3 years ago

subasically commented 3 years ago

The video directory should be an option in the UI instead of a default/hardcoded parameter.

meeb commented 3 years ago

It''s pretty important for linking up to a media server that audio and video media be downloaded to different directory paths to be handled by different libraries which is the core use case for TubeSync. Is there a technical reason you want this? Or is it just you don't like "video" in your media server directory path as a preference?

Extarys commented 3 years ago

I was looking into this too! My reason would be that I won't download music/audio only file from youtube. Therefore my filepath would be "/NAS/Youtube/Channel/Video.mp4". It could lead to less hierarchy/folder pollution.

meeb commented 3 years ago

OK, makes sense. What would you expect to happen if you toggled a theoretical UI option to remove the "audio/video" directory prefixes then added an audio-only source? Just bundle it all into the same directory regardless?

Extarys commented 3 years ago

Probably show a warning that this might screw up the library (jellyfin/plex),

meeb commented 3 years ago

Generally I've been attempting to keep the number of options to a minimum for TubeSync where possible, there is no global options settings in the application itself beyond the container environment variables. Your examples could work, but could also introduce foot-guns where media potentially gets re-downloaded in bulk or libraries break in unobvious ways.

These issues are easily fixable by knowledgeable users or by more code to auto-rename files of course, however this seems like moderate effort to appease some OCD directory naming. I can see why some users might find the forced directory prefixes a bit annoying but they are, unless someone thinks of a something I've not thought of, only cosmetic annoyances at worst and serve a purpose most of the time.

I'll put this onto the extended wishlist to look into, but to be honest unless someone wants to submit a sensible PR it's probably going to be near the bottom of my current priority list.

go2tom42 commented 2 years ago

I was looking into this too! My reason would be that I won't download music/audio only file from youtube. Therefore my filepath would be "/NAS/Youtube/Channel/Video.mp4". It could lead to less hierarchy/folder pollution.

If using docker change volume to

    volumes:
      - /some/directory/tubesync-downloads:/downloads/video
pjrezai commented 1 year ago

I was looking into this too! My reason would be that I won't download music/audio only file from youtube. Therefore my filepath would be "/NAS/Youtube/Channel/Video.mp4". It could lead to less hierarchy/folder pollution.

If using docker change volume to

    volumes:
      - /some/directory/tubesync-downloads:/downloads/video

Hi! I am using docker / unraid. How would I do that. I know it is somewhat of a newbie question

meeb commented 1 year ago

@pjrezai the example given was for a docker-compose setup, you would need to modify your volume paths in unraid wherever that option is presented.

mckayc commented 10 months ago

OK. I am going crazy here. I have tried

volumes:
      - /some/directory/tubesync-downloads:/downloads/video

and it is not working for me. No matter what I do it still adds a "video" folder.

This is my use case: The way I have Plex setup is that I have a "TV-Kids" folder and I put all the TV shows and Youtube channel videos in that folder. Because Tubesync keeps on adding the "video" folder however I have to manually move files.

I feel like I have had this working before where the video folder didn't show up but now for the life of me whatever I do it ALWAYS comes back up.

Here is my Docker config:

  tubesync:
    image: ghcr.io/meeb/tubesync:latest
    container_name: tubesync
    restart: unless-stopped
    ports:
      - 4848:4848
    volumes:
      - /srv/dev-disk-by-uuid-......SSDrive...../SSD/tubesync/tubesync-config:/config
      - /srv/dev-disk-by-uuid-.....HDDrive...../tubesync-downloads:/downloads/video
    environment:
      - TZ=America/Denver
      - PUID=998
      - PGID=100    

Can anyone see anything I am doing wrong? I have seriously spent the last 3 hours trying to get this to work and every time I think it is working the video folder pops up again.

Thanks!

meeb commented 10 months ago

@mckayc I can't see anything particularly wrong with your setup, using the volume mounting to /downloads/video in the container should hide this in the /tubesync-downloads directory outside of the container. Just to really confirm, what does

docker inspect -f '{{ .Mounts }}' tubesync

show?

You could also just change the directory of the Plex library to point to the videos folder as well I suppose.

mckayc commented 10 months ago
[{bind  /srv/dev-disk-by-uuid-da442823-0107-40a7-be63-61e6841a5711/SSD/tubesync/tubesync-config /config  rw true rprivate} 

{bind  /srv/dev-disk-by-uuid-c86d7d16-7af6-4a4d-bc27-0aace5fb8074/tubesync-downloads /downloads/video  rw true rprivate} 

{bind  /srv/dev-disk-by-uuid-c86d7d16-7af6-4a4d-bc27-0aace5fb8074/Media /downloads   true rprivate}]

Yeah, I have considered just adding a new library to Plex. That would ultimately probably be an easier solution. It would be nice to keep things organized with the same structure I have though. I just don't know if this is something I am doing wrong or a limitation with tubesync. Thanks! @meeb

meeb commented 10 months ago

Ah I think your issue may be the nested mount? I've not tried that with Docker previously but having a mount in the container at /downloads and another one at /downloads/video may require something weird like specific mount orders or other fine controls docker-compose.yml doesn't provide. Do you need both /tubesync-downloads AND /Media outside of the container BOTH containing TubeSync media? I'd try removing the /srv/dev-disk-by-uuid-c86d7d16-7af6-4a4d-bc27-0aace5fb8074/Media volume and restarting it to see if that helps.

mckayc commented 10 months ago

Thanks again @meeb I removed all orphaned volumes but/srv/dev-disk-by-uuid-c86d7d16-7af6-4a4d-bc27-0aace5fb8074/Media /downloads keeps showing up as a volume when I run docker inspect -f '{{ .Mounts }}' tubesync

I am not really sure why I have that volume but I think you are right that it is the issue! I will keep poking around and hopefully can figure out how to get that volume to stop binding.

mckayc commented 10 months ago

Hey @meeb Thanks again for pointing me in the right direction. What I ended up doing was just completely removed the tubesync container then re-added it. That seemed to do the trick!