![]() |
(port) > Thunderbird + YouTube + RSS
I thought YouTube didn’t do RSS any more, but Brad left a comment with details. They are untested.
RSS was tested with YouTube subscriptions. While it can do it, it’s atrocious. It doesn’t get everything, and doesn’t get new items even a week later, and it keeps showing duplicates. It’s horrifically slow.
See also:
- Exporting YouTube subscriptions as Thunderbird RSS feeds
- coming later: Exporting YouTube subscriptions as Google Reader RSS feeds
-
coming later: Exporting YouTube subscriptions as an RSS OPML file
Preparations and local notes ∞
- prep a local account
-
prep a youtube account
—
-
universal settings for FFmpeg
SETTINGS="-y -ac 1 -ar 44100 -r 30 -sameq"
Making image movies ∞
-
make your image. I used KolourPaint:
\kolourpaint ~/01a-kolourpaint1.png
-
control-eand change the canvas size to 640×360.
—
-
Convert it to a video, and append an empty sound track using FFmpeg:
# (from above) SETTINGS="-y -ac 1 -ar 44100 -r 30 -sameq" \ffmpeg $SETTINGS \ -loop_input \ -vframes 200 \ -i ~/01a-kolourpaint1.png \ -f s16le \ -i <(dd if=/dev/zero bs=19200 count=1) \ ~/01a-kolourpaint2.avi \ ` # `
2017-07-30 – Note that the use of dd might have had a formatting issue and may actually be:
-i < $( \dd if=/dev/zero bs=19200 count= 1) \
01 – Intro ∞
This video will show you how to import your YouTube subscriptions as Thunderbird RSS feeds.
These instructions are made for Linux, but the ideas are fairly universal, and can be adapted to your situation.
(Cheese)
\cheese # Click 'video'. Press space to begin and space to end. Then exit. \mv ~/.gnome2/cheese/media/0001.ogg ~/01b-cheese1.ogg
- convert the video to an editable format
-
Resize from 320×240 to 640×360.
- The closest is 480×360, with a pad of 80 on the left and right.
# (from above) SETTINGS="-y -ac 1 -ar 44100 -r 30 -sameq" SIZE=480x360 TOP=0 BOTTOM=0 LEFT=80 RIGHT=80 \ffmpeg \ -i ~/01b-cheese1.ogg \ $SETTINGS \ -s $SIZE \ -padtop $TOP \ -padbottom $BOTTOM \ -padleft $LEFT \ -padright $RIGHT \ ~/01b-cheese2.avi \ ` # `
—
-
chop the ending off with Avidemux (instructions are not included here):
\avidemux2_gtk ~/01b-cheese2.avi
-
Save it as
~/01b-cheese3.avi
02 – Export your YouTube subscriptions list ∞
Next I’ll show you how to create a text list of your subscriptions. There are several ways to do it, but this is the most straightforward way I’ve found.
-
Email Options > Subscription & YouTube Updates > Show Subscriptions
-
paste it into a text file (I used mousepad):
\mousepad ~/subs.txt
-
Using recordmydesktop:
\gtk-recordMyDesktop
- Click “Select Window” and click the window you want.
-
Click “Record” to begin and left-click the tray icon to stop. Then exit.
\mv ~/out.ogv ~/02b-recordmydesktop1.ogv
-
Determine the dimensions of your video with FFmpeg:
\ffmpeg -i ~/02b-recordmydesktop1.ogv
Spoiler
Notice the highlighted line:
FFmpeg version SVN-r12143, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --prefix=/usr --enable-shared --libdir=/usr/lib --enable-pp --enable-liba52 --enable-gpl --enable-pthreads --enable-x11grab --enable-libfaad --enable-libfaac --enable-libxvid --enable-libamr-nb --enable-libamr-wb --enable-libmp3lame --enable-libx264 --enable-nonfree
libavutil version: 49.6.0
libavcodec version: 51.50.1
libavformat version: 52.7.0
libavdevice version: 52.0.0
built on Feb 19 2008 15:20:20, gcc: 4.1.1 20060724 (prerelease) (4.1.1-4pclos2007)
[theora @ 0xb7dcacf0]560 bits left in packet 81
[theora @ 0xb7dcacf0]7 bits left in packet 82
[ogg @ 0xb7f46ab0]Could not find codec parameters (Invalid Codec type -1)
Input #0, ogg, from '/home/user/02b-recordmydesktop1.ogv':
Duration: 00:00:00.4, start: 0.000000, bitrate: 4543 kb/s
Stream #0.0: Invalid Codec type -1
Stream #0.1: Video: theora, yuv420p, 1008x672 [PAR 1:1 DAR 3:2], 15.00 tb(r)
Stream #0.2: Audio: vorbis, 48000 Hz, stereo, 499 kb/s
Must supply at least one output file
NOTE: If you have issues with FFmpeg, try MPlayer:
mplayer ~/02b-recordmydesktop1.ogv
Spoiler
Notice the highlighted line:
MPlayer 1.0rc2-4.1.1 (C) 2000-2007 MPlayer Team
CPU: AMD Sempron(tm) Processor 3300+ (Family: 15, Model: 44, Stepping: 2)
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing /home/user/02b-recordmydesktop1.ogv.
Ogg stream 0 is of an unknown type
[Ogg] stream 1: video (Theora v3.2.1), -vid 0
[Ogg] stream 2: audio (Vorbis), -aid 0
Ogg file format detected.
VIDEO: [theo] 1008x672 24bpp 15.000 fps 0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
[theora @ 0x88cb450]Missing extradata!
Could not open codec.
VDecoder init failed :(
Opening video decoder: [theora] Theora/VP3
VDec: vo config request - 1008 x 672 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.50:1 - prescaling to correct movie aspect.
VO: [xv] 1008x672 => 1008x672 Planar YV12 [zoom]
Selected video codec: [theora] vfm: theora (Theora (free, reworked VP3))
==========================================================================
==========================================================================
Trying to force audio codec driver family libmad...
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 48000 Hz, 2 ch, s16le, 499.8 kbit/32.54% (ratio: 62477->192000)
Selected audio codec: [ffvorbis] afm: ffmpeg (FFmpeg Vorbis decoder)
==========================================================================
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
A: 1.5 V: 1.5 A-V: -0.001 ct: -0.041 22/ 22 9% 7% 0.7% 0 0
Exiting... (Quit)
- Convert the video
-
Calculate the resize and the padding needed.
- Example: 1008×672 becomes 540×360 with a left and right of 50
# (from above) SETTINGS="-y -ac 1 -ar 44100 -r 30 -sameq" SIZE=540x360 TOP=0 BOTTOM=0 LEFT=50 RIGHT=50 \ffmpeg \ -i ~/02b-recordmydesktop1.ogv \ $SETTINGS \ -s $SIZE \ -padtop $TOP \ -padbottom $BOTTOM \ -padleft $LEFT \ -padright $RIGHT \ ~/02b-recordmydesktop2.avi \ ` # `
03 – Process your YouTube subscriptions list ∞
-
Create a 640×360 window.
\wmctrl \ -F \ -r "user@localhost: /home/user" \ -e 1,0,0,640,360 \ ` # `
Spoiler
# ------------------------------- # Process your subscriptions list # ------------------------------- # Remove all tabs \sed '/[\t]/ s/[\t]//g' \ ~/subs.txt \ > ~/subs2.txt \ ` # ` # Separate all favourites into another file. # NOTE: These aren't always subscribable because of a YouTube limitation / security issue. # So I'm not doing anything more with these.. \cat ~/subs2.txt |\ \grep \'s\ Favorites \ > ~/subs-faves.txt \ ` # ` # Separate all non-favourites into another file. \cat ~/subs2.txt |\ \grep -v \'s\ Favorites \ > ~/subs-nofaves.txt \ ` # ` # Remove all spaces \sed '/ / s/ //g' \ ~/subs-nofaves.txt \ > ~/subs-nofaves2.txt \ ` # ` \mv --force ~/subs-nofaves2.txt ~/subs-nofaves.txt # Remove the working file, but keep the original subs.txt \rm --force ~/subs2.txt # ------------------- # Create an OPML file # ------------------- # Begin with the header # Note that this file mimics the Thunderbird exported OPML file. # This was tested 2009-04-18 and works fine in Google Reader. ( \cat << HERE_DOCUMENT <opml version="1.0"> <head> <title>Thunderbird OPML Export</title> <dateCreated>Fri, 23 Jan 2009 21:39:53 GMT</dateCreated> </head> <body> HERE_DOCUMENT ) > ~/subs-nofaves.opml # Process the body # Delete all blank lines # I think this can be improved for speed, but I don't know how. \sed '/^$/d' \ ~/subs-nofaves.txt \ > ~/subs-nofaves2.txt \ ` # ` # Do the regex search-and-replace # I think this can be improved for speed, but I don't know how. # Note, that I changed the title and text from "Videos uploaded by x" \sed 's*.\** <outline\ title="\0"\ text="\0"\ type="rss"\ version="RSS"\ xmlUrl="http://www.youtube.com/rss/user/\0/videos.rss"\ htmlUrl="http://www.youtube.com/profile_videos?user=\0"\ />*' ~/subs-nofaves2.txt >> ~/subs-nofaves.opml # Append the footer ( \cat << HERE_DOCUMENT </body> </opml> HERE_DOCUMENT ) >> ~/subs-nofaves.opml # Cleanup. Keeping subs-nofaves.txt for reference. \rm --force ~/subs-nofaves2.txt # TRIPLE-check that everything is okay! \less ~/subs-nofaves.opml
- use gtk-recordMyDesktop as with 02 – Export your YouTube subscriptions list.
-
656×384 becomes 614×360 with a left/right of 12 and 14
\mv ~/out.ogv ~/03b-recordmydesktop1.ogv # (from above) SETTINGS="-y -ac 1 -ar 44100 -r 30 -sameq" SIZE=614x360 TOP=0 BOTTOM=0 LEFT=12 RIGHT=14 \ffmpeg \ -i ~/03b-recordmydesktop1.ogv \ $SETTINGS \ -s $SIZE \ -padtop $TOP \ -padbottom $BOTTOM \ -padleft $LEFT \ -padright $RIGHT \ ~/03b-recordmydesktop2.avi \ ` # `
-
If necessary, edit it:
\avidemux2_gtk 03b-recordmydesktop2.avi
-
saved as
03b-recordmydesktop3.avi
04 – Preparing and using Thunderbird ∞
- use gtk-recordMyDesktop as with 02 – Export your YouTube subscriptions list.
-
688×608 becomes 406×360 with a left/right of 116 and 118
\mv ~/out.ogv ~/05b-recordmydesktop1.ogv # (from above) SETTINGS="-y -ac 1 -ar 44100 -r 30 -sameq" SIZE=406x360 TOP=0 BOTTOM=0 LEFT=116 RIGHT=118 \ffmpeg \ -i ~/05b-recordmydesktop1.ogv \ $SETTINGS \ -s $SIZE \ -padtop $TOP \ -padbottom $BOTTOM \ -padleft $LEFT \ -padright $RIGHT \ ~/05b-recordmydesktop2.avi \ ` # `
-
If necessary, edit it:
avidemux2_gtk 05b-recordmydesktop2.avi
-
saved as
05b-recordmydesktop3.avi
—
- download and install it
- set up an empty RSS account
-
manage subscriptions, import the OPML textfile
- NOTE: Thunderbird is completely unforgiving of issues with your
.opmlfile! - NOTE: Cannot re-import duplicates!
- NOTE: Thunderbird is completely unforgiving of issues with your
- prep the list of unread items
- prep the list of starred items
- get mail, and wait patiently
-
Manually mark each folder as unread (
right-clickk)- is there a better way?
tutorial creation – Combine files ∞
Using Avidemux, open the first video and then append each subsequent video to it.
settings:
- video: MPEG-4 ASP (Xvid4)
-
audio: MP3 (LAME) – and with an audio filter:
- Resampling: 44100
- format: MP4
-
save it as
~/final.mp4
Things to improve ∞
- Include a “New this week” search folder, and sort by date.
- How can I subscribe to someone’s favourites with RSS?
- Replace the use of the search-and-replace in kwrite with some commandline voodoo.
- How do I easily all the items in mark multiple folders as read?
- Include JavaScript
- How do I enable Flash?
-
How do I block ads?

