{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/ubuntu14-04/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/ubuntu14-04/", "feed_url": "https://matoken.org/blog/tag/ubuntu14-04/feed/json/", "language": "ja", "title": "Ubuntu14.04 – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "http://matoken.org/blog/?p=1191", "url": "https://matoken.org/blog/2016/02/19/try-podget-of-podcast-aggregator-downloader-that-specializes-in-cron/", "title": "cron\u306b\u7279\u5316\u3057\u305fPodcast\u30a2\u30b0\u30ea\u30b2\u30fc\u30bf/\u30c0\u30a6\u30f3\u30ed\u30fc\u30c0\u306epodget\u3092\u8a66\u3059", "content_html": "

\n

\u5148\u65e5\u8a66\u3057\u305fpodracer\u306f\u4f55\u6c17\u306b10\u5e74\u524d\u306e\u30bd\u30d5\u30c8\u3067\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3082\u3055\u308c\u3066\u3044\u306a\u3044\u3057\uff0c\u8d77\u52d5\u4e2d\u306b\u5f37\u5236\u7d42\u4e86\u3059\u308b\u3068\u30b4\u30df\u304c\u6b8b\u3063\u3066\u6b21\u304b\u3089\u8d77\u52d5\u3057\u306a\u304f\u306a\u3063\u305f\u308a\u3068\u304b\u3068\u304b\u7d50\u69cb\u4e0d\u6e80\u70b9\u304c\u51fa\u3066\u304d\u307e\u3057\u305f\uff0e

\n\n

\u4eca\u306f\u524d\u51e6\u7406\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\uff0c

\n
if [ $(pgrep podracer) ] ; then
  echo 'running podracer.'
  exit -1
fi
 
echo run podracer
if [ -f ~/.podracer/tempsub ] ; then
  rm ~/.podracer/tempsub
  echo 'rm tempsub'
fi
\n

\u30d7\u30ec\u30a4\u30ea\u30b9\u30c8\u3082\u3053\u3093\u306a\u611f\u3058\u3067\u5225\u306b\u4f5c\u3063\u3066\u307e\u3059\uff0e

\n
cd ~/podcasts
PODCASTLIST=($(cd ~/podcasts ; find . -mmin -$LISTTIME -type f -print0 | xargs -0n1 file | grep -i audio | cut -f1 -d:))
if [ ${#PODCASTLIST[@]} -eq 0 ] ; then
  echo 'podcast not found.'
  exit -1;
fi
 
echo num = ${#PODCASTLIST[@]}
ls -1tr ${PODCASTLIST[@]} > ~/podcasts/todayspodcast.m3u
\n

\u5f8c\u8005\u306fDebian\u306e\u65b9\u306b\u306f\u30d0\u30b0\u5831\u544a\u3092\u3057\u3066\u3044\u307e\u3059\u304c\u97f3\u6c99\u6c70\u304c\u306a\u3044\u611f\u3058\u3067\u3059\uff0e

\n

\u4ed6\u306b\u306a\u3044\u304b\u306a\u30fc\u3068\u63a2\u3057\u3066(apt-cache search podcast)podget\u3068\u3044\u3046\u3082\u306e\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e

\n
$ apt show podget | grep -A99 Description:
 
Description: cron \u7528\u306b\u6700\u9069\u5316\u3055\u308c\u305f Podcast \u30a2\u30b0\u30ea\u30b2\u30fc\u30bf/\u30c0\u30a6\u30f3\u30ed\u30fc\u30c0
 Podget \u306f\u30b7\u30f3\u30d7\u30eb\u306a podcast \u30a2\u30b0\u30ea\u30b2\u30fc\u30bf\u3067\u3042\u308a\u3001\u5b9a\u671f\u7684\u306a\u30d0\u30c3\u30af\u30b0\u30e9\u30f3\u30c9\u30b8\u30e7\u30d6
 (\u3059\u306a\u308f\u3061 cron) \u3068\u3057\u3066\u8d77\u52d5\u3059\u308b\u305f\u3081\u306b\u6700\u9069\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002RSS \u304a\u3088\u3073 XML \u30d5\u30a3\u30fc\u30c9
 \u304b\u3089\u306e podcast \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3001\u30d5\u30a1\u30a4\u30eb\u3092\u30bd\u30fc\u30c8\u3057\u3066\u30d5\u30a9\u30eb\u30c0\u3084\u30ab\u30c6\u30b4\u30ea\u3054\u3068\u306b\u683c\u7d0d\u3001
 iTunes PCAST \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073 OPML \u30ea\u30b9\u30c8\u304b\u3089\u306e URL \u306e\u30a4\u30f3\u30dd\u30fc\u30c8\u3001M3U \u304a\u3088\u3073 ASX
 \u30d7\u30ec\u30a4\u30ea\u30b9\u30c8\u306e\u81ea\u52d5\u751f\u6210\u3001\u305d\u3057\u3066\u53e4\u304f\u306a\u3063\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u81ea\u52d5\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\u306e\u30b5\u30dd\u30fc\u30c8
 \u304c\u7279\u5fb4\u3067\u3059\u3002\u307e\u305f\u3001MS Windows \u30b5\u30fc\u30d0\u4e0a\u306b\u30db\u30b9\u30c8\u3055\u308c\u305f podcast \u306e UTF-16 \u81ea\u52d5\u5909\u63db\u3082
 \u7279\u5fb4\u3067\u3059\u3002
 podget \u3092\u4e00\u65e6\u8d77\u52d5\u3059\u308b\u3068\u3001\u30e6\u30fc\u30b6\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092 $HOME/.podget \u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb
 \u3057\u307e\u3059\u306e\u3067\u3001\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002
\n

cron\u306b\u7279\u5316\u3057\u3066\u3044\u3066\u4fbf\u5229\u305d\u3046\u306a\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e

\n

\u5c0e\u5165

\n

Debian stretch testing/Rasbian jessie/Ubuntu 14.04 \u3067\u78ba\u8a8d\u3057\u307e\u3057\u305f\uff0e

\n
$ sudo apt install podget
\n

\u521d\u671f\u5316

\n
$ podget -h
 
Usage /usr/bin/podget [options]
 
    -c --config <FILE>           Name of configuration file.
    -C --cleanup                 Skip downloading and only run cleanup loop.
    --cleanup_simulate           Skip downloading and simulate running
                                 cleanup loop.
                                 Display files to be deleted.
    --cleanup_days               Number of days to retain files.  Anything
                                 older will be removed.
    -d --dir_config <DIRECTORY>  Directory that configuration files are
                                 stored in.
    -f --force                   Force download of items from each feed even
                                 if they have already been downloaded.
    --import_opml <FILE or URL>  Import servers from OPML file or
                                 HTTP/FTP URL.
    --import_pcast <FILE or URL> Import servers from iTunes PCAST file or
                                 HTTP/FTP URL.
    -l --library <DIRECTORY>     Directory to store downloaded files in.
    -p --playlist-asx            In addition to the default M3U playlist,
                                 create an ASX Playlist.
    -r --recent <count>          Download only the <count> newest items from
                                 each feed.
    --serverlist <list>          Serverlist to use.
    -s --silent                  Run silently (for cron jobs).
    --verbosity <LEVEL>          Set verbosity level (0-4).
    -v                           Set verbosity to level 1.
    -vv                          Set verbosity to level 2.
    -vvv                         Set verbosity to level 3.
    -vvvv                        Set verbosity to level 4.
    -h --help                    Display help.
\n

\u521d\u56de\u8d77\u52d5\u6642\u306b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306a\u3069\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\uff0e\u5f15\u6570\u7121\u3057\u3067\u5b9f\u884c\u3059\u308b\u3068\u521d\u671f\u8a2d\u5b9a\u306e\u4e2d\u306epodcast\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u306e\u3067--cleanup_simulate\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066\u5b9f\u884c\u3059\u308b\u3068\u826f\u3055\u305d\u3046\u3067\u3059\uff0e
\n\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u898f\u5b9a\u5024\u3067\u306f~/.podget\u4ee5\u4e0b\u306b\u4f5c\u6210\u3055\u308c\u307e\u3059\uff0e

\n
$ podget --cleanup_simulate
$ ls -lA ~/.podget
\u5408\u8a08 8
-rw-rw-r-- 1 mk mk 3652  2\u6708 19 05:34 podgetrc
-rw-rw-r-- 1 mk mk 1131  2\u6708 19 05:34 serverlist
\n\n

\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u7528\u610f

\n

\u304a\u597d\u307f\u3067\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e~/podgetrc\u3092\u7de8\u96c6\u3057\u307e\u3059\uff0e\u79c1\u306f\u4ee5\u4e0b\u306e\u8fba\u308a\u3092\u66f8\u304d\u63db\u3048\u307e\u3057\u305f\uff0e

\n

\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u6709\u52b9\u306b

\n
# Directory to store logs in
dir_log=/home/mk/POD/LOG
\n

\u30d7\u30ec\u30a4\u30ea\u30b9\u30c8\u306e\u5e74\u6708\u65e5\u306e\u5f62\u5f0f\u3092\u66f8\u304d\u63db\u3048

\n
# Date format for new playlist names
date_format=+%Y-%m-%d
\n

Podcast\u306e\u53d6\u5f97\u6570\u30923\u3064\u306b

\n
# Most Recent
# 0  == download all new items.
# 1+ == download only the <count> most recent
most_recent=3
\n

\u30b5\u30fc\u30d0\u30ea\u30b9\u30c8\u306e\u4f5c\u6210

\n

\u53d6\u5f97\u3059\u308bPodcast\u3092~/.podget/serverlist\u306b\u66f8\u3044\u3066\u3044\u304d\u307e\u3059\uff0e

\n

\u66f8\u5f0f\u306f\u30b9\u30da\u30fc\u30b9\u533a\u5207\u308a\u3067

\n
\n

URL \u30ab\u30c6\u30b4\u30ea\u30fc \u756a\u7d44\u540d

\n
\n

\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0epodget\u3092\u5b9f\u884c\u3057\u305f\u6642\u306b
\n\u30ab\u30c6\u30b4\u30ea\u30fc/\u756a\u7d44\u540d/\u756a\u7d44\u3068\u3044\u3046\u3075\u3046\u306b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u6398\u3089\u308c\u307e\u3059\uff0e
\n\u5177\u4f53\u7684\u306b\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u66f8\u3044\u3066\u3044\u304d\u307e\u3059\uff0e

\n
http://feeds.feedburner.com/weblogs/csc tech \u96fb\u8133\u7a7a\u9593\u30ab\u30a6\u30dc\u30fc\u30a4\u30ba
http://feeds.backspace.fm/backspacefm tech backspace.fm
http://www.joqr.co.jp/science-podcast/index.xml science \u65e5\u7acb\u30cf\u30a4\u30c6\u30af\u30d7\u30ec\u30bc\u30f3\u30c4 \u5927\u6751\u6b63\u6a39\u306e\u30b5\u30a4\u30a8\u30f3\u30b9\u30ad\u30c3\u30ba
http://www.tbsradio.jp/life/rss.xml etc \u6587\u5316\u7cfb\u30c8\u30fc\u30af\u30e9\u30b8\u30aa Life
http://www.tbsradio.jp/cycle-r/index.xml bike \u30df\u30e9\u30af\u30eb\u30fb\u30b5\u30a4\u30af\u30eb\u30fb\u30e9\u30a4\u30d5
http://sokoani.com/feed anime \u305d\u3053\u3042\u306b
  :
\n

\u4ed6\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3089\u306e\u79fb\u884c\u3067OPML\u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u304c\u53ef\u80fd\u306a\u5834\u5408\u306f\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u3084URL\u3092\u5143\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u308b\u3088\u3046\u3067\u3059\uff0e\u203b\u672a\u78ba\u8a8d

\n
$ podget --import_opml <FILE or URL>
\n

\u82e5\u3057\u304f\u306fPCAST\u5f62\u5f0f(iTunes\u5411\u3051?)\u3082\u540c\u69d8\u306b\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u3067\u3059\uff0e\u203b\u672a\u78ba\u8a8d

\n
$ podget --import_pcast <FILE or URL>
\n

OPML\u66f8\u304d\u51fa\u3057\u306e\u6a5f\u80fd\u3082\u3042\u308a\u307e\u3059\uff0e\u4f46\u3057\u3053\u306e\u6a5f\u80fd\u306f
\nUbuntu 14.04\u306e0.6.9\u306b\u306f\u306a\u304f\uff0c
\nRasbian jessie\u306e0.7.3\uff0c
\nDebian stretch\u306e0.7.9\u306b\u306f\u5b58\u5728\u3057\u307e\u3057\u305f\uff0e

\n
$ podget --export_opml /tmp/podcast.opml
podget
 
Session file not found.  Creating podget.22189 .
 
Export serverlist to OPML file: /tmp/podcast.opml
 
Closing session and removing lock file.
$ head /tmp/podcast.opml
<?xml version="1.0" encoding="utf-8" ?>
<opml version="1.0">
<head/>
<body>
<outline text="tech"><outline text="\u96fb\u8133\u7a7a\u9593\u30ab\u30a6\u30dc\u30fc\u30a4\u30ba" type="rss" xmlUrl="http://feeds.feedburner.com/weblogs/csc" /></outline>
<outline text="tech"><outline text="backspace.fm" type="rss" xmlUrl="http://feeds.backspace.fm/backspacefm" /></outline>
<outline text="science"><outline text="\u65e5\u7acb\u30cf\u30a4\u30c6\u30af\u30d7\u30ec\u30bc\u30f3\u30c4 \u5927\u6751\u6b63\u6a39\u306e\u30b5\u30a4\u30a8\u30f3\u30b9\u30ad\u30c3\u30ba" type="rss" xmlUrl="http://www.joqr.co.jp/science-podcast/index.xml" /></outline>
<outline text="etc"><outline text="\u6587\u5316\u7cfb\u30c8\u30fc\u30af\u30e9\u30b8\u30aa Life" type="rss" xmlUrl="http://www.tbsradio.jp/life/rss.xml" /></outline>
<outline text="bike"><outline text="\u30df\u30e9\u30af\u30eb\u30fb\u30b5\u30a4\u30af\u30eb\u30fb\u30e9\u30a4\u30d5" type="rss" xmlUrl="http://www.tbsradio.jp/cycle-r/index.xml" /></outline>
<outline text="anime"><outline text="\u305d\u3053\u3042\u306b" type="rss" xmlUrl="http://sokoani.com/feed" /></outline>
\n

\u5b9f\u884c

\n

\u3068\u308a\u3042\u3048\u305a\u5f15\u6570\u7121\u3057\u3067\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067Podcast\u304c\u53d6\u5f97\u3067\u304d\u307e\u3059\uff0e

\n
$ podget
-------------------------------------------------
Category: anime         Name: \u305d\u3053\u3042\u306b
Downloading feed index from http://sokoani.com/feed
2016-02-19 07:37:15 URL:http://sokoani.com/feed [673868] -> "-" [1]
 
Downloading 0_s413.mp3 from http://sokoani.com/podpress_trac/feed/9818/0/
 :
 :
\n

Podcast\u306f\u898f\u5b9a\u5024\u3067\u306f~/POD\u4ee5\u4e0b\u306b\u30ab\u30c6\u30b4\u30ea/\u756a\u7d44\u540d/\u756a\u7d44\u30d5\u30a1\u30a4\u30eb\u306e\u5f62\u3067\u4fdd\u5b58\u3055\u308c\u307e\u3059\uff0e

\n
$ find ~/POD -type f | tail -3
/home/mk/POD/etc/JUNK \u4f0a\u96c6\u9662\u5149 \u6df1\u591c\u306e\u99ac\u9e7f\u529b/files_20160216.mp3
/home/mk/POD/etc/JUNK \u4f0a\u96c6\u9662\u5149 \u6df1\u591c\u306e\u99ac\u9e7f\u529b/files_20160202.mp3
/home/mk/POD/etc/JUNK \u4f0a\u96c6\u9662\u5149 \u6df1\u591c\u306e\u99ac\u9e7f\u529b/files_20160209.mp3
\n

\u307e\u305f\uff0c~/POD/*.m3u\u3068\u30b9\u30c6\u30d7\u30ec\u30a4\u30ea\u30b9\u30c8\u3082\u4f5c\u6210\u3055\u308c\u307e\u3059\uff0e\u3053\u308c\u306f\u5b9f\u884c\u5358\u4f4d\u3067\u4f5c\u3089\u308c\u308b\u306e\u304b\u306a?

\n
$ ls -l ~/POD/*.m3u
-rw-rw-r-- 1 mk mk  946  2\u6708 19 07:14 /home/mk/POD/New-2016-02-19.m3u
-rw-rw-r-- 1 mk mk 1924  2\u6708 19 07:50 /home/mk/POD/New-2016-02-19.r2.m3u
\n

\u3046\u307e\u304f\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306a\u3089-s\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066cron\u306b\u767b\u9332\u3057\u3066\u3042\u3052\u308b\u3068\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f\u6bce\u66423\u5206\u306bpodget\u3092\u5b9f\u884c\u3057\u3066\u3044\u307e\u3059\uff0e

\n
$ crontab -e
$ crontab -l | tail -2
# get podcast
3 * * * *       podget -s
\n

podracer\u306fPodcast\u3092\u756a\u7d44\u95a2\u4fc2\u306a\u304f\u5b9f\u884c\u65e5\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u4fdd\u5b58\u3055\u308c\u3066Podcast\u756a\u7d44\u3092\u63a2\u3057\u305f\u308a\u3059\u308b\u306e\u306b\u4e0d\u4fbf\u3067\u3057\u305f\u304cpodget\u3060\u3068\u30ab\u30c6\u30b4\u30ea\u3068\u756a\u7d44\u3067\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u5206\u304b\u308c\u308b\u306e\u3067\u4fbf\u5229\u3067\u3059\uff0e
\n\u3057\u3070\u3089\u304f\u4f75\u7528\u3057\u3066\u307f\u3088\u3046\u3068\u601d\u3044\u307e\u3059\uff0e

\n

\n", "content_text": "\u5148\u65e5\u8a66\u3057\u305fpodracer\u306f\u4f55\u6c17\u306b10\u5e74\u524d\u306e\u30bd\u30d5\u30c8\u3067\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3082\u3055\u308c\u3066\u3044\u306a\u3044\u3057\uff0c\u8d77\u52d5\u4e2d\u306b\u5f37\u5236\u7d42\u4e86\u3059\u308b\u3068\u30b4\u30df\u304c\u6b8b\u3063\u3066\u6b21\u304b\u3089\u8d77\u52d5\u3057\u306a\u304f\u306a\u3063\u305f\u308a\u3068\u304b\u3068\u304b\u7d50\u69cb\u4e0d\u6e80\u70b9\u304c\u51fa\u3066\u304d\u307e\u3057\u305f\uff0e\n\nCLI \u306a podcast aggregator/downloader \u306a podracer \u3092\u8a66\u3057\u3066\u307f\u308b | matoken\u2019s meme\n\n\u4eca\u306f\u524d\u51e6\u7406\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\uff0c\nif [ $(pgrep podracer) ] ; then  echo 'running podracer.'  exit -1fi echo run podracerif [ -f ~/.podracer/tempsub ] ; then  rm ~/.podracer/tempsub  echo 'rm tempsub'fi\n\u30d7\u30ec\u30a4\u30ea\u30b9\u30c8\u3082\u3053\u3093\u306a\u611f\u3058\u3067\u5225\u306b\u4f5c\u3063\u3066\u307e\u3059\uff0e\ncd ~/podcastsPODCASTLIST=($(cd ~/podcasts ; find . -mmin -$LISTTIME -type f -print0 | xargs -0n1 file | grep -i audio | cut -f1 -d:))if [ ${#PODCASTLIST[@]} -eq 0 ] ; then  echo 'podcast not found.'  exit -1;fi echo num = ${#PODCASTLIST[@]}ls -1tr ${PODCASTLIST[@]} > ~/podcasts/todayspodcast.m3u\n\u5f8c\u8005\u306fDebian\u306e\u65b9\u306b\u306f\u30d0\u30b0\u5831\u544a\u3092\u3057\u3066\u3044\u307e\u3059\u304c\u97f3\u6c99\u6c70\u304c\u306a\u3044\u611f\u3058\u3067\u3059\uff0e\n\u4ed6\u306b\u306a\u3044\u304b\u306a\u30fc\u3068\u63a2\u3057\u3066(apt-cache search podcast)podget\u3068\u3044\u3046\u3082\u306e\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\n$ apt show podget | grep -A99 Description: Description: cron \u7528\u306b\u6700\u9069\u5316\u3055\u308c\u305f Podcast \u30a2\u30b0\u30ea\u30b2\u30fc\u30bf/\u30c0\u30a6\u30f3\u30ed\u30fc\u30c0 Podget \u306f\u30b7\u30f3\u30d7\u30eb\u306a podcast \u30a2\u30b0\u30ea\u30b2\u30fc\u30bf\u3067\u3042\u308a\u3001\u5b9a\u671f\u7684\u306a\u30d0\u30c3\u30af\u30b0\u30e9\u30f3\u30c9\u30b8\u30e7\u30d6 (\u3059\u306a\u308f\u3061 cron) \u3068\u3057\u3066\u8d77\u52d5\u3059\u308b\u305f\u3081\u306b\u6700\u9069\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002RSS \u304a\u3088\u3073 XML \u30d5\u30a3\u30fc\u30c9 \u304b\u3089\u306e podcast \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3001\u30d5\u30a1\u30a4\u30eb\u3092\u30bd\u30fc\u30c8\u3057\u3066\u30d5\u30a9\u30eb\u30c0\u3084\u30ab\u30c6\u30b4\u30ea\u3054\u3068\u306b\u683c\u7d0d\u3001 iTunes PCAST \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073 OPML \u30ea\u30b9\u30c8\u304b\u3089\u306e URL \u306e\u30a4\u30f3\u30dd\u30fc\u30c8\u3001M3U \u304a\u3088\u3073 ASX \u30d7\u30ec\u30a4\u30ea\u30b9\u30c8\u306e\u81ea\u52d5\u751f\u6210\u3001\u305d\u3057\u3066\u53e4\u304f\u306a\u3063\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u81ea\u52d5\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\u306e\u30b5\u30dd\u30fc\u30c8 \u304c\u7279\u5fb4\u3067\u3059\u3002\u307e\u305f\u3001MS Windows \u30b5\u30fc\u30d0\u4e0a\u306b\u30db\u30b9\u30c8\u3055\u308c\u305f podcast \u306e UTF-16 \u81ea\u52d5\u5909\u63db\u3082 \u7279\u5fb4\u3067\u3059\u3002 podget \u3092\u4e00\u65e6\u8d77\u52d5\u3059\u308b\u3068\u3001\u30e6\u30fc\u30b6\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092 $HOME/.podget \u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u3057\u307e\u3059\u306e\u3067\u3001\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002\ncron\u306b\u7279\u5316\u3057\u3066\u3044\u3066\u4fbf\u5229\u305d\u3046\u306a\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e\n\u5c0e\u5165\nDebian stretch testing/Rasbian jessie/Ubuntu 14.04 \u3067\u78ba\u8a8d\u3057\u307e\u3057\u305f\uff0e\n$ sudo apt install podget\n\u521d\u671f\u5316\n$ podget -h Usage /usr/bin/podget [options]     -c --config <FILE>           Name of configuration file.    -C --cleanup                 Skip downloading and only run cleanup loop.    --cleanup_simulate           Skip downloading and simulate running                                 cleanup loop.                                 Display files to be deleted.    --cleanup_days               Number of days to retain files.  Anything                                 older will be removed.    -d --dir_config <DIRECTORY>  Directory that configuration files are                                 stored in.    -f --force                   Force download of items from each feed even                                 if they have already been downloaded.    --import_opml <FILE or URL>  Import servers from OPML file or                                 HTTP/FTP URL.    --import_pcast <FILE or URL> Import servers from iTunes PCAST file or                                 HTTP/FTP URL.    -l --library <DIRECTORY>     Directory to store downloaded files in.    -p --playlist-asx            In addition to the default M3U playlist,                                 create an ASX Playlist.    -r --recent <count>          Download only the <count> newest items from                                 each feed.    --serverlist <list>          Serverlist to use.    -s --silent                  Run silently (for cron jobs).    --verbosity <LEVEL>          Set verbosity level (0-4).    -v                           Set verbosity to level 1.    -vv                          Set verbosity to level 2.    -vvv                         Set verbosity to level 3.    -vvvv                        Set verbosity to level 4.    -h --help                    Display help.\n\u521d\u56de\u8d77\u52d5\u6642\u306b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306a\u3069\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\uff0e\u5f15\u6570\u7121\u3057\u3067\u5b9f\u884c\u3059\u308b\u3068\u521d\u671f\u8a2d\u5b9a\u306e\u4e2d\u306epodcast\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u306e\u3067--cleanup_simulate\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066\u5b9f\u884c\u3059\u308b\u3068\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u898f\u5b9a\u5024\u3067\u306f~/.podget\u4ee5\u4e0b\u306b\u4f5c\u6210\u3055\u308c\u307e\u3059\uff0e\n$ podget --cleanup_simulate$ ls -lA ~/.podget\u5408\u8a08 8-rw-rw-r-- 1 mk mk 3652  2\u6708 19 05:34 podgetrc-rw-rw-r-- 1 mk mk 1131  2\u6708 19 05:34 serverlist\n\npodgetrc : \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\nserverlist : podcast\u306e\u30ea\u30b9\u30c8\n\n\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u7528\u610f\n\u304a\u597d\u307f\u3067\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e~/podgetrc\u3092\u7de8\u96c6\u3057\u307e\u3059\uff0e\u79c1\u306f\u4ee5\u4e0b\u306e\u8fba\u308a\u3092\u66f8\u304d\u63db\u3048\u307e\u3057\u305f\uff0e\n\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u6709\u52b9\u306b\n# Directory to store logs indir_log=/home/mk/POD/LOG\n\u30d7\u30ec\u30a4\u30ea\u30b9\u30c8\u306e\u5e74\u6708\u65e5\u306e\u5f62\u5f0f\u3092\u66f8\u304d\u63db\u3048\n# Date format for new playlist namesdate_format=+%Y-%m-%d\nPodcast\u306e\u53d6\u5f97\u6570\u30923\u3064\u306b\n# Most Recent# 0  == download all new items.# 1+ == download only the <count> most recentmost_recent=3\n\u30b5\u30fc\u30d0\u30ea\u30b9\u30c8\u306e\u4f5c\u6210\n\u53d6\u5f97\u3059\u308bPodcast\u3092~/.podget/serverlist\u306b\u66f8\u3044\u3066\u3044\u304d\u307e\u3059\uff0e\n\u66f8\u5f0f\u306f\u30b9\u30da\u30fc\u30b9\u533a\u5207\u308a\u3067\n\nURL \u30ab\u30c6\u30b4\u30ea\u30fc \u756a\u7d44\u540d\n\n\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0epodget\u3092\u5b9f\u884c\u3057\u305f\u6642\u306b\n\u30ab\u30c6\u30b4\u30ea\u30fc/\u756a\u7d44\u540d/\u756a\u7d44\u3068\u3044\u3046\u3075\u3046\u306b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u6398\u3089\u308c\u307e\u3059\uff0e\n\u5177\u4f53\u7684\u306b\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u66f8\u3044\u3066\u3044\u304d\u307e\u3059\uff0e\nhttp://feeds.feedburner.com/weblogs/csc tech \u96fb\u8133\u7a7a\u9593\u30ab\u30a6\u30dc\u30fc\u30a4\u30bahttp://feeds.backspace.fm/backspacefm tech backspace.fmhttp://www.joqr.co.jp/science-podcast/index.xml science \u65e5\u7acb\u30cf\u30a4\u30c6\u30af\u30d7\u30ec\u30bc\u30f3\u30c4 \u5927\u6751\u6b63\u6a39\u306e\u30b5\u30a4\u30a8\u30f3\u30b9\u30ad\u30c3\u30bahttp://www.tbsradio.jp/life/rss.xml etc \u6587\u5316\u7cfb\u30c8\u30fc\u30af\u30e9\u30b8\u30aa Lifehttp://www.tbsradio.jp/cycle-r/index.xml bike \u30df\u30e9\u30af\u30eb\u30fb\u30b5\u30a4\u30af\u30eb\u30fb\u30e9\u30a4\u30d5http://sokoani.com/feed anime \u305d\u3053\u3042\u306b  :\n\u4ed6\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3089\u306e\u79fb\u884c\u3067OPML\u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u304c\u53ef\u80fd\u306a\u5834\u5408\u306f\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u3084URL\u3092\u5143\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u308b\u3088\u3046\u3067\u3059\uff0e\u203b\u672a\u78ba\u8a8d\n$ podget --import_opml <FILE or URL>\n\u82e5\u3057\u304f\u306fPCAST\u5f62\u5f0f(iTunes\u5411\u3051?)\u3082\u540c\u69d8\u306b\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u3067\u3059\uff0e\u203b\u672a\u78ba\u8a8d\n$ podget --import_pcast <FILE or URL>\nOPML\u66f8\u304d\u51fa\u3057\u306e\u6a5f\u80fd\u3082\u3042\u308a\u307e\u3059\uff0e\u4f46\u3057\u3053\u306e\u6a5f\u80fd\u306f\nUbuntu 14.04\u306e0.6.9\u306b\u306f\u306a\u304f\uff0c\nRasbian jessie\u306e0.7.3\uff0c\nDebian stretch\u306e0.7.9\u306b\u306f\u5b58\u5728\u3057\u307e\u3057\u305f\uff0e\n$ podget --export_opml /tmp/podcast.opmlpodget Session file not found.  Creating podget.22189 . Export serverlist to OPML file: /tmp/podcast.opml Closing session and removing lock file.$ head /tmp/podcast.opml<?xml version="1.0" encoding="utf-8" ?><opml version="1.0"><head/><body><outline text="tech"><outline text="\u96fb\u8133\u7a7a\u9593\u30ab\u30a6\u30dc\u30fc\u30a4\u30ba" type="rss" xmlUrl="http://feeds.feedburner.com/weblogs/csc" /></outline><outline text="tech"><outline text="backspace.fm" type="rss" xmlUrl="http://feeds.backspace.fm/backspacefm" /></outline><outline text="science"><outline text="\u65e5\u7acb\u30cf\u30a4\u30c6\u30af\u30d7\u30ec\u30bc\u30f3\u30c4 \u5927\u6751\u6b63\u6a39\u306e\u30b5\u30a4\u30a8\u30f3\u30b9\u30ad\u30c3\u30ba" type="rss" xmlUrl="http://www.joqr.co.jp/science-podcast/index.xml" /></outline><outline text="etc"><outline text="\u6587\u5316\u7cfb\u30c8\u30fc\u30af\u30e9\u30b8\u30aa Life" type="rss" xmlUrl="http://www.tbsradio.jp/life/rss.xml" /></outline><outline text="bike"><outline text="\u30df\u30e9\u30af\u30eb\u30fb\u30b5\u30a4\u30af\u30eb\u30fb\u30e9\u30a4\u30d5" type="rss" xmlUrl="http://www.tbsradio.jp/cycle-r/index.xml" /></outline><outline text="anime"><outline text="\u305d\u3053\u3042\u306b" type="rss" xmlUrl="http://sokoani.com/feed" /></outline>\n\u5b9f\u884c\n\u3068\u308a\u3042\u3048\u305a\u5f15\u6570\u7121\u3057\u3067\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067Podcast\u304c\u53d6\u5f97\u3067\u304d\u307e\u3059\uff0e\n$ podget-------------------------------------------------Category: anime         Name: \u305d\u3053\u3042\u306bDownloading feed index from http://sokoani.com/feed2016-02-19 07:37:15 URL:http://sokoani.com/feed [673868] -> "-" [1] Downloading 0_s413.mp3 from http://sokoani.com/podpress_trac/feed/9818/0/ : :\nPodcast\u306f\u898f\u5b9a\u5024\u3067\u306f~/POD\u4ee5\u4e0b\u306b\u30ab\u30c6\u30b4\u30ea/\u756a\u7d44\u540d/\u756a\u7d44\u30d5\u30a1\u30a4\u30eb\u306e\u5f62\u3067\u4fdd\u5b58\u3055\u308c\u307e\u3059\uff0e\n$ find ~/POD -type f | tail -3/home/mk/POD/etc/JUNK \u4f0a\u96c6\u9662\u5149 \u6df1\u591c\u306e\u99ac\u9e7f\u529b/files_20160216.mp3/home/mk/POD/etc/JUNK \u4f0a\u96c6\u9662\u5149 \u6df1\u591c\u306e\u99ac\u9e7f\u529b/files_20160202.mp3/home/mk/POD/etc/JUNK \u4f0a\u96c6\u9662\u5149 \u6df1\u591c\u306e\u99ac\u9e7f\u529b/files_20160209.mp3\n\u307e\u305f\uff0c~/POD/*.m3u\u3068\u30b9\u30c6\u30d7\u30ec\u30a4\u30ea\u30b9\u30c8\u3082\u4f5c\u6210\u3055\u308c\u307e\u3059\uff0e\u3053\u308c\u306f\u5b9f\u884c\u5358\u4f4d\u3067\u4f5c\u3089\u308c\u308b\u306e\u304b\u306a?\n$ ls -l ~/POD/*.m3u-rw-rw-r-- 1 mk mk  946  2\u6708 19 07:14 /home/mk/POD/New-2016-02-19.m3u-rw-rw-r-- 1 mk mk 1924  2\u6708 19 07:50 /home/mk/POD/New-2016-02-19.r2.m3u\n\u3046\u307e\u304f\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306a\u3089-s\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066cron\u306b\u767b\u9332\u3057\u3066\u3042\u3052\u308b\u3068\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f\u6bce\u66423\u5206\u306bpodget\u3092\u5b9f\u884c\u3057\u3066\u3044\u307e\u3059\uff0e\n$ crontab -e$ crontab -l | tail -2# get podcast3 * * * *       podget -s\npodracer\u306fPodcast\u3092\u756a\u7d44\u95a2\u4fc2\u306a\u304f\u5b9f\u884c\u65e5\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u4fdd\u5b58\u3055\u308c\u3066Podcast\u756a\u7d44\u3092\u63a2\u3057\u305f\u308a\u3059\u308b\u306e\u306b\u4e0d\u4fbf\u3067\u3057\u305f\u304cpodget\u3060\u3068\u30ab\u30c6\u30b4\u30ea\u3068\u756a\u7d44\u3067\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u5206\u304b\u308c\u308b\u306e\u3067\u4fbf\u5229\u3067\u3059\uff0e\n\u3057\u3070\u3089\u304f\u4f75\u7528\u3057\u3066\u307f\u3088\u3046\u3068\u601d\u3044\u307e\u3059\uff0e", "date_published": "2016-02-19T08:01:18+09:00", "date_modified": "2016-02-19T08:01:18+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Debian", "Linux", "podcast", "Rasbian_jessie", "stretch", "testing", "Ubuntu14.04", "trusty(14.04)", "Ubuntu" ] } ] }