|
Home | Switchboard | Unix Administration | Red Hat | TCP/IP Networks | Neoliberalism | Toxic Managers |
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and bastardization of classic Unix |
News | Recommended Links | Working with computer sound | |||
Streaming audio from laptop via bluetooth | Humor | Etc |
May 23, 2011 By Emre Sevinc
... I decided to see if I could hack my way through my favorite development environment, Bash, and come up with something that can handle the task.
The first step was to think about which components I needed so that I could integrate them using Bash, the perfect glue:
Remembering that one of the key aspects of UNIX and GNU/Linux utilities is “do one thing and do it very well”, I came up with the following utilities that did one thing and did it very well:
The first component, youtube-dl, is a very simple-to-use command line utility to download the video files from YouTube. For example in order to download Frank Sinatra’s “My Way” from http://www.youtube.com/watch?v=6E2hYDIFDIU all you have to do is issue the command:
$ youtube-dl http://www.youtube.com/watch?v=6E2hYDIFDIU
to have the video file stored at the some location. In this particular case you should be able to see 6E2hYDIFDIU.flv at the directory you ran the youtube-dl command. You also have the capability of getting the title of the video automatically with the help of youtube-dl:
$ youtube-dl --get-title http://www.youtube.com/watch?v=6E2hYDIFDIU
Frank Sinatra, My Way, With Lyrics
Once you have video file, the second step is to extract the audio data from it which can be easily achieved with a simple ffmpeg command:
$ ffmpeg -i 6E2hYDIFDIU.flv 6E2hYDIFDIU.wav
This will immediately extract the audio information from the already downloaded file into a WAV encoded file. And once you have audio data in that file, it is ready to be converted into and MP3 file which can be done using the lame encoder utility. As with the previous utilities the basic usage of lame is very simple:
$ lame 6E2hYDIFDIU.wav 6E2hYDIFDIU.mp3
Voilà! You have your MP3 file ready for your listening pleasure. You can delete the big .wav file and burn your .mp3 file to a CD to listen to it on your car stereo.
Once we have all the components ready and tested we can create a very simple Bash script that can take the input as the YouTube web address and produce the MP3 file as the output:
1 #!/bin/bash 2 # A very simple Bash script to download a YouTube video 3 # and extract the music file from it. 4 address=$1 5 regex='v=(.*)' 6 if [[ $address =~ $regex ]]; then 7 video_id=${BASH_REMATCH[1]} 8 video_id=$(echo $video_id | cut -d'&' -f1) 9 video_title="$(youtube-dl --get-title $address)" 10 youtube-dl $address 11 ext="flv" 12 ffmpeg -i $video_id.$ext "$video_title".wav 13 lame "$video_title".wav "$video_title".mp3 14 rm $video_id.$ext "$video_title".wav 15 else 16 echo "Sorry but the system encountered a problem." 17 fi
If you save this script as youtube2mp3.sh and turn it into an executable by issuing the
chmod +x youtube2mp3.sh
You can run run it to download “My Way” using the following command:
./youtube2mp3.sh http://www.youtube.com/watch?v=6E2hYDIFDIU
The fourth line of the script is where we get the YouTube video address from the command line as the first parameter. Lines 5, 6, 7 and 8 rely on the use of regular expressions in Bash and the cut utility. We want the part which is starting after ‘v=’ and we don’t need the parameters that may follow it such as ‘&feature=related’. Once they are processed we get the unique code that YouTube uses to identify the videos and store it in the video_id variable. Line 9 is where we retrieve the title of the video file with the help of youtube-dl and store it in the video_title variable. For reasons of simplicity I assumed that the extension of the video file will be ‘.flv’ and stored it in the variable ext. Lines 12 and 13 finish the task of extracting of sound data and storing it in an MP3 file and finally at line 14 we do the house cleaning by deleting the video file as well as the .wav file that is no longer required. If the script encounters any problem with with the YouTube address format that was provided line 16 reports a very simple error message.
The simple Bash script above is far from perfect. Its purpose was to be as simple as possible without taking lots of important things into account such as realistic error handling, different YouTube video formats and a simple help system to report the usage in case the parameters were not entered correctly or missing. A slightly more complicated Bash script which also makes use of a simple graphical user interface with the help of wonderful xenity utility is available at https://github.com/emres/youtube2mp3 (feel free to hack the code and send pull requests to the author ;-) As usual I had a lot of fun exploring those utilities and combining them to create a solution that can be useful for other people, too. Of course that would be almost impossible without the flexibility of GNU/Linux and the free software world in which we live. I hope you’ll enjoy your music while you drive your car as much as I and my father-in-law do.
Happy hacking.
______________________
Emre Sevinç currently works as a researcher, software developer and a system administrator at Linguapolis Institute of University of Antwerp, Belgium. He's been involved with GNU/Linux since 1994 when he first met it at the math department of Istanbul
|
Switchboard | ||||
Latest | |||||
Past week | |||||
Past month |
Movgrab is a command-line movie downloader for sites like YouTube. It has no dependencies; everything that's needed should be there in the tar.gz package. Movgrab can connect through an HTTP proxy, can output the download to stdout for piping into another program, and can fork into the background to free up the console. When forked into the background, its progress can still be seen in a ps list.
youtube-dl is a small command-line program for downloading videos from YouTube.com.
youtube-pl plays Youtube videos from the command-line. The video is streamed as it is played. Limited seeking is supported, as are all operations mplayer allows with video streams: speed up/down, brightness/contrast adjustment, A/V delay adjustment, and fast forward.
FreeStar YouTube MP3 Converter downloads and converts videos from YouTube. It allows you to extract and download music from YouTube movies and save it as MP3 files. It automatically detects the FLV file URL. This program gives you the option of creating MP3s at 40-bit rates and three sampling rates and in two channels. It can batch-convert unlimited FLV files in a fast and easy WinZip-style interface. It can encode FLV files into custom file sizes for use with portable MP3 players. Multithreading is supported.
Youtube Batch Downloader downloads all video entries in your Youtube playlists. It creates a filesystem structure that stores your videos.
clive is a command line utility for extracting videos from Youtube and other video sharing Web sites. It was originally written to bypass the Adobe Flash requirement needed to view the hosted videos.
LuckyTubes is a command-line utility to find, download, and rip audio from YouTube videos. Its main goals are simplicity, low development overhead, and cross-platform usability, in that order. It resembles clive, but it is targeted at playing music that just happens to have a video on YouTube.
Free YouTube to MP3 Converter Download YouTube Video (.flv) to iPod, PSP & mobile phones MP4 video
Society
Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers : Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism : The Iron Law of Oligarchy : Libertarian Philosophy
Quotes
War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda : SE quotes : Language Design and Programming Quotes : Random IT-related quotes : Somerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Bernard Shaw : Mark Twain Quotes
Bulletin:
Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 : Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law
History:
Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds : Larry Wall : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOS : Programming Languages History : PL/1 : Simula 67 : C : History of GCC development : Scripting Languages : Perl history : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history
Classic books:
The Peter Principle : Parkinson Law : 1984 : The Mythical Man-Month : How to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite
Most popular humor pages:
Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor
The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D
Copyright © 1996-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.
This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...
|
You can use PayPal to to buy a cup of coffee for authors of this site |
Disclaimer:
The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.
Last modified: March, 12, 2019