Add youtube-dl-x protocol, reduces CPU usage MASSIVELY
This commit is contained in:
		
							parent
							
								
									144cc07189
								
							
						
					
					
						commit
						acf358317d
					
				@ -8,6 +8,50 @@ set("server.telnet.bind_addr", "0.0.0.0")
 | 
			
		||||
set("decoder.file_extensions.gstreamer",["wav", "webm"])
 | 
			
		||||
set("decoder.mime_types.gstreamer",["audio/x-wav", "audio/wav", "video/webm"])
 | 
			
		||||
 | 
			
		||||
register(name="Youtube_dl-x protocol settings","protocol.youtube-dl-x",())
 | 
			
		||||
register(name="Youtube-dl path","protocol.youtube-dl-x.path","youtube-dl -x --audio-format wav --postprocessor-args \"-y\"")
 | 
			
		||||
 | 
			
		||||
# Register the youtube-dl protocol, using youtube-dl.
 | 
			
		||||
# Syntax: youtube-d-xl:<ID>
 | 
			
		||||
# @flag hidden
 | 
			
		||||
def youtube_dl_x_protocol(~rlog,~maxtime,arg)
 | 
			
		||||
  binary = get(default="youtube-dl","protocol.youtube-dl-x.path")
 | 
			
		||||
 | 
			
		||||
  log = log(label="protocol.youtube-dl-x")
 | 
			
		||||
 | 
			
		||||
  def log(~level,s) =
 | 
			
		||||
    rlog(s)
 | 
			
		||||
    log(level=level,s)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  delay = maxtime - gettimeofday()
 | 
			
		||||
  cmd = "#{binary} -x --audio-format wav  --get-title --get-filename -- #{quote(arg)}"
 | 
			
		||||
  log(level=4,"Executing #{cmd}")
 | 
			
		||||
  x = get_process_lines(timeout=delay,cmd)
 | 
			
		||||
 | 
			
		||||
  x =
 | 
			
		||||
    if list.length(x) >= 2 then
 | 
			
		||||
      x
 | 
			
		||||
    else
 | 
			
		||||
      ["",".osb"]
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  ext = "wav"
 | 
			
		||||
  title = list.hd(default="",x)
 | 
			
		||||
  cmd   = "rm -f $(output) && #{binary} -x --audio-format wav -q -f bestaudio/best --no-playlist --exec \"mv {} $(output)\" -- #{quote(arg)}"
 | 
			
		||||
  process = process_uri(extname=ext,cmd)
 | 
			
		||||
 | 
			
		||||
  if title != "" then
 | 
			
		||||
    ["annotate:title=#{quote(title)}:#{process}"]
 | 
			
		||||
  else
 | 
			
		||||
    [process]
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
add_protocol("youtube-dl-x", youtube_dl_x_protocol,
 | 
			
		||||
              doc="Resolve a request using youtube-dl.",
 | 
			
		||||
syntax="youtube-dl-x:uri")
 | 
			
		||||
 | 
			
		||||
def crossfade(a,b)
 | 
			
		||||
  add(normalize=false,
 | 
			
		||||
      [ sequence([ blank(duration=5.),
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user