invidious@localhost:~$ rm -rf invidious/ invidious@localhost:~$ git clone https://github.com/iv-org/invidious Cloning into 'invidious'... remote: Enumerating objects: 28673, done. remote: Counting objects: 100% (8139/8139), done. remote: Compressing objects: 100% (729/729), done. remote: Total 28673 (delta 7723), reused 7549 (delta 7408), pack-reused 20534 Receiving objects: 100% (28673/28673), 23.82 MiB | 30.92 MiB/s, done. Resolving deltas: 100% (19626/19626), done. invidious@localhost:~$ cd invidious/ invidious@localhost:~/invidious$ make shards install --production Resolving dependencies Fetching https://github.com/jeromegn/kilt.git Fetching https://github.com/kemalcr/kemal.git Fetching https://github.com/iv-org/protodec.git Fetching https://github.com/athena-framework/negotiation.git Fetching https://github.com/crystal-lang/crystal-sqlite3.git Fetching https://github.com/will/crystal-pg.git Fetching https://github.com/crystal-lang/crystal-db.git Fetching https://github.com/crystal-loot/exception_page.git Fetching https://github.com/luislavena/radix.git Fetching https://github.com/sija/backtracer.cr.git Installing db (0.10.1) Installing pg (0.24.0) Installing sqlite3 (0.18.0) Installing radix (0.4.1) Installing backtracer (1.2.1) Installing exception_page (0.2.2) Installing kemal (1.1.2) Installing kilt (0.6.1) Installing protodec (0.1.5) Installing athena-negotiation (0.1.1) crystal build src/invidious.cr --release --debug --progress --stats --error-trace Parse: 00:00:00.000422874 ( 1.16MB) [2/13] Semantic (top level) Checking player dependencies, this may take more than 20 minutes... If it is stuck, check your internet connection. Resolving player dependencies Fetched videojs-contrib-quality-levels Fetched videojs-mobile-ui Fetched videojs-overlay Fetched videojs-http-source-selector Fetched videojs-markers Fetched videojs-vtt-thumbnails Fetched videojs-share Fetched videojs-vr Fetched video.js Done checking player dependencies, now compiling Invidious... Semantic (top level): 00:00:04.626009079 ( 370.02MB) Semantic (new): 00:00:00.004526712 ( 370.02MB) Semantic (type declarations): 00:00:00.081525785 ( 386.02MB) Semantic (abstract def check): 00:00:00.031701957 ( 402.02MB) Semantic (restrictions augmenter): 00:00:00.026078638 ( 402.02MB) Semantic (ivars initializers): 00:00:01.607515761 ( 498.15MB) Semantic (cvars initializers): 00:00:00.041328223 ( 498.15MB) In src/invidious.cr:188:17 188 | Invidious::Jobs.start_all ^-------- Error: instantiating 'Invidious::Jobs.start_all()' In src/invidious/jobs.cr:37:19 37 | spawn { job.begin } ^---- Error: instantiating 'Invidious::Jobs::BaseJob+#begin()' In src/invidious/jobs/refresh_channels_job.cr:14:5 14 | loop do ^--- Error: instantiating 'loop()' In src/invidious/jobs/refresh_channels_job.cr:14:5 14 | loop do ^--- Error: instantiating 'loop()' In src/invidious/jobs/refresh_channels_job.cr:16:13 16 | PG_DB.query("SELECT id FROM channels ORDER BY updated") do |rs| ^---- Error: instantiating 'DB::Database#query(String)' In src/invidious/jobs/refresh_channels_job.cr:16:13 16 | PG_DB.query("SELECT id FROM channels ORDER BY updated") do |rs| ^---- Error: instantiating 'DB::Database#query(String)' In src/invidious/jobs/refresh_channels_job.cr:17:12 17 | rs.each do ^--- Error: instantiating 'DB::ResultSet+#each()' In src/invidious/jobs/refresh_channels_job.cr:17:12 17 | rs.each do ^--- Error: instantiating 'DB::ResultSet+#each()' In src/invidious/jobs/refresh_channels_job.cr:33:25 33 | channel = fetch_channel(id, pull_all_videos: CONFIG.full_refresh) ^------------ Error: instantiating 'fetch_channel(String, pull_all_videos: Bool)' In src/invidious/channels/channels.cr:198:44 198 | videos, continuation = IV::Channel::Tabs.get_videos(channel) ^--------- Error: instantiating 'Invidious::Channel::Tabs.get_videos(InvidiousChannel)' In src/invidious/channels/videos.cr:90:12 90 | return get_videos( ^--------- Error: instantiating 'get_videos(String, String, continuation: Nil, sort_by: String)' In src/invidious/channels/videos.cr:98:31 98 | initial_data = YoutubeAPI.browse(continuation: continuation) ^----- Error: instantiating 'YoutubeAPI.browse(continuation: String)' In src/invidious/yt_backend/youtube_api.cr:367:17 367 | return self._post_json("/youtubei/v1/browse", data, client_config) ^--------- Error: instantiating 'YoutubeAPI._post_json(String, Hash(String, Hash(String, Hash(String, Int64 | String)) | String), Nil)' In src/invidious/yt_backend/youtube_api.cr:623:20 623 | body = YT_POOL.client(client_config.proxy_region) do |client| ^----- Error: instantiating 'YoutubeConnectionPool#client((String | Nil))' In src/invidious/yt_backend/connection_pool.cr:29:14 29 | conn = make_client(url, region, force_resolve = true) ^---------- Error: instantiating 'make_client(URI, String, Bool)' In src/invidious/yt_backend/connection_pool.cr:75:25 75 | PROXY_LIST[region]?.try &.sample(40).each do |proxy| ^-- Error: instantiating '(Array(NamedTuple(ip: String, port: Int32)) | Nil)#try()' In src/invidious/yt_backend/connection_pool.cr:75:25 75 | PROXY_LIST[region]?.try &.sample(40).each do |proxy| ^-- Error: instantiating '(Array(NamedTuple(ip: String, port: Int32)) | Nil)#try()' In src/invidious/yt_backend/connection_pool.cr:78:16 78 | client.set_proxy(proxy) ^-------- Error: instantiating 'HTTPClient#set_proxy(HTTPProxy)' In src/invidious/yt_backend/proxy.cr:74:81 74 | @io = proxy.open(host: @host, port: @port, tls: @tls, connection_options: proxy_connection_options) ^----------------------- Error: instantiating 'proxy_connection_options()' In src/invidious/yt_backend/proxy.cr:87:26 87 | opts[:dns_timeout] = @dns_timeout ^----------- Error: expected argument #2 to 'Hash(Symbol, Float64 | Nil)#[]=' to be (Float64 | Nil), not (Time::Span | Nil) Overloads are: - Hash(K, V)#[]=(key : K, value : V) make: *** [Makefile:45: invidious] Error 1