Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Saturday, September 27, 2014

Download and merge multiple video files (from twitch or youtube)

Last year I posted how to download and merge clips manually, recently I threw together a script that takes a twitch video, downloads the mp4 files, and them merges them all.

You'll have to download and compile ffmpeg which is a hassle, but since I use this script often it's worth the trouble.

#!/bin/bash
tempfolder=$(mktemp -d --tmpdir=./)

pushd $tempfolder
read -p "Input the date (YYYY-MM-DD): " date
echo "files:"
youtube-dl -e $@    # lists the file titles
echo "choosing one"
default_name=$(youtube-dl -e $@ 2>&1| head -1)
read -p "Name is $default_name. Override?: " name
if [ -z "$name" ]; then
    name=$default_name
fi

youtube-dl $@
file=$(mktemp --tmpdir=./)
for i in *.flv; do
    echo "file '$i'";
done > $file
ffmpeg -f concat -i $file -c copy "$date - $name.mp4"
mv "$date - $name.mp4" ..

popd
rm -r $tempfolder

The script will actually take multiple links as well, and concat them in order according to the twitch IDs.

Psql Snapshot

Ever want to make some temporary changes to a (test) database, that you can't do with just commits? I can't remember why I needed this, but it looks handy.

#!/bin/bash
# This was to create a quick snapshot of the database, make the changes I
# wanted, and then revert the database to exactly the way it was before I
# snapshotted it.


/etc/init.d/postgresql stop
umount /var/lib/postgresql/
lvcreate --snapshot --size 1G --name postgres-snap /dev/vg0/postgres
mount /dev/vg0/postgres-snap /var/lib/postgresql/
/etc/init.d/postgresql start

read -p "Press enter to start watching. And then ^C to drop the snapshot and switch to the old database" zzz
watch lvs

/etc/init.d/postgresql stop
umount /dev/vg0/postgres-snap && /sbin/lvremove --force /dev/vg0/postgres-snap
mount /var/lib/postgresql/
/etc/init.d/postgresql start

Thursday, December 26, 2013

Installing Armory

The Armory installer isn't quite up to date. The installer I found on their website: https://bitcoinarmory.com/download/ had RAM leaking issues.

sudo apt-get install git-core build-essentials python-dev \
    python-psutil swig pyqt4-dev-tools bitcoind

git clone https://github.com/etotheipi/BitcoinArmory.git
cd BitcoinArmory/cppForSwig
./whereispy.sh
make swig
cd ..

Note: 'whereispy.sh' is run by 'make swig'. I ran it first just to make sure I have all the dependencies, since make swig swallows the errors in 'whereispy.sh'

Now you can run ArmoryQt.py, just to make sure everything works:
python ArmoryQt.py

I decided that I wanted to "install" it, so I copied the folder to /usr/lib/
cd ..
sudo mv BitcoinArmory /usr/lib/armory

Adding the desktop icon:

I decided to update the armory icon, since it was pointed to an icon pack I didn't install.
cd /usr/lib/armory
sed -ie "s/Icon=.*/Icon=\/usr\/lib\/armory\/img\/armory64x64.ico/" \
    dpkgfiles/armory.desktop

chmod +x dpkgfiles/armory.desktop

Then copy it to your list of local applications:
cp /usr/lib/armory/dpkgfiles/armory.desktop ~/.local/share/applications/

Now the a launcher shows up in unity, with the right icon.

Friday, September 13, 2013

Downloading and trimming clips

There are two ways to download the clips, and get them the converted for Mythtv (the right times, etc)

1) twitchtv:
# youtube-dl "http://www.twitch.tv/riotgamesoceania/b/457578762"
downloads many parts
# for i in *.flv; do echo "file '$i'"; done > inputs.txt
# ffmpeg -f concat -i inputs.txt -c copy output.mp4

Youtube doesn't need this, because they show up as one file. However, they do still need to be trimmed. If you need to trim it then, mark the times.

For example:
'input.webm' start: 5:27:00 end: 8:28:28
Then you can convert the file with ffmpeg:
# ffmpeg -y -ss 5:27:00 -t 3:01:28 -i 'input.webm' -c copy 'output.webm'