Download Youtube Videos using Ruby or PHP
Just copy the appropriate script, provide the video_id and run. It will list download links for different qualities and streams.
:P
| // Responsible for preloading links | |
| // Based on this https://gist.github.com/vitobotta/8ac3c6f65633b5edb2949aeff0dec69b | |
| // Uses https://github.com/stimulus-use/stimulus-use | |
| import { Controller } from '@hotwired/stimulus' | |
| import { useHover } from 'stimulus-use' | |
| export default class extends Controller { | |
| connect() { | |
| useHover(this, { element: this.element }); |
| require "json" | |
| struct = { "a" => 1, "b" => 2, "c" => [1, 2, 3], "d" => [{ "e" => 3 }, nil, false, true, [], {}] } | |
| source = JSON.dump(struct) | |
| tokens = [] | |
| index = 0 | |
| until source.empty? | |
| tokens << |
| # Call scopes directly from your URL params: | |
| # | |
| # @products = Product.filter(params.slice(:status, :location, :starts_with)) | |
| module Filterable | |
| extend ActiveSupport::Concern | |
| module ClassMethods | |
| # Call the class methods with names based on the keys in <tt>filtering_params</tt> | |
| # with their associated values. For example, "{ status: 'delayed' }" would call |
| require 'stringio' | |
| require 'timeout' | |
| class Object | |
| def methods_returning(expected, *args, &blk) | |
| old_stdout = $> | |
| $> = StringIO.new | |
| methods.select do |meth| | |
| Timeout::timeout(1) { dup.public_send(meth, *args, &blk) == expected rescue false } rescue false |
| # encoding: UTF-8 | |
| # Place in config/deploy.rb | |
| namespace :rails do | |
| desc "Open the rails console on each of the remote servers" | |
| task :console do | |
| on roles(:app) do |host| #does it for each host, bad. | |
| rails_env = fetch(:stage) | |
| execute_interactively "ruby #{current_path}/script/rails console #{rails_env}" |
Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.
$ python -m SimpleHTTPServer 8000| This playbook has been removed as it is now very outdated. |