|
| 1 | +{ nixpkgs-unstable, ... }: |
| 2 | + |
| 3 | +{ |
| 4 | + imports = [ "${nixpkgs-unstable}/nixos/modules/services/misc/ytdl-sub.nix" ]; |
| 5 | + |
| 6 | + services.sshfs.mounts."/mnt/youtube" = { |
| 7 | + host = "u381435.your-storagebox.de"; |
| 8 | + port = 23; |
| 9 | + user = "u381435"; |
| 10 | + path = "youtube"; |
| 11 | + readOnly = false; |
| 12 | + allowOther = true; |
| 13 | + }; |
| 14 | + |
| 15 | + services.ytdl-sub.instances.default = { |
| 16 | + enable = true; |
| 17 | + schedule = "3/8:17"; |
| 18 | + |
| 19 | + config = { |
| 20 | + presets."YouTube Playlist" = |
| 21 | + let |
| 22 | + base_name = "{subscription_name}/{playlist_index_padded}_{uid}_{%sanitize(title)}"; |
| 23 | + in |
| 24 | + { |
| 25 | + preset = [ |
| 26 | + "Best Video Quality" |
| 27 | + "Chunk Downloads" |
| 28 | + ]; |
| 29 | + download = "{subscription_value}"; |
| 30 | + output_options = { |
| 31 | + output_directory = "/mnt/youtube"; |
| 32 | + file_name = "${base_name}.{ext}"; |
| 33 | + maintain_download_archive = true; |
| 34 | + }; |
| 35 | + chapters = { |
| 36 | + embed_chapters = true; |
| 37 | + sponsorblock_categories = "all"; |
| 38 | + remove_sponsorblock_categories = [ |
| 39 | + "sponsor" |
| 40 | + "selfpromo" |
| 41 | + "interaction" |
| 42 | + ]; |
| 43 | + }; |
| 44 | + embed_thumbnail = true; |
| 45 | + subtitles = { |
| 46 | + subtitles_name = "${base_name}.{lang}.{subtitles_ext}"; |
| 47 | + subtitles_type = "vtt"; |
| 48 | + embed_subtitles = true; |
| 49 | + allow_auto_generated_subtitles = true; |
| 50 | + languages = [ |
| 51 | + "en" |
| 52 | + "de" |
| 53 | + ]; |
| 54 | + }; |
| 55 | + ytdl_options = { |
| 56 | + cookiefile = "/var/lib/ytdl-sub/default/.cookies"; |
| 57 | + }; |
| 58 | + overrides = { |
| 59 | + chunk_max_downloads = 200; |
| 60 | + }; |
| 61 | + }; |
| 62 | + }; |
| 63 | + |
| 64 | + subscriptions."YouTube Playlist" = { |
| 65 | + algorithmen_und_datenstrukturen = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7q2hZHyLJS6IeHQIlyEgKqf"; |
| 66 | + angular_5 = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7pY65LXhI1_bIcOByRhP9Xb"; |
| 67 | + anonymitaet_im_internet = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7on8Ckrk2wo4ySeenf3rgf0"; |
| 68 | + assembler = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rhjy2t320NvKKGwP6Rxnpg"; |
| 69 | + bash = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7r-Tw-cNntRgvwA7nXPAjP4"; |
| 70 | + binaere_mathematik = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rsjQsc8hFAdR4BlO_MQib1"; |
| 71 | + binary_exploitation_secure_coding = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qff-bnM05OqSI0fx4GknZ6"; |
| 72 | + bitcoin_blockchain_kryptowaehrungen = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oiW2UVh1Go8JgllRbZRcPK"; |
| 73 | + clean_code = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7ryyZikMDPxxyYxEKtKn0ji"; |
| 74 | + cloud = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oxg9u5X2a-9X_jpN8iPOQy"; |
| 75 | + cpp = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oG-kkn36ZnDpRq6iahUXZS"; |
| 76 | + c_sharp = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rlNexPh8wjI2DyABX8It7U"; |
| 77 | + css3_fuer_anfaenger = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qQz698kYRkkBXJDeXJY_I7"; |
| 78 | + c = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7q4shI4L__SRpetWff9BjLZ"; |
| 79 | + dart_flutter = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qokXX4II7FCZthJcrirT4o"; |
| 80 | + data_mining = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qIOuGJrd-lu-ZZc9t4EdwM"; |
| 81 | + datenvisualisierung = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7pb4apqIMKvCz37t_dLznMm"; |
| 82 | + devops_grundlagen = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7pSbRnMtEG5XEdYVwJE5se9"; |
| 83 | + docker = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oea6IDCLzpKe5XfLmWCwgr"; |
| 84 | + firewalls = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oAAFVjNrAz1uRqIcanXreg"; |
| 85 | + ghidra_reverse_engineering = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oQc3MxjWB-rYHHo9vX905a"; |
| 86 | + git_und_github = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rbmmqb1Lt_RGU4DEhelTrR"; |
| 87 | + graphentheorie = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7q2hZHyLJS6IeHQIlyEgKqf"; |
| 88 | + haskell = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7pFIXDN1NLw6jMExuK-wN8I"; |
| 89 | + html5_fuer_anfaenger = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qIbKPeroqn3-BkUTWzYBT4"; |
| 90 | + iam = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rBqyMDGlv4LZmNrq1gChjh"; |
| 91 | + it_sicherheit_hacken_essentials = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oVGaVtkLlu3jYl_D8ugxeT"; |
| 92 | + java_algorithmen = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7o4qcD8tepVY5k7YiHYfMu5"; |
| 93 | + java_fortgeschrittene_techniken = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oirQMpjPjrmNx4vcVIGIGY"; |
| 94 | + java_ray_tracing = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rvhHip_LTM-J-5wHw7dWnw"; |
| 95 | + javascript_express = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7ogA_q-mOoYH3dDQIh8B3Oe"; |
| 96 | + javascript_jest = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qgQ2jnCFTo_knQTbpU5W4X"; |
| 97 | + javascript = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qOfMI2ZNk-LXUAiXKrwDIi"; |
| 98 | + java_swing = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7o5ALam15-pQWtf22RgU6D7"; |
| 99 | + java = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qI9vtiiU5bJBfbxqBailVM"; |
| 100 | + jquery = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qbE13388pQpsXQkpRQ96sM"; |
| 101 | + kotlin_fortgeschrittene_techniken = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rylgyThgUldHG8KE6Nbc1O"; |
| 102 | + kotlin = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rylgyThgUldHG8KE6Nbc1O"; |
| 103 | + kryptographie = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7pWwFv5APk240hrehtCJae-"; |
| 104 | + lambda_kalkuel = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oBz3PP5sGIkLnmBbw10UUP"; |
| 105 | + latex = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7phxF5hBRWNJx9-KtIHjVYv"; |
| 106 | + linux_autokey = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qCtvw6fiki0ihkwv7tIWN_"; |
| 107 | + linux_distributionen = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7o15uBS2J9Ryz-pM-P9xcWJ"; |
| 108 | + linux_gnupg = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7pUKpzMbzggvudByxULkut-"; |
| 109 | + linux = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oaopPUB0SEmzZLf3aE5msy"; |
| 110 | + llms = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7r4pg1j8eFsEQp3nL0w4jJz"; |
| 111 | + logik = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7r7ztDWJ66pMNRYaa_TUjKP"; |
| 112 | + machine_learning = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qoIUw0MBYQ9qJffZAVdRWC"; |
| 113 | + medienkompetenz = "https://www.youtube.com/playlist?list=PL6RbeNL8jYDees12cwPupr49wMArrVQEX"; |
| 114 | + mengenlehre = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7q_xBcMAlQ2K18HjMpAe0Nm"; |
| 115 | + netzsicherheit = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7ovwsL-PKfByCX-jGuZAopM"; |
| 116 | + netzwerktechnik = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rjW6OL4aGL-L1SzBUijh8r"; |
| 117 | + nodejs = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7o-5JThNbEVW6CGAhWJwnkA"; |
| 118 | + php_fuer_anfaenger = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rZMP1lj32Qyp4bkarvzCGm"; |
| 119 | + programmieren_lernen = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7onyAB57T0xqV2ZVSZOo79a"; |
| 120 | + prolog = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7q7ODiEAnq2EnsP-8LMGtfw"; |
| 121 | + python_data_science = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7o46LI06XkxAqcg4Ucm7pwn"; |
| 122 | + python_flask = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7otfP2zTa8AIiNIWVg0BRqs"; |
| 123 | + python_lets_code = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7p09TLbRQmqzbH81DHjBO8E"; |
| 124 | + python_pillow = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7p6tJ5S5Yvbw3reoZcHdyfR"; |
| 125 | + python_pyqt = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7ruNQIfS8NRpjzZIRq0A8QP"; |
| 126 | + python_pytorch = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rx55Mai21reZtd_8m-qe27"; |
| 127 | + python_selenium = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7ruEf-FwVD3Z5owHgdXNKlb"; |
| 128 | + python_tensorflow = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oj8ijyHSTOoW9bHLlXQ7hp"; |
| 129 | + python = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7q0ao69AIogD94oBgp3E9Zs"; |
| 130 | + react_js = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oi_Q4whC28Yp12l1I-hauk"; |
| 131 | + sass_scss = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oopYYGy5hX-Y6b07_3DPp5"; |
| 132 | + serveradministration = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7orIal3z8bq8HlHxnN-CtXr"; |
| 133 | + signalverarbeitung = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qvLZlbEiRwHoP0mbmAHNId"; |
| 134 | + softskills = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rC5g_bZNxZF6lOjSfNBKkE"; |
| 135 | + softwareengineering = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qNMn6zimfu4JPUklG-4Uu4"; |
| 136 | + spark_pyspark = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7pkk8-Yxa7mjAqi_E9DE_Z9"; |
| 137 | + sql_und_datenbanken = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7qYPusTRflv3tkzhYoT-KiB"; |
| 138 | + threejs = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rrmmZEVGA4GfLLNLlGipWo"; |
| 139 | + typescript = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7pwHqtQSBXGBUNkyGGOJQXf"; |
| 140 | + uml = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oC7U6tm0BOnGg1R9ont0Vo"; |
| 141 | + unreal_engine = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7olLCliQ05e6hvEOl6sbBgv"; |
| 142 | + windows10 = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7rRSgXNzZMV3XlrfklBugNW"; |
| 143 | + wireshark = "https://www.youtube.com/playlist?list=PLNmsVeXQZj7oIlWv3K9xACZi3fHfYLKtj"; |
| 144 | + |
| 145 | + # TODO |
| 146 | + # lustige_web_ui_effekte = ""; |
| 147 | + }; |
| 148 | + }; |
| 149 | + |
| 150 | + systemd.services.ytdl-sub-default.serviceConfig.ReadWritePaths = [ "/mnt/youtube" ]; |
| 151 | +} |
0 commit comments